dependabot[bot] c40b537beb
ci(deps): bump actions/upload-artifact from 4.3.1 to 4.3.3
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.1 to 4.3.3.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4.3.1...v4.3.3)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-01 15:11:23 +00:00
2024-03-01 10:11:17 +00:00
2022-07-29 01:14:01 -05:00
2024-03-06 08:56:19 -05:00
2023-03-22 00:17:11 -05:00
2020-06-16 12:17:18 -04:00
2024-04-12 11:26:13 +02:00
2024-04-20 15:02:12 +02:00

Intro Skipper (beta)

Plugin Banner

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

CodeQL

⚠️ 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.9.0 (or newer)
  • Jellyfin's fork of ffmpeg must be installed, version 6.0.1-5 or newer
    • jellyfin/jellyfin 10.9.z container: preinstalled
    • linuxserver/jellyfin 10.9.z container: preinstalled
    • Debian Linux based native installs: provided by the jellyfin-ffmpeg6 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

  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

  1. 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
  2. Go to Dashboard -> Scheduled Tasks -> Analyze Episodes and click the play button
  3. 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

    • 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 by root, www-data, etc. This can likely be fixed by adding the jellyfin user (or whichever user executes the jellyfin server) to the same group that owns the jellyfin-web folders. You should only do this if they are owned by a group other than root.

Installation (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. Open ~/.config/jellyfin/encoding.xml and add or edit the following lines
    • Replace [FFMPEG_PATH] with the path returned by whereis ffmpeg
<EncoderAppPath>[FFMPEG_PATH]</EncoderAppPath>
<EncoderAppPathDisplay>[FFMPEG_PATH]</EncoderAppPathDisplay>
  1. Follow the general installation instructions above

Documentation

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

Description
Fingerprint audio to automatically detect and skip intro/credit sequences in Jellyfin
Readme 4.1 MiB
Languages
C# 55%
HTML 28%
Go 8.3%
JavaScript 6.7%
Python 1.6%
Other 0.4%