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
611 stars 38 forks source link

[Bug]: Cannot see Skip Intro buttons in immutable filesystems #246

Closed wizardlink closed 1 month ago

wizardlink commented 1 month ago

Self service debugging

Describe the bug

As mentioned in #237 but not elaborated, in NixOS it is not possible to use this plugin to it's full potential due to the fact that it is under an immutable filesystem, thus the source web files cannot be changed outside of direct patches to it's code - which was also mentioned in the issue to be a trivial matter.

I'd like to understand how to go from here to be able to patch it in the case of an immutable filesystem, I understand this might be outside the scope of your current development, but pointers would be all I need to fix this. Like how the injection works, because if it's something as simple as adding specific HTML/CSS/JS all NixOS users would need is a copy of that HTML file that was changed, we can then create a diff based on that to patch it.

Jellyfin install method

Native (NixOS' nixpkgs)

Container image/tag or Jellyfin version

10.9.7

Operating System

NixOS

Support Bundle

* Jellyfin version: 10.9.7
* Plugin version: 0.2.0+a13733bdad67
* Queue contents: 4456 episodes, 248 seasons
* Warnings: `UnableToAddSkipButton, InvalidChromaprintFingerprint`
* FFmpeg: `okay`

FFmpeg version:

ffmpeg version 6.0.1-Jellyfin Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 13.3.0 (GCC)
configuration: --disable-static --prefix=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-jellyfin-ffmpeg-6.0.1-6 --target_os=linux --arch=x86_64 --pkg-config=pkg-config --enable-gpl --enable-version3 --disable-nonfree --disable-static --enable-shared --enable-pic --disable-thumb --disable-small --enable-runtime-cpudetect --enable-gray --enable-swscale-alpha --enable-hardcoded-tables --enable-safe-bitstream-reader --enable-pthreads --disable-w32threads --disable-os2threads --enable-network --enable-pixelutils --datadir=/nix/store/n8aa8pxydf5qybq4hy1b7cbx9xwnrqyf-jellyfin-ffmpeg-6.0.1-6-data/share/ffmpeg --enable-ffmpeg --enable-ffplay --enable-ffprobe --bindir=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-jellyfin-ffmpeg-6.0.1-6-bin/bin --enable-avcodec --enable-avdevice --enable-avfilter --enable-avformat --enable-avutil --enable-postproc --enable-swresample --enable-swscale --libdir=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-jellyfin-ffmpeg-6.0.1-6-lib/lib --incdir=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-jellyfin-ffmpeg-6.0.1-6-dev/include --enable-doc --enable-htmlpages --enable-manpages --mandir=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-jellyfin-ffmpeg-6.0.1-6-man/share/man --enable-podpages --enable-txtpages --docdir=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-jellyfin-ffmpeg-6.0.1-6-doc/share/doc/ffmpeg --enable-alsa --enable-libaom --disable-appkit --enable-libass --disable-audiotoolbox --disable-avfoundation --enable-avisynth --enable-libbluray --enable-libbs2b --enable-bzlib --enable-libcaca --enable-libcelt --enable-chromaprint --enable-libcodec2 --disable-coreimage --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-libdav1d --enable-libdc1394 --enable-libdrm --disable-libfdk-aac --enable-ffnvcodec --enable-libflite --enable-fontconfig --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libfribidi --enable-libgme --enable-gnutls --enable-libgsm --enable-iconv --enable-libjack --enable-libjxl --enable-ladspa --enable-lcms2 --enable-lzma --disable-metal --enable-libmfx --enable-libmodplug --enable-libmp3lame --enable-libmysofa --enable-nvdec --enable-nvenc --enable-openal --enable-opencl --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-opengl --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libplacebo --enable-libpulse --enable-librav1e --enable-librtmp --enable-libsmbclient --enable-sdl2 --enable-libshaderc --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-librsvg --enable-libsvtav1 --disable-libtensorflow --enable-libtheora --enable-libtwolame --enable-libv4l2 --enable-v4l2-m2m --enable-vaapi --enable-vdpau --disable-libvpl --disable-videotoolbox --enable-libvidstab --enable-libvmaf --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-vulkan --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxcb --enable-libxcb-shape --enable-libxcb-shm --enable-libxcb-xfixes --enable-xlib --enable-libxml2 --enable-libxvid --enable-libzimg --enable-zlib --enable-libzmq --disable-debug --enable-optimizations --disable-extra-warnings --disable-stripping --extra-version=Jellyfin --disable-ptx-compression
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
rlauuzo commented 1 month ago

Insert the following script tag before the closing </head> tag in the dist/index.html file:

<script src="configurationpage?name=skip-intro-button.js"></script>

Alternatively, you can try the following modified version of the Jellyfin web client:

https://github.com/rlauuzo/jellyfin-web/tree/intros
AbandonedCart commented 1 month ago

Creating multiple issues to further discuss existing ones is how this information gets so fragmented. This is definitely something that should remain part of #237

rlauuzo commented 1 month ago

https://wiki.nixos.org/wiki/Jellyfin#Intro_Skipper_plugin