• Login
  • Register
  • Login Register
    Login
    Username/Email:
    Password:
    Or login with a social network below
  • Forum
  • Website
  • GitHub
  • Status
  • Translation
  • Features
  • Team
  • Rules
  • Help
  • Feeds
User Links
  • Login
  • Register
  • Login Register
    Login
    Username/Email:
    Password:
    Or login with a social network below

    Useful Links Forum Website GitHub Status Translation Features Team Rules Help Feeds
    Jellyfin Forum Development Plugin Development Subtitle Extract Plus

     
    • 0 Vote(s) - 0 Average

    Subtitle Extract Plus

    A fork of the official Subtitle Extract plugin with language filtering, forced-track selection, and save-with-media
    Sativex
    Offline

    Junior Member

    Posts: 18
    Threads: 3
    Joined: 2024 Nov
    Reputation: 0
    #1
    2026-09-27, 07:49 PM
    I run a pretty large library and the official Subtitle Extract plugin was bugging me. It dumps every subtitle stream in every file into Jellyfin's cache, and I only ever want forced English tracks. On releases that have 20+ subtitle streams, that's a lot of ffmpeg work for files I'm going to ignore.

    So I forked it. It's called Subtitle Extract Plus:
    https://github.com/jnracreates/subtitle-extract-plus

    Things it does that the official one doesn't:
    - Only extracts the languages you list. I have mine set to just "en".
    - Filter by forced / non-forced, or both. Mine only does forced.
    - Writes the .srt next to the video file instead of into Jellyfin's cache, so they show up as external subs. Can be turned off if you want the old behavior.
    - Writes .en.srt instead of .eng.srt (matches what Jellyfin expects).
    - Skips files that already have a subtitle, so nightly runs don't redo work.
    - Has a path filter field so you can test on one movie without walking the whole library.

    I also rewrote the extraction to call ffmpeg per stream instead of going through Jellyfin's ISubtitleEncoder. Jellyfin batches all subtitle streams into one ffmpeg call, and if any single stream is empty (which happens a lot - some releases have zero-byte placeholder forced tracks), ffmpeg returns non-zero and Jellyfin throws out the whole batch. Meaning the streams that extracted fine get deleted too. Extracting one stream at a time means an empty track only affects itself.

    Install: Dashboard -> Plugins -> Repositories, add this URL:
    https://raw.githubusercontent.com/jnracr...ifest.json
    Then it shows up in the catalog. You can also grab the zip from releases if you'd rather do it manually.

    Forked from the official plugin, MIT licensed. If you find a release that breaks it, let me know.
    niels
    Offline

    Core Team

    Posts: 329
    Threads: 6
    Joined: 2023 Jun
    Reputation: 19
    Country:Netherlands
    #2
    2026-09-28, 09:47 AM (This post was last modified: 2026-09-28, 09:55 AM by niels. Edited 1 time in total.)
    Forking one of our plugins is fine, but you changing the license to MIT is definitely not allowed per the current GPL license. Please revert that change, including in the commit history.

    edit: it does look like we have a mistake in the README file of the plugin, it mentiones MIT but this is not correct. The actual LICENSE file is leading.
    [Image: GitHub%20Sponsors-grey?logo=github] [Image: Buy%20Me%20a%20Coffee-grey?logo=buymeacoffee]
    « Next Oldest | Next Newest »

    Users browsing this thread: 1 Guest(s)


    • View a Printable Version
    • Subscribe to this thread
    Forum Jump:

    Home · Team · Help · Contact
    © Designed by D&D - Powered by MyBB
    L


    Jellyfin

    The Free Software Media System

    Linear Mode
    Threaded Mode