aboutsummaryrefslogtreecommitdiff

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.