jumoog / intro-skipper

Fingerprint audio to automatically detect and skip intro/credit sequences in Jellyfin
https://discord.gg/AYZ7RJ3BuA
GNU General Public License v3.0
600 stars 37 forks source link

[Bug]: Can't delete fingerprints/disable intro skipping #260

Open TheHYPO35 opened 2 weeks ago

TheHYPO35 commented 2 weeks ago

Self service debugging

Describe the bug

In the original ConfusedPolarBear version of this plugin, I could go to the bottom of the plugin options page, open 'manage fingerprints', load a series and season and delete the fingerprints if I wanted that series not to skip intros. There is still a button for this, but it doesn't seem to work to delete the timestamps/fingerprints I check "erase cached fingerprint files" (I've tried just the first one or both of them) then click "erase all timestamps for this season", and the fingerprint image is still visible above on a refresh, and the timestamps remain listed for the two episodes visible. The intro is still skipped.

We should be able to delete timestamps/fingerprints, as there are certain series where I want to watch the intro for various reasons.

Jellyfin install method

Docker

Container image/tag or Jellyfin version

Jellyfin 10.9.10 (same thing was true in 10.9.9)

Operating System

Debian 12

IMDb ID of that TV Series

No response

Support Bundle

* Jellyfin version: 10.9.10
* Plugin version: 0.2.0+4ef9ea89ad2d
* Queue contents: 15399 episodes, 916 seasons
* Warnings: `UnableToAddSkipButton, InvalidChromaprintFingerprint`
* FFmpeg: `okay`

FFmpeg version:

ffmpeg version 6.0.1-Jellyfin Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 12 (Debian 12.2.0-14)
configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-ptx-compression --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto --enable-gpl --enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-opencl --enable-libdrm --enable-libxml2 --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libsvtav1 --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=arm64 --cross-prefix=/usr/bin/aarch64-linux-gnu- --toolchain=hardened --enable-cross-compile --enable-rkmpp --enable-rkrga
libavutil      58.  2.100 / 58.  2.100
libavcodec     60.  3.100 / 60.  3.100
libavformat    60.  3.100 / 60.  3.100
libavdevice    60.  1.100 / 60.  1.100
libavfilter     9.  3.100 /  9.  3.100
libswscale      7.  1.100 /  7.  1.100
libswresample   4. 10.100 /  4. 10.100
libpostproc    57.  1.100 / 57.  1.100

### Jellyfin logs

```shell
I don't know if it's relevant, but the only log related to Intro Skipper from today is:

[2024-08-28 01:28:31.578 -04:00] [INF] [65] ConfusedPolarBear.Plugin.IntroSkipper.Plugin: Unstable plugin version built from commit "4ef9ea89ad2d4205953b0e8161b4a7ab57ccc4d9"

I haven't caught it ever on debug logging, as it happens unexpectedly, and I don't keep debug logging on perpetually.
TheHYPO35 commented 2 weeks ago

I will reply to myself to realize that I could debug log this one.

The debug log claims that

[2024-08-28 01:39:03.574 -04:00] [INF] [85] ConfusedPolarBear.Plugin.IntroSkipper.Controllers.VisualizationController: Erasing timestamps for "[Name of Show]" "Season 2" at user request

runs for each season I attempted, and doesn't indicate any error - but it doesn't work.

rlauuzo commented 2 weeks ago

The display of fingerprint graphics is normal, as the plugin generates them when you select the 'Manage Fingerprints' option. However, the timestamps should show 0:00 for each segment. If they do not, you may need to refresh the page by pressing Ctrl + R.

TheHYPO35 commented 2 weeks ago

I have to say that I'm flummoxed. I know I have clicked "erase timestamps for this season" multiple times this week for a specific season of a specific show (in fact, the first time, I did it for EVERY season of that show, because I didn't expect it not to work). It did not changed the "end time" showing for intros on the two episodes shown (after refresh), and when I have gone to that show and watched episodes from that season, it has still skipped intro. I also tried it again immediately before posting this bug an hour ago, and it still skipped intros even after the log I posted (that claims that the task took place).

However, in order to confirm that it does not work, I've tried it again just now and suddenly it is zeroing out the intro times, and I just tested the exact same episode and it now does not skip intro. I have no idea why it suddenly started working other than I happen to have done a update on my linux system that included some docker files, but I don't know why that would have any impact on this.

Either way, it's very puzzling, and now I feel a bit like I'm going crazy.

Edit: I looked at the log, and the one thing I notice is that the "unstable plugin version" log entry I posted in the initial bug does not appear to have recurred when Jellyfin restarted after the system update. I don't know if that is in any way related. Perhaps it wasn't running properly until this last reboot for some reason.

rlauuzo commented 2 weeks ago

There is currently no way to blacklist shows, so the timestamp will be reapplied each time a scan task runs (e.g., automatically every night).

AbandonedCart commented 2 weeks ago

Your docker files may not have been compatible with Jellyfin in such a way that it didn’t stop it from running, but also didn’t fully function. Unfortunately, that is a relatively common thing with the virtual machine concept.