- Pages now start with setup and usage, and reference material is in compact tables - Configuration reference gives each config block a short explanation and a key/default table - Internal detail removed from user pages, and docs that had drifted from current behavior fixed - The status line shows today's date, set on the client, instead of the page's last-updated date - Add changelog fragment
3.6 KiB
Jellyfin integration
If your anime lives on a Jellyfin server, SubMiner can appear as a cast target in any Jellyfin client. Cast an episode and it plays in SubMiner's mpv with the overlay and Yomitan lookup attached.
Setup
You need a Jellyfin server (Jellyfin 12 is supported) and your username and password.
- Start SubMiner and leave it in the system tray.
- Open the tray menu and click Configure Jellyfin. You can also run
subminer jellyfin. - Enter the Server URL (for example
http://127.0.0.1:8096), Username, and Password, then click Login.
SubMiner stores an encrypted session token, not your password, and turns the integration on. Reopen the same window to switch servers or log out.
Casting from Jellyfin
After you sign in, SubMiner connects to Jellyfin at startup and shows up in the cast ("Play on") menu under your computer's hostname. To connect for the current session only, tick Jellyfin Discovery in the tray menu.
- In the Jellyfin web or mobile app, start playing an episode.
- Open the cast menu and pick your computer.
SubMiner starts mpv if it is not already running. Pause, seek, stop, and track changes in the Jellyfin app are mirrored in mpv, and watch progress syncs back to Jellyfin. Playback resumes from Jellyfin's saved position.
SubMiner selects a Japanese subtitle track automatically and resets mpv's subtitle delay to zero. It direct-plays files when it can and asks Jellyfin to transcode the rest.
On Windows, casting finds mpv through mpv.executablePath, then SUBMINER_MPV_PATH, then PATH. An invalid mpv.executablePath stops mpv from starting.
Playing from the terminal
The launcher can browse your libraries and play an item without a Jellyfin client:
subminer jellyfin -p # fzf picker; `jf` is an alias for `jellyfin`
subminer -R jellyfin -p # rofi picker
Sign in first. See Launcher script for the other jellyfin subcommands.
Options
All options are under Settings > Integrations > Jellyfin, or jellyfin in config.jsonc. See Configuration for the full list and defaults.
| Key | What it does |
|---|---|
enabled |
Turns the integration on. Set for you when you sign in. |
serverUrl |
Your Jellyfin server. Filled in when you sign in. |
remoteControlEnabled |
Lets SubMiner act as a cast target. |
remoteControlAutoConnect |
Connects at startup. Turn off to start discovery from the tray. |
autoAnnounce |
Re-announces the device on connect. Try it if SubMiner appears late. |
transcodeVideoCodec |
Video codec requested when Jellyfin transcodes. |
For headless setups, SUBMINER_JELLYFIN_ACCESS_TOKEN and SUBMINER_JELLYFIN_USER_ID supply a session without the sign-in window. Treat the token store and config.jsonc as secrets.
Troubleshooting
SubMiner is missing from the cast menu. Check that SubMiner is running, that you are signed in (log in again if the token expired), and that discovery is on. The Jellyfin client and SubMiner must use the same server.
Casting starts but nothing plays. Confirm the item plays in another Jellyfin client. If mpv was closed, give SubMiner a few seconds to start it.
Linux token storage fails. SubMiner stores the token with gnome-libsecret by default. Start your keyring, or pass --password-store=basic_text.