GithubHelp home page GithubHelp logo

jamsrepos / intro-skipper Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jumoog/intro-skipper

0.0 0.0 0.0 2.25 MB

Fingerprint audio to automatically detect and skip intro/credit sequences in Jellyfin

Home Page: https://discord.gg/AYZ7RJ3BuA

License: GNU General Public License v3.0

Shell 0.34% JavaScript 6.78% Python 1.88% Go 9.96% C# 60.11% HTML 20.70% Batchfile 0.24%

intro-skipper's Introduction

Intro Skipper (beta)

Plugin Banner

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

CodeQL

Jellyfin 10.8

๐Ÿ‘‰๐Ÿ‘‰๐Ÿ‘‰ Jellyfin 10.8 Instructions

System requirements

  • Jellyfin 10.9.3 (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

    • Official Jellyfin 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, etc. from the Jellyfin Docker Compose file.

    • LinuxServer Docker Container: Set an environment variable DOCKER_MODS=ghcr.io/jumoog/intro-skipper to ensure the permissions are set correctly for the skip button:

      services:
        jellyfin:
          image: lscr.io/linuxserver/jellyfin:latest
          container_name: jellyfin
          environment:
            - PUID=1000
            - PGID=1000
            - TZ=Etc/UTC
            - DOCKER_MODS=ghcr.io/jumoog/intro-skipper
    • 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.
  • The official Android TV app do not support the skip button. For this app, you will need to use the autoskip option. Please note that there is currently an issue with autoskip not working because the apps never receive the seek command from Jellyfin.

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.

intro-skipper's People

Contributors

abandonedcart avatar anthonylavado avatar arbitrate3280 avatar artiume avatar bond-009 avatar carif avatar cellulosa avatar cloud9developer avatar confusedpolarbear avatar crobibero avatar daullmer avatar dependabot[bot] avatar dkanada avatar github-actions[bot] avatar h1dden-da3m0n avatar iluvatyr avatar joshuaboniface avatar jtormalm avatar jumoog avatar ldellisola avatar logicalphallacy avatar nielsvanvelzen avatar nyanmisaka avatar oddstr13 avatar pomee4 avatar rlauuzo avatar roib20 avatar smart123s avatar xameon42 avatar zzvertigo avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.