# joc - Jellyfin on Console joc is a lightweight terminal client to your Jellyfin media server. joc has a sleek curses interface and offers many of the same features as your other favorite terminal programs including: Vim-like keybindings, keystroke combination actions, user input bar, configurable color scheme, and more. ## Installation ### Dependencies Install the following dependencies. The following are the package names on Debian derivatives. If you are using a different distro the package names may be slightly different. - python3-mpv - python3-urwid - python3-urllib3 - python3-certifi - python3-websocket - python3-requests - python3-six ``` git clone https://git.chudnick.com/joc cd joc sudo make install ``` ## Configuration You'll need to do some basic configuration to get joc talking to your Jellyfin server. You can copy the example `config.ini` to the configuration directory at `~/.config/joc` to begin. At the minimum, you'll need to change the `server`, `username`, and `password` options to fit your environment. `server` is the url for your jellyfin server and `username` and `password` are the credentials for an account on the server. Instead of storing a plaintext password in the config file you may want to instead use the `passcmd` setting which allows you to specify a command to run to get the password instead. The `verify_tls` option determines whether joc will verify the Jellyfin server's certificate. `0` tells joc not to verify the certificate while `1` tells joc to verify and drop the connection if the certificate is invalid. If you are accessing a public Jellyfin instance it is highly recommended to set this to `1`, but for internal servers you will probably need to set this to `0`. ## Usage Simply run `joc` from your terminal or application launcher after doing the basic configuration. ## Modes Like Vim, joc contains a number of different modes - `Main` - Main mode is where you will spend most of your time. In this mode the Jellyfin library is displayed as a folder structure and watched items are highlighted. - `Favorites` - The same as main mode but favorites are highlighted instead. - `Search` - Search mode displays the results of a search. Search mode does not have a folder structure like main and favorites mode. - `Info` - Shows additonal information about a selected item ## Keybindings - `l` - Move into a folder - `j` - Scroll up through a list of items - `k` - Scroll down through a list of items - `h` - Move out of a folder and back up the folder structure - `g` - Go to the top item - `G` - Go to the bottom item - `Enter` - Play the currently highlighted item - `i` - View more information about an item - `:` - Enter input mode to provide a command - `/` - Search for a provided term (shorcut for `:search `) - `q` - Quit a non-standard mode - `Q` - Quit the program ## Keystroke Combinations - `mw` - Mark item as watched - `uw` - Mark item as not watched - `mf` - Mark item as favorite - `uf` - Mark item as not a favorite - `sf` - Toggle favorites mode - `sm` - Toggle main mode ## Limitations The Jellyfin API does not currently provide a method to update the playback progress for an item so as of now joc cannot sync the progress with the Jellyfin server. joc uses a local sqlite database to store this information instead. Other information user data such as watched status and favorites are synced with the server.