2026-02-17 13:50:38 -06:00
2026-02-15 02:10:13 -06:00
2026-02-17 11:30:59 -06:00
2026-02-17 11:30:59 -06:00
2026-02-17 13:50:38 -06:00

CjTUI

Chris Jellyfin Terminal User Interface

This is the first actually useful programming project I have completed. I still can't write in rust because of generative AI. Maybe one day when I am better at programming I will refactor the codebase and figure out how to hand code a transcoding option that actually is compatible with Jellyfin API.

UNIX Program only currently. Should work with WSL on Windows.

Features

  • Blazingly Fast Speed
  • Online and Offline Playback
  • Robust Download Connectivity
  • Individual Download and Batch Download Support
  • Download Queue Management
  • Local Media Management
  • Autoplay and Resume functionality
  • Sends Current Watch Position to the Server
  • Playlist and Collection Support
  • Persistent Auth

System Dependencies on

MPV and ARIA2C

Persistent Storage

All application data is stored in: ~/.config/cjtui/

  • config.toml: Server URL and API key is stored.
  • downloads/: Local download data, used for local playback and offline navigation.
  • temp/: Temporary download data during ARIA2C functionality.

Controls

General Interface Controls
  • Up/K: Up
  • Right/L/Enter: Drilldown/Enter
  • Down/J: Down
  • Left/H/Backspace/Esc: Back
  • q: Return to the home screen or quit.
  • /: Search: Click once to search and clicking / multiple times cycles through search categories.
How to Watch Media
  • p: Play: Starts a show playing at the beginning and will use offline playback if available.
  • P: AutoPlay: Starts a show playing at the beginning and will use offline playback if available. Turns on auto play mode which will play the next episode in series or song in the playlist.
  • r: Resume: If there is a pause position online, it will stream beginning at the paused position.
  • R: AutoResume: Resume + Autoplay flag is on.
  • w: Watched: Marks as watched.
  • W: Not Watched: Marks as unwatched.
Media Player Control
  • Space: Pause
  • x: close mpv
  • f: full screen media player
  • a: cycle audio track
  • s: cycle subtitles
  • v: change subtitle visibility.
Local File Management
  • d: Queue file for download
  • D: Enter the download visual queue.
  • (d on an item in the queue): Remove item from queue.
  • X: Deletes the local file if the file exists.
  • o: Enter offline playback/Attempt to ping the server to join online mode. (Local downloaded database is available during this mode)
Description
Terminal User Interface for the consumption and downloading of media from Jellyfin Media Servers.
Readme 194 KiB
Languages
Rust 99.4%
Nix 0.6%