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 folderj
- Scroll up through a list of itemsk
- Scroll down through a list of itemsh
- Move out of a folder and back up the folder structureg
- Go to the top itemG
- Go to the bottom itemEnter
- Play the currently highlighted itemi
- 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 modeQ
- Quit the program
Keystroke Combinations
mw
- Mark item as watcheduw
- Mark item as not watchedmf
- Mark item as favoriteuf
- Mark item as not a favoritesf
- Toggle favorites modesm
- 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.