ff6dc8a429
Potential cause behind the problem, which occurs when the client script fails to inject into the Jellyfin-web server.
3.7 KiB
3.7 KiB
Intro Skipper (beta)
Analyzes the audio of television episodes to detect and skip over intros.
System requirements
- Jellyfin 10.8.4 (or newer)
- Jellyfin's fork of
ffmpeg
must be installed, version5.0.1-5
or newerjellyfin/jellyfin
10.8.z container: preinstalledlinuxserver/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)
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
- Add this plugin repository to your server:
https://raw.githubusercontent.com/jumoog/intro-skipper/master/manifest.json
- Install the Intro Skipper plugin from the General section
- Restart Jellyfin
Step 2: Configure the plugin
- OPTIONAL: Enable automatic skipping or skip button
- Go to Dashboard -> Plugins -> Intro Skipper
- Check "Automatically skip intros" or "Show skip intro button" and click Save
- Go to Dashboard -> Scheduled Tasks -> Analyze Episodes and click the play button
- After a season has completed analyzing, play some episodes from it and observe the results
- Status updates are logged before analyzing each season of a show
NOTE: The skip button is not visible. This issue arises when the client script fails to inject automatically into the Jellyfin-web server due to permission discrepancies between the owner of the web files (such as root or www-data) and the executor of the main Jellyfin-server. This often happens because...
- Docker - the container is being run as a non-root user while having been built as a root user, causing the web files to be owned by root. To solve this, you can remove any lines like
User: 1000:1000
,GUID:
,PID:
, etc. from the jellyfin docker compose file. - Install from distro repositories - the jellyfin-server will execute as
jellyfin
user while the web files will be owned byroot
,www-data
, etc. This can likely be fixed by adding thejellyfin
(or whichecher user your main jellyfin server runs at) to the same group the jellyfin-web folders are owned by. You should only do this if they are owned by a group other than root, and will have to lookup how to manage permissions on your specific distro.
Installation (MacOS)
- Build ffmpeg with chromaprint support using brew:
- macOS 12 or newer can install the portable jellyfin-ffmpeg
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
- Open ~/.config/jellyfin/encoding.xml and add or edit the following lines
- Replace [FFMPEG_PATH] with the path returned by
whereis ffmpeg
- Replace [FFMPEG_PATH] with the path returned by
<EncoderAppPath>[FFMPEG_PATH]</EncoderAppPath>
<EncoderAppPathDisplay>[FFMPEG_PATH]</EncoderAppPathDisplay>
- Follow the general installation instructions above
Documentation
Documentation about how the API works can be found in api.md.