Skip to content

Add Jellyfin streaming service support#279

Open
rkdx7 wants to merge 3 commits into
Nitrino:masterfrom
rkdx7:master
Open

Add Jellyfin streaming service support#279
rkdx7 wants to merge 3 commits into
Nitrino:masterfrom
rkdx7:master

Conversation

@rkdx7

@rkdx7 rkdx7 commented Jun 14, 2026

Copy link
Copy Markdown

Summary

This PR adds support for Jellyfin as a streaming service, so EasySubs
can be used on self-hosted Jellyfin media servers.

What's included

  • New Jellyfin service (src/streamings/jellyfin.ts) implementing the
    Service interface: subtitle fetching, subs container, settings
    containers and live-stream detection.
  • Automatic detection in getCurrentService() using the Jellyfin
    application-name meta tag, the global ApiClient, and a DOM fallback.
  • Subtitle track selector (JellyfinSubTrack component) shown in the
    settings panel only when the active service is Jellyfin.
  • Reload-free injection: the popup now injects the content script via
    chrome.scripting instead of reloading the tab, so SPA players (like
    Jellyfin) don't lose their playback state. Falls back to a reload if
    injection fails.
  • Service detection retries when the page isn't ready yet, and a
    no-op ServiceStub.init() instead of throwing.
  • UI fixes: stop click propagation inside the subtitles and settings
    containers so player controls aren't toggled, plus styling fixes for
    subtitles and the progress bar.
  • Generalized the popup action label from "Enable on Kinopub" to
    "Enable on this site".

Testing

Tested manually on a Jellyfin web player: service is detected, subtitles
render, the subtitle-track selector works, and translations behave as
expected.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant