Skip to content

hacel/jfsh

Repository files navigation

jfsh

A terminal-based client for Jellyfin that lets you browse your media library and play videos via mpv. Inspired by jftui.

Demo

Features

  • Uses your mpv config!
  • Resumes playback!
  • Tracks playback progress and updates jellyfin!
  • Automatic segment (intro, etc.) skipping!
  • No mouse required!

Installation

Prerequisites

Download a release

Download the latest pre-built binary for your platform from the releases page.

Install via go

go install github.com/hacel/jfsh@latest

Usage

  1. Start jfsh

    jfsh
  2. Login

    On first launch, you'll be prompted to enter:

    • Host: e.g., http://localhost:8096
    • Username
    • Password
  3. Play Media

    • Select an item and press Enter or Space to play it.
    • mpv will launch and begin streaming.
  4. Quit

    • Press q at any time to exit jfsh.

Configuration

By default, the configuration file is stored in $XDG_CONFIG_HOME/jfsh/jfsh.yaml. If $XDG_CONFIG_HOME is not set it defaults to:

  • Linux: ~/.config/jfsh/jfsh.yaml
  • macOS: ~/Library/Application Support/jfsh/jfsh.yaml
  • Windows: %APPDATA%/jfsh/jfsh.yaml
host: http://localhost:8096
username: me
password: hunter2
device: mycomputer # Device name to report to jellyfin (default: hostname)
skip_segments: # Segments to automatically skip (default: [])
  - Recap
  - Preview
  - Intro
  - Outro

Segment skipping

By default, no segments are automatically skipped. To enable skipping segments you must add skip_segments to the configuration file. Possible values for skip_segments are the segment types in Jellyfin which are: Unknown, Commercial, Preview, Recap, Outro and Intro.

Plans

  • Configuration through TUI
  • Complete library browsing
  • Sorting
  • Better search: Filter by media type, watched status, and metadata

About

A terminal-based client for Jellyfin

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages