intro-skipper/README.md

94 lines
4.5 KiB
Markdown
Raw Normal View History

2022-06-09 14:07:40 -05:00
# Intro Skipper (beta)
2020-01-21 13:03:21 +09:00
2022-05-18 15:45:25 -05:00
<div align="center">
<p>
<img alt="Plugin Banner" src="https://raw.githubusercontent.com/jumoog/intro-skipper/master/images/logo.png" />
</p>
<p>
Analyzes the audio of television episodes to detect and skip over intros.
</p>
2024-04-13 10:59:43 -04:00
[![CodeQL](https://github.com/jumoog/intro-skipper/actions/workflows/codeql.yml/badge.svg)](https://github.com/jumoog/intro-skipper/actions/workflows/codeql.yml)
2022-05-18 15:45:25 -05:00
</div>
2024-05-12 18:05:19 +00:00
## Jellyfin 10.8
👉👉👉 [Jellyfin 10.8 Instructions](https://github.com/jumoog/intro-skipper/blob/10.8/README.md)
2024-04-10 21:18:22 +00:00
2022-06-22 18:52:47 -05:00
## System requirements
2024-05-22 21:23:36 +00:00
* Jellyfin 10.9.2 (or newer)
2024-04-20 15:02:12 +02:00
* Jellyfin's [fork](https://github.com/jellyfin/jellyfin-ffmpeg) 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
2023-05-27 22:21:33 -05:00
* MacOS native installs: build ffmpeg with chromaprint support ([instructions](#installation-instructions-for-macos))
2022-06-10 22:52:44 -05:00
## Detection parameters
2019-02-21 00:36:01 -08:00
2024-03-04 08:20:46 -05:00
Show introductions will be detected if they are:
2022-05-10 18:24:16 -05:00
2024-03-04 08:20:46 -05:00
* Located within the first 25% of an episode or the first 10 minutes, whichever is smaller
2022-09-03 01:28:35 -05:00
* Between 15 seconds and 2 minutes long
2022-07-08 00:57:12 -05:00
2024-03-04 08:20:46 -05:00
Ending credits will be detected if they are shorter than 4 minutes.
2022-10-31 01:00:39 -05:00
These parameters can be configured by opening the plugin settings
2020-03-09 21:17:32 +01:00
## Installation
2022-10-01 18:13:28 -05:00
2023-12-15 17:27:00 +01:00
### Step 1: Install the plugin
2023-12-03 01:48:43 +01:00
1. Add this plugin repository to your server: `https://raw.githubusercontent.com/jumoog/intro-skipper/master/manifest.json`
2022-05-10 18:24:16 -05:00
2. Install the Intro Skipper plugin from the General section
3. Restart Jellyfin
### Step 2: Configure the plugin
2024-03-09 11:00:37 -05:00
4. OPTIONAL: Enable automatic skipping or skip button
1. Go to Dashboard -> Plugins -> Intro Skipper
2024-03-09 11:00:37 -05:00
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
2022-05-10 18:24:16 -05:00
1. Status updates are logged before analyzing each season of a show
2022-05-10 16:09:27 -05:00
2024-03-12 19:31:19 -04:00
## 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`)
2024-03-12 19:31:19 -04:00
#### 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
* <b>Docker -</b> 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.
* <b>Install from distro repositories -</b> the jellyfin-server will execute as `jellyfin` user while the web files will be owned by `root`, `www-data`, etc. This can <i>likely</i> 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 and Android TV app do not support the skip button. For these apps, you will need to use the autoskip option. Please note that there is currently an [issue](https://github.com/jumoog/intro-skipper/issues/168) with autoskip not working because the apps never receive the seek command from Jellyfin.
## Installation (MacOS)
2024-03-09 11:00:37 -05:00
2023-05-27 22:21:33 -05:00
1. Build ffmpeg with chromaprint support using brew:
- macOS 12 or newer can install the [portable jellyfin-ffmpeg](https://github.com/jellyfin/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
```
2. 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>
```
4. Follow the [general installation instructions](#installation) above
2022-06-13 16:16:15 -05:00
## Documentation
Documentation about how the API works can be found in [api.md](docs/api.md).