Analyzes the audio of television episodes to detect and skip over intros.
[![CodeQL](https://github.com/jumoog/intro-skipper/actions/workflows/codeql.yml/badge.svg)](https://github.com/jumoog/intro-skipper/actions/workflows/codeql.yml)
## ⚠️ Warning for Jellyfin 10.9 ⚠️ ##
**The current version is a beta version, so please save your old files before upgrading from `10.8` to `10.9`.
Changes are possible during the beta phase!**
## System requirements
* Jellyfin 10.8.4 (or newer)
* Jellyfin's [fork](https://github.com/jellyfin/jellyfin-ffmpeg) of `ffmpeg` must be installed, version `5.0.1-5` or newer
* `jellyfin/jellyfin` 10.8.z container: preinstalled
* `linuxserver/jellyfin` 10.8.z container: preinstalled
* Debian Linux based native installs: provided by the `jellyfin-ffmpeg5` package
* MacOS native installs: build ffmpeg with chromaprint support ([instructions](#installation-instructions-for-macos))
## Detection parameters
Show introductions will be detected if they are:
* Located within the first 25% of an episode or the first 10 minutes, whichever is smaller
* Between 15 seconds and 2 minutes long
Ending credits will be detected if they are shorter than 4 minutes.
These parameters can be configured by opening the plugin settings
## Installation
### Step 1: Install the plugin
1. Add this plugin repository to your server: `https://raw.githubusercontent.com/jumoog/intro-skipper/master/manifest.json`
2. Install the Intro Skipper plugin from the General section
3. Restart Jellyfin
### Step 2: Configure the plugin
4. OPTIONAL: Enable automatic skipping or skip button
1. Go to Dashboard -> Plugins -> Intro Skipper
2. Check "Automatically skip intros" or "Show skip intro button" 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
## Troubleshooting
#### Scheduled tasks fail instantly
- Verify that Intro Skipper can detect ffmpeg with Chromaprint
- Dashboard -> Plugins -> Intro Skipper -> Support Bundle Info
- Verify that ffmpeg is installed and detected by jellyfin
- Dashboard -> Playback -> FFmpeg path
- Verify that Chromaprint is enabled in ffmpeg (`--enable-chromaprint`)
#### Skip button is not visible
- Verify you have successfully completed the scheduled task at least once
- Clear your browser cache and reload the Jellyfin server webpage
- Fix any permission mismatches between the web folder and Jellyfin server
*