ConfusedPolarBear / intro-skipper

Fingerprint audio to automatically detect and skip intro sequences in Jellyfin
GNU General Public License v3.0
984 stars 418 forks source link

Intro Skipper (beta)

Plugin Banner

Analyzes the audio of television episodes to detect and skip over intros.

If you use the custom web interface on your server, you will be able to click a button to skip intros, like this:

Skip intro button

However, if you want to use an unmodified installation of Jellyfin 10.8.z or use clients that do not use the web interface provided by the server, the plugin can be configured to automatically skip intros.

System requirements

Introduction requirements

Show introductions will only be detected if they are:

Ending credits will only be detected if they are shorter than 4 minutes.

All of these requirements can be customized as needed.

Installation instructions

Step 1: Install the modified web interface (optional)

While this plugin is fully compatible with an unmodified version of Jellyfin 10.8.z, using a modified web interface allows you to click a button to skip intros. If you skip this step and do not use the modified web interface, you will have to enable the "Automatically skip intros" option in the plugin settings.

Instructions on how to switch web interface versions are located here.

Step 2: Install the plugin

  1. Add this plugin repository to your server: https://raw.githubusercontent.com/ConfusedPolarBear/intro-skipper/master/manifest.json
  2. Install the Intro Skipper plugin from the General section
  3. Restart Jellyfin
  4. If you did not install the modified web interface, enable automatic skipping
    1. Go to Dashboard -> Plugins -> Intro Skipper
    2. Check "Automatically skip intros" and click Save
  5. Go to Dashboard -> Scheduled Tasks -> Analyze Episodes and click the play button
  6. After a season has completed analyzing, play some episodes from it and observe the results
    1. Status updates are logged before analyzing each season of a show

Installation instructions for MacOS

  1. Build ffmpeg with chromaprint support using brew:
brew uninstall --force --ignore-dependencies ffmpeg
brew install chromaprint amiaopensource/amiaos/decklinksdk
brew tap homebrew-ffmpeg/ffmpeg
brew install homebrew-ffmpeg/ffmpeg/ffmpeg --with-chromaprint
brew link --overwrite ffmpeg
  1. Retrieve ffmpeg path with whereis ffmpeg and use this path on Jellyfin under encoding settings

  2. Follow the installation instructions above

Documentation

Documentation about how the API works can be found in api.md.