jumoog / intro-skipper Goto Github PK
View Code? Open in Web Editor NEWFingerprint audio to automatically detect and skip intro/credit sequences in Jellyfin
Home Page: https://discord.gg/AYZ7RJ3BuA
License: GNU General Public License v3.0
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
In Anime, there is typically a preview after the credits. Should we be skipping to that, instead of moving to they next video? This could also be an optional behavior.
Although it may only be possible to identify the preview in files with chapters, since the current methods only find the start of the credits and can't determine the end.
I'm using nyanmisaka/jellyfin,"Automatically skip intros" works fine,but “Show skip intro button" not working.
Docker
nyanmisaka/jellyfin:latest,intro skipper 0.1.16.4
Synology DSM 7.21
None
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-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=amd64 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-vaapi --enable-amf --enable-libvpl --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
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
No response
You currently have version 0.1.10.0 installed.
I upgraded from 0.1.8.0 to 0.1.10.0 the other day however no matter how I install 0.1.10.0, 0.1.11.0, 0.1.12.0 or 0.1.13.0 I end up with 0.1.10.0. Deleting the plugin and manually installing doesn't fix it, removing the plugin and restarting to install it again doesn't change anything as I always end up with 0.1.10.0 installed.
Is this an error with the plugin or my sever?
I also notice on https://github.com/jumoog/intro-skipper/blob/v0.1.13/manifest.json 0.1.13 is not listed?
I've got a library, that's combing the folders of 3 others (I've removed library scan enqueues of unrelated libraries)
"Anime-Gesamt" has the folders of "Anime-GerDub", "Anime-GerSub" and "Anime-Other"
When "Anime-Gesamt" is set up as library the detection fails after enqueuing the items, complaining that a job with that ID has already been added.
I've removed "Anime-Gesamt" as Library, and the detection job is processing as it should.
2 Support Bundles are attached
First with "Anime-Gesamt" not present, 2nd with "Anime-Gesamt" present.
Docker
ghcr.io/hotio/jellyfin
Ubuntu 22.04.4 LTS
No response
Combined Library removed
* Jellyfin version: 10.8.13
* Plugin version: 0.1.17+c2727ea4e482
* Queue contents: 46470 episodes, 4458 seasons
* Warnings: `None`
* FFmpeg: `okay`
FFmpeg version:
ffmpeg version 6.0.1-Jellyfin Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04)
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-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=amd64 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-vaapi --enable-amf --enable-libvpl --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
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
Combined Library recreated
* Jellyfin version: 10.8.13
* Plugin version: 0.1.17+c2727ea4e482
* Queue contents: 87721 episodes, 3439 seasons
* Warnings: `None`
* FFmpeg: `okay`
FFmpeg version:
ffmpeg version 6.0.1-Jellyfin Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04)
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-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=amd64 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-vaapi --enable-amf --enable-libvpl --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
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
[2024-05-08 06:57:05.125 +02:00] [INF] [28] Emby.Server.Implementations.ScheduledTasks.TaskManager: "Detect Credits" Failed after 0 minute(s) and 4 seconds
[2024-05-08 06:57:05.125 +02:00] [INF] [28] Emby.Server.Implementations.ScheduledTasks.TaskManager: ExecuteQueuedTasks
[2024-05-08 06:57:08.838 +02:00] [INF] [20] Emby.Server.Implementations.ScheduledTasks.TaskManager: Executing "Detect Introductions"
[2024-05-08 06:57:09.009 +02:00] [INF] [20] ConfusedPolarBear.Plugin.IntroSkipper.QueueManager: Running enqueue of items in library "Anime-Gesamt"
[2024-05-08 06:57:11.002 +02:00] [INF] [20] ConfusedPolarBear.Plugin.IntroSkipper.QueueManager: Running enqueue of items in library "Anime-Other"
[2024-05-08 06:57:11.204 +02:00] [INF] [20] ConfusedPolarBear.Plugin.IntroSkipper.QueueManager: Running enqueue of items in library "Anime-GerSub"
[2024-05-08 06:57:12.292 +02:00] [INF] [20] ConfusedPolarBear.Plugin.IntroSkipper.QueueManager: Running enqueue of items in library "Anime-GerDub"
[2024-05-08 06:57:13.358 +02:00] [INF] [20] ConfusedPolarBear.Plugin.IntroSkipper.DetectIntroductionsTask: Analyzing 6 files from "Anime1" season 1
[2024-05-08 06:57:13.358 +02:00] [INF] [24] ConfusedPolarBear.Plugin.IntroSkipper.DetectIntroductionsTask: Analyzing 6 files from "Anime2" season 1
[2024-05-08 06:57:13.360 +02:00] [ERR] [20] Emby.Server.Implementations.ScheduledTasks.TaskManager: Error
System.AggregateException: One or more errors occurred. (An item with the same key has already been added. Key: 6b6e65b7-7b01-3e57-72b5-c2c9388a8029) (An item with the same key has already been added. Key: c04c8e52-6db7-fddc-7f5d-6c057e6be7fc)
---> System.ArgumentException: An item with the same key has already been added. Key: 6b6e65b7-7b01-3e57-72b5-c2c9388a8029
at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior)
at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value)
at ConfusedPolarBear.Plugin.IntroSkipper.ChapterAnalyzer.AnalyzeMediaFiles(ReadOnlyCollection`1 analysisQueue, AnalysisMode mode, CancellationToken cancellationToken)
at ConfusedPolarBear.Plugin.IntroSkipper.BaseItemAnalyzerTask.AnalyzeItems(ReadOnlyCollection`1 items, CancellationToken cancellationToken)
at ConfusedPolarBear.Plugin.IntroSkipper.BaseItemAnalyzerTask.<>c__DisplayClass5_0.<AnalyzeItems>b__0(KeyValuePair`2 season)
at System.Threading.Tasks.Parallel.<>c__DisplayClass44_0`2.<PartitionerForEachWorker>b__1(IEnumerator& partitionState, Int32 timeout, Boolean& replicationDelegateYieldedBeforeCompletion)
--- End of stack trace from previous location ---
at System.Threading.Tasks.Parallel.<>c__DisplayClass44_0`2.<PartitionerForEachWorker>b__1(IEnumerator& partitionState, Int32 timeout, Boolean& replicationDelegateYieldedBeforeCompletion)
at System.Threading.Tasks.TaskReplicator.Replica`1.ExecuteAction(Boolean& yieldedBeforeCompletion)
at System.Threading.Tasks.TaskReplicator.Replica.Execute()
--- End of inner exception stack trace ---
at System.Threading.Tasks.TaskReplicator.Run[TState](ReplicatableUserAction`1 action, ParallelOptions options, Boolean stopOnFirstFailure)
at System.Threading.Tasks.Parallel.PartitionerForEachWorker[TSource,TLocal](Partitioner`1 source, ParallelOptions parallelOptions, Action`1 simpleBody, Action`2 bodyWithState, Action`3 bodyWithStateAndIndex, Func`4 bodyWithStateAndLocal, Func`5 bodyWithEverything, Func`1 localInit, Action`1 localFinally)
--- End of stack trace from previous location ---
at System.Threading.Tasks.Parallel.ThrowSingleCancellationExceptionOrOtherException(ICollection exceptions, CancellationToken cancelToken, Exception otherException)
at System.Threading.Tasks.Parallel.PartitionerForEachWorker[TSource,TLocal](Partitioner`1 source, ParallelOptions parallelOptions, Action`1 simpleBody, Action`2 bodyWithState, Action`3 bodyWithStateAndIndex, Func`4 bodyWithStateAndLocal, Func`5 bodyWithEverything, Func`1 localInit, Action`1 localFinally)
at System.Threading.Tasks.Parallel.ForEachWorker[TSource,TLocal](IEnumerable`1 source, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Action`3 bodyWithStateAndIndex, Func`4 bodyWithStateAndLocal, Func`5 bodyWithEverything, Func`1 localInit, Action`1 localFinally)
at System.Threading.Tasks.Parallel.ForEach[TSource](IEnumerable`1 source, ParallelOptions parallelOptions, Action`1 body)
at ConfusedPolarBear.Plugin.IntroSkipper.BaseItemAnalyzerTask.AnalyzeItems(IProgress`1 progress, CancellationToken cancellationToken)
at ConfusedPolarBear.Plugin.IntroSkipper.DetectIntroductionsTask.ExecuteAsync(IProgress`1 progress, CancellationToken cancellationToken)
at Emby.Server.Implementations.ScheduledTasks.ScheduledTaskWorker.ExecuteInternal(TaskOptions options)
---> (Inner Exception #1) System.ArgumentException: An item with the same key has already been added. Key: c04c8e52-6db7-fddc-7f5d-6c057e6be7fc
at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior)
at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value)
at ConfusedPolarBear.Plugin.IntroSkipper.ChapterAnalyzer.AnalyzeMediaFiles(ReadOnlyCollection`1 analysisQueue, AnalysisMode mode, CancellationToken cancellationToken)
at ConfusedPolarBear.Plugin.IntroSkipper.BaseItemAnalyzerTask.AnalyzeItems(ReadOnlyCollection`1 items, CancellationToken cancellationToken)
at ConfusedPolarBear.Plugin.IntroSkipper.BaseItemAnalyzerTask.<>c__DisplayClass5_0.<AnalyzeItems>b__0(KeyValuePair`2 season)
at System.Threading.Tasks.Parallel.<>c__DisplayClass44_0`2.<PartitionerForEachWorker>b__1(IEnumerator& partitionState, Int32 timeout, Boolean& replicationDelegateYieldedBeforeCompletion)
--- End of stack trace from previous location ---
at System.Threading.Tasks.Parallel.<>c__DisplayClass44_0`2.<PartitionerForEachWorker>b__1(IEnumerator& partitionState, Int32 timeout, Boolean& replicationDelegateYieldedBeforeCompletion)
at System.Threading.Tasks.TaskReplicator.Replica`1.ExecuteAction(Boolean& yieldedBeforeCompletion)
at System.Threading.Tasks.TaskReplicator.Replica.Execute()<---
find a way thats not CPU/GPU heavy
Intro skipper while scanning media eventually eats up all 16GB of ram and then crashes Jellyfin server.
This happens every time I run a scan, intro skipper scan gets to about 80% and then hits 100% ram usage.
For the last couple of months, I disabled the scan and the ram usage is 3GB, but as soon as I start the scan the memory usage starts climbing and don't get released.
Jellyfin : 10.8.13
Intro Skipper : 0.1.8.0
There seems like a lot of lost potential here, but it's possibly impossible. I expected this to show frames to match the timestamps instead of some strange horshack test. I just don't know if it's actually possible to populate real frames into something the page can display.
ffmpeg -ss {timestamp as XX:YY:ZZ} -i input.mp4 -frames:v 1 output.png
I have enabled automatically skip intro and credits option. Plugin randomly starts to skipping episodes repeatedly until I stop it. This happened only in series Lie to me(tt1235099). Server version 10.8.13. Client : ios 17.4.1 safari browser
Windows installer
No response
Win 11
* Jellyfin version: 10.8.13
* Plugin version: 0.1.17+c2727ea4e482
* Queue contents: 213 episodes, 17 seasons
* Warnings: `UnableToAddSkipButton`
* FFmpeg: `okay`
FFmpeg version:
ffmpeg version 5.1.4-Jellyfin Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 12-win32 (GCC)
configuration: --prefix=/opt/ffmpeg --arch=x86_64 --target-os=mingw32 --cross-prefix=x86_64-w64-mingw32- --pkg-config=pkg-config --pkg-config-flags=--static --extra-libs='-lfftw3f -lstdc++' --extra-cflags=-DCHROMAPRINT_NODLL --extra-version=Jellyfin --disable-ffplay --disable-debug --disable-doc --disable-sdl2 --disable-ptx-compression --disable-w32threads --enable-pthreads --enable-shared --enable-lto --enable-gpl --enable-version3 --enable-schannel --enable-iconv --enable-libxml2 --enable-zlib --enable-lzma --enable-gmp --enable-chromaprint --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libass --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libwebp --enable-libvpx --enable-libzimg --enable-libx264 --enable-libx265 --enable-libsvtav1 --enable-libdav1d --enable-libfdk-aac --enable-opencl --enable-dxva2 --enable-d3d11va --enable-amf --enable-libmfx --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
libavutil 57. 28.100 / 57. 28.100
libavcodec 59. 37.100 / 59. 37.100
libavformat 59. 27.100 / 59. 27.100
libavdevice 59. 7.100 / 59. 7.100
libavfilter 8. 44.100 / 8. 44.100
libswscale 6. 7.100 / 6. 7.100
libswresample 4. 7.100 / 4. 7.100
libpostproc 56. 6.100 / 56. 6.100
### Jellyfin logs
_No response_
I am thinking that eventually subdirectories will/or should be created for the chromaprint files in the same way that jellyfin stores library data or ccache stores files. For example if I do an "ls /var/lib/jellyfin/metadata/library/ " I get an output like this:
00/ 09/ 12/ 1b/ 24/ 2d/ 36/ 3f/ 48/ 51/ 5a/ 63/ 6c/ 75/ 7e/ 87/ 90/ 99/ a2/ ab/ b4/ bd/ c6/ cf/ d8/ e1/ ea/ f3/ fc/
01/ 0a/ 13/ 1c/ 25/ 2e/ 37/ 40/ 49/ 52/ 5b/ 64/ 6d/ 76/ 7f/ 88/ 91/ 9a/ a3/ ac/ b5/ be/ c7/ d0/ d9/ e2/ eb/ f4/ fd/
02/ 0b/ 14/ 1d/ 26/ 2f/ 38/ 41/ 4a/ 53/ 5c/ 65/ 6e/ 77/ 80/ 89/ 92/ 9b/ a4/ ad/ b6/ bf/ c8/ d1/ da/ e3/ ec/ f5/ fe/
03/ 0c/ 15/ 1e/ 27/ 30/ 39/ 42/ 4b/ 54/ 5d/ 66/ 6f/ 78/ 81/ 8a/ 93/ 9c/ a5/ ae/ b7/ c0/ c9/ d2/ db/ e4/ ed/ f6/ ff/
04/ 0d/ 16/ 1f/ 28/ 31/ 3a/ 43/ 4c/ 55/ 5e/ 67/ 70/ 79/ 82/ 8b/ 94/ 9d/ a6/ af/ b8/ c1/ ca/ d3/ dc/ e5/ ee/ f7/
05/ 0e/ 17/ 20/ 29/ 32/ 3b/ 44/ 4d/ 56/ 5f/ 68/ 71/ 7a/ 83/ 8c/ 95/ 9e/ a7/ b0/ b9/ c2/ cb/ d4/ dd/ e6/ ef/ f8/
06/ 0f/ 18/ 21/ 2a/ 33/ 3c/ 45/ 4e/ 57/ 60/ 69/ 72/ 7b/ 84/ 8d/ 96/ 9f/ a8/ b1/ ba/ c3/ cc/ d5/ de/ e7/ f0/ f9/
07/ 10/ 19/ 22/ 2b/ 34/ 3d/ 46/ 4f/ 58/ 61/ 6a/ 73/ 7c/ 85/ 8e/ 97/ a0/ a9/ b2/ bb/ c4/ cd/ d6/ df/ e8/ f1/ fa/
08/ 11/ 1a/ 23/ 2c/ 35/ 3e/ 47/ 50/ 59/ 62/ 6b/ 74/ 7d/ 86/ 8f/ 98/ a1/ aa/ b3/ bc/ c5/ ce/ d7/ e0/ e9/ f2/ fb/
Where each folder hold around 100 files or so.
With the current implementation if I do a "ls chromaprints | wc -l" the value I get is 81222. I suspect that having so many files stored in one directory will create some type of issue in the future (I do not understand the issue personally as I am not a programmer, but I believe there is a reason things are normally done using the subdirectory structure). When I look at the files in the chromaprints directory they are already structured in the same way (currently from 00* to ff* on my system). This does not seem to be an issue yet, but as this number will probably increase more and more over time for those with large libraries I feel that this change should eventually be considered. The potential downside to changing the structure is that libraries may have to be rescanned in the future, but I was wondering if the devs here had any thoughts about this. Perhaps for the 10.9 branch this is something that can be considered? Okay, thanks.
apt
No response
Ubuntu 20.04
* Jellyfin version: 10.8.13
* Plugin version: 0.1.17+26db24d187ed
* Queue contents: 19349 episodes, 1243 seasons
* Warnings: `UnableToAddSkipButton, InvalidChromaprintFingerprint`
* FFmpeg: `okay`
FFmpeg version:
ffmpeg version 5.1.4-Jellyfin Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04)
configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-libs=-lfftw3f --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-libdrm --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=amd64 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-opencl --enable-vaapi --enable-amf --enable-libmfx --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
libavutil 57. 28.100 / 57. 28.100
libavcodec 59. 37.100 / 59. 37.100
libavformat 59. 27.100 / 59. 27.100
libavdevice 59. 7.100 / 59. 7.100
libavfilter 8. 44.100 / 8. 44.100
libswscale 6. 7.100 / 6. 7.100
libswresample 4. 7.100 / 4. 7.100
libpostproc 56. 6.100 / 56. 6.100
### Jellyfin logs
_No response_
I've just updated to the latest version (0.1.16.0) from the original ConfusedPolarBear plugin and when running the detect credits task it always fails when scanning a specific season. The detect introductions task works fine and doesn't fail (possibly because of cached data?). The logs return this:
[2024-03-06 09:24:56.722 +01:00] [INF] [103] ConfusedPolarBear.Plugin.IntroSkipper.DetectCreditsTask: Analyzing 10 files from "Big Mouth" season 4
[2024-03-06 09:24:57.235 +01:00] [ERR] [103] Emby.Server.Implementations.ScheduledTasks.TaskManager: Error
System.AggregateException: One or more errors occurred. (Value cannot be null. (Parameter 'input'))
---> System.ArgumentNullException: Value cannot be null. (Parameter 'input')
at System.Text.RegularExpressions.ThrowHelper.ThrowArgumentNullException(ExceptionArgument arg)
at System.Text.RegularExpressions.Regex.IsMatch(String input)
at System.Text.RegularExpressions.Regex.IsMatch(String input, String pattern, RegexOptions options, TimeSpan matchTimeout)
at ConfusedPolarBear.Plugin.IntroSkipper.ChapterAnalyzer.FindMatchingChapter(QueuedEpisode episode, Collection`1 chapters, String expression, AnalysisMode mode)
at ConfusedPolarBear.Plugin.IntroSkipper.ChapterAnalyzer.AnalyzeMediaFiles(ReadOnlyCollection`1 analysisQueue, AnalysisMode mode, CancellationToken cancellationToken)
at ConfusedPolarBear.Plugin.IntroSkipper.BaseItemAnalyzerTask.AnalyzeItems(ReadOnlyCollection`1 items, CancellationToken cancellationToken)
at ConfusedPolarBear.Plugin.IntroSkipper.BaseItemAnalyzerTask.<>c__DisplayClass5_0.<AnalyzeItems>b__0(KeyValuePair`2 season)
at System.Threading.Tasks.Parallel.<>c__DisplayClass44_0`2.<PartitionerForEachWorker>b__1(IEnumerator& partitionState, Int32 timeout, Boolean& replicationDelegateYieldedBeforeCompletion)
--- End of stack trace from previous location ---
at System.Threading.Tasks.Parallel.<>c__DisplayClass44_0`2.<PartitionerForEachWorker>b__1(IEnumerator& partitionState, Int32 timeout, Boolean& replicationDelegateYieldedBeforeCompletion)
at System.Threading.Tasks.TaskReplicator.Replica.Execute()
--- End of inner exception stack trace ---
at System.Threading.Tasks.TaskReplicator.Run[TState](ReplicatableUserAction`1 action, ParallelOptions options, Boolean stopOnFirstFailure)
at System.Threading.Tasks.Parallel.PartitionerForEachWorker[TSource,TLocal](Partitioner`1 source, ParallelOptions parallelOptions, Action`1 simpleBody, Action`2 bodyWithState, Action`3 bodyWithStateAndIndex, Func`4 bodyWithStateAndLocal, Func`5 bodyWithEverything, Func`1 localInit, Action`1 localFinally)
--- End of stack trace from previous location ---
at System.Threading.Tasks.Parallel.ThrowSingleCancellationExceptionOrOtherException(ICollection exceptions, CancellationToken cancelToken, Exception otherException)
at System.Threading.Tasks.Parallel.PartitionerForEachWorker[TSource,TLocal](Partitioner`1 source, ParallelOptions parallelOptions, Action`1 simpleBody, Action`2 bodyWithState, Action`3 bodyWithStateAndIndex, Func`4 bodyWithStateAndLocal, Func`5 bodyWithEverything, Func`1 localInit, Action`1 localFinally)
at System.Threading.Tasks.Parallel.ForEachWorker[TSource,TLocal](IEnumerable`1 source, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Action`3 bodyWithStateAndIndex, Func`4 bodyWithStateAndLocal, Func`5 bodyWithEverything, Func`1 localInit, Action`1 localFinally)
at System.Threading.Tasks.Parallel.ForEach[TSource](IEnumerable`1 source, ParallelOptions parallelOptions, Action`1 body)
at ConfusedPolarBear.Plugin.IntroSkipper.BaseItemAnalyzerTask.AnalyzeItems(IProgress`1 progress, CancellationToken cancellationToken)
at ConfusedPolarBear.Plugin.IntroSkipper.DetectCreditsTask.ExecuteAsync(IProgress`1 progress, CancellationToken cancellationToken)
at Emby.Server.Implementations.ScheduledTasks.ScheduledTaskWorker.ExecuteInternal(TaskOptions options)
[2024-03-06 09:24:57.236 +01:00] [INF] [103] Emby.Server.Implementations.ScheduledTasks.TaskManager: "Detect Credits" Failed after 0 minute(s) and 5 seconds
[2024-03-06 09:24:57.236 +01:00] [INF] [103] Emby.Server.Implementations.ScheduledTasks.TaskManager: ExecuteQueuedTasks
Maybe just ignoring the episode(s) that cause this issue would be a solution?
cant seem to scan for credits?
i also end up with a 12mb credits.xml file in the cache folder that gets blown away each time i run it?
docker
jellyfin 10.8.13, intro skipper latest
docker
UnableToAddSkipButton, InvalidChromaprintFingerprint
okay
FFmpeg version:
ffmpeg version 5.1.4-Jellyfin Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04)
configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-libs=-lfftw3f --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-libdrm --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=amd64 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-opencl --enable-vaapi --enable-amf --enable-libmfx --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
libavutil 57. 28.100 / 57. 28.100
libavcodec 59. 37.100 / 59. 37.100
libavformat 59. 27.100 / 59. 27.100
libavdevice 59. 7.100 / 59. 7.100
libavfilter 8. 44.100 / 8. 44.100
libswscale 6. 7.100 / 6. 7.100
libswresample 4. 7.100 / 4. 7.100
libpostproc 56. 6.100 / 56. 6.100
System.AggregateException: One or more errors occurred. (Input string was not in a correct format.)
---> System.FormatException: Input string was not in a correct format.
at System.Number.ThrowOverflowOrFormatException(ParsingStatus status, TypeCode type)
at System.Convert.ToInt32(String value, IFormatProvider provider)
at ConfusedPolarBear.Plugin.IntroSkipper.FFmpegWrapper.DetectBlackFrames(QueuedEpisode episode, TimeRange range, Int32 minimum)
at ConfusedPolarBear.Plugin.IntroSkipper.BlackFrameAnalyzer.AnalyzeMediaFile(QueuedEpisode episode, AnalysisMode mode, Int32 minimum)
at ConfusedPolarBear.Plugin.IntroSkipper.BlackFrameAnalyzer.AnalyzeMediaFiles(ReadOnlyCollection`1 analysisQueue, AnalysisMode mode, CancellationToken cancellationToken)
at ConfusedPolarBear.Plugin.IntroSkipper.BaseItemAnalyzerTask.AnalyzeItems(ReadOnlyCollection`1 items, CancellationToken cancellationToken)
at ConfusedPolarBear.Plugin.IntroSkipper.BaseItemAnalyzerTask.<>c__DisplayClass5_0.<AnalyzeItems>b__0(KeyValuePair`2 season)
at System.Threading.Tasks.Parallel.<>c__DisplayClass44_0`2.<PartitionerForEachWorker>b__1(IEnumerator& partitionState, Int32 timeout, Boolean& replicationDelegateYieldedBeforeCompletion)
--- End of stack trace from previous location ---
at System.Threading.Tasks.Parallel.<>c__DisplayClass44_0`2.<PartitionerForEachWorker>b__1(IEnumerator& partitionState, Int32 timeout, Boolean& replicationDelegateYieldedBeforeCompletion)
at System.Threading.Tasks.TaskReplicator.Replica.Execute()
--- End of inner exception stack trace ---
at System.Threading.Tasks.TaskReplicator.Run[TState](ReplicatableUserAction`1 action, ParallelOptions options, Boolean stopOnFirstFailure)
at System.Threading.Tasks.Parallel.PartitionerForEachWorker[TSource,TLocal](Partitioner`1 source, ParallelOptions parallelOptions, Action`1 simpleBody, Action`2 bodyWithState, Action`3 bodyWithStateAndIndex, Func`4 bodyWithStateAndLocal, Func`5 bodyWithEverything, Func`1 localInit, Action`1 localFinally)
--- End of stack trace from previous location ---
at System.Threading.Tasks.Parallel.ThrowSingleCancellationExceptionOrOtherException(ICollection exceptions, CancellationToken cancelToken, Exception otherException)
at System.Threading.Tasks.Parallel.PartitionerForEachWorker[TSource,TLocal](Partitioner`1 source, ParallelOptions parallelOptions, Action`1 simpleBody, Action`2 bodyWithState, Action`3 bodyWithStateAndIndex, Func`4 bodyWithStateAndLocal, Func`5 bodyWithEverything, Func`1 localInit, Action`1 localFinally)
at System.Threading.Tasks.Parallel.ForEachWorker[TSource,TLocal](IEnumerable`1 source, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Action`3 bodyWithStateAndIndex, Func`4 bodyWithStateAndLocal, Func`5 bodyWithEverything, Func`1 localInit, Action`1 localFinally)
at System.Threading.Tasks.Parallel.ForEach[TSource](IEnumerable`1 source, ParallelOptions parallelOptions, Action`1 body)
at ConfusedPolarBear.Plugin.IntroSkipper.BaseItemAnalyzerTask.AnalyzeItems(IProgress`1 progress, CancellationToken cancellationToken)
at ConfusedPolarBear.Plugin.IntroSkipper.DetectCreditsTask.ExecuteAsync(IProgress`1 progress, CancellationToken cancellationToken)
at Emby.Server.Implementations.ScheduledTasks.ScheduledTaskWorker.ExecuteInternal(TaskOptions options)
[02:30:54] [INF] [100] Emby.Server.Implementations.ScheduledTasks.TaskManager: Detect Credits Failed after 10 minute(s) and 53 seconds
I am unsure of how skipping credits works. I turned the automatic skip intros feature on, and it works great, but is skipping credits automatically not a thing? Or is there an option that is not in the gui that I need to turn on or a config file to edit somewhere to achieve this? Okay, thanks in advance for any additional information.
In the installation instructions there is a reference to a "modified web interface" in order to get the "skip intro" button, but it's not clear how to obtain that modified web interface.
When clicking the "Support Bundle Info" dropdown arrow the output is: "Error processing request.". Unsure if whether any other functionality is affected, but wanted to point out the issue. All other option dropdown arrows seem to be working properly.
Installed version: 0.1.16.1
I can't get the skip button to show. I installed it as described in the README. And when it didn't work I followed the Troubleshooting. I verified the task ran at least once, I cleared my cache and reloaded the page, and because I run it in docker I nuked the container and it's settings and recreated it with the User lines commented out. None of these have helped. The show button option is checked. I did make sure the plugin was working by trying to automatically skip intro and that worked. But I don't want to use that option.
I don't know where the Warning: "UnableToAddSkipButton" is coming from and rather than banging my head against my desk I thought I would ask.
(I am trying to get this to work on my test server before adding it to my main one, so having to nuke it and restart isn't a problem.)
Docker
hotio/jellyfin:latest
Debian 12 Raspberry Pi
UnableToAddSkipButton
okay
FFmpeg version:
ffmpeg version 6.0.1-Jellyfin Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04)
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-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
No response
When using TV mode it would be great if the spawned button would also be the active element so that you dont have to navigate to the button but immidiatly confirm the skip. Currenlty it takes multiple navigation clicks to get there.
Edit: Maybe make the :hov effect also play when active :)
So, some shows have repeating audio and/or chapter segments that are introductory in terms of audio fingerprinting, but are also critical and/or part of the story. It is rare that this is the case, but I have seen it in two shows. What I would like is the ability to blacklist a show/and or season (season would probably be preferrable) so that it is ignored/not scanned by intro-skipper.
Edit: I did not see a template, so I hope that I am placing this request in the right section. It is not a bug/issue.
When I disable the cache. Intro Skipper performs a full scan each time
Hi there,
I'd like to request a new feature: automatic intro and credit detection for newly added or modified episodes. Similar to the way JellyScrub offers "create trickplays when videos are discovered," this would significantly improve user experience by automatically identifying intros for new content.
Thanks for considering this!
Sometimes a series or season of a show does not have intros/credits scanned for a season or episode 1 of a season etc.. It would be nice to know what the associated chromaprint files are so that I can go in and delete them/delete them from the xml file so that I can rescan them. I am not sure how trivial this would be to implement. I am assuming that this information is already being passed to the gui to access the timestamps?
apt
No response
Ubuntu 20.04
* Jellyfin version: 10.8.13
* Plugin version: 0.1.17+c2727ea4e482
* Queue contents: 19349 episodes, 1243 seasons
* Warnings: `UnableToAddSkipButton, InvalidChromaprintFingerprint`
* FFmpeg: `okay`
FFmpeg version:
ffmpeg version 5.1.4-Jellyfin Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04)
configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-libs=-lfftw3f --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-libdrm --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=amd64 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-opencl --enable-vaapi --enable-amf --enable-libmfx --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
libavutil 57. 28.100 / 57. 28.100
libavcodec 59. 37.100 / 59. 37.100
libavformat 59. 27.100 / 59. 27.100
libavdevice 59. 7.100 / 59. 7.100
libavfilter 8. 44.100 / 8. 44.100
libswscale 6. 7.100 / 6. 7.100
libswresample 4. 7.100 / 4. 7.100
libpostproc 56. 6.100 / 56. 6.100
### Jellyfin logs
_No response_
Hey,
there is another Jellyfin Tool and plugin called Media Analyzer with quite the same functionality but with an additional feature, a visual segment editor. But the whole setup process for this plugin is quite complicated since you have to use a custom Jellyfin instance, which is not so easy if you have a perfectly configured instance already set up.
Your plugin is working with an API too, so my question is if you could increase this functionality to enable compatibility with this segment editor?
Some intros are 50 seconds and some are 10, and the button should appear for the duration of the intro. Is that possible?
The Intro Skipper plugin's skip button extends to an excessive length in specific scenarios on WebOS. This occurs when the Jellyfin "play next episode" dialog has been displayed at the conclusion of the previous episode. The issue appears to be isolated to WebOS and v0.1.16.4 and has not been replicated on Firefox or with plugin version v0.1.16.3.
Docker
No response
Webos
None
okay
FFmpeg version:
ffmpeg version 5.1.4-Jellyfin Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 10 (Debian 10.2.1-6)
configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-libs=-lfftw3f --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-libdrm --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=amd64 --enable-libsvtav1 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-opencl --enable-vaapi --enable-amf --enable-libmfx --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
libavutil 57. 28.100 / 57. 28.100
libavcodec 59. 37.100 / 59. 37.100
libavformat 59. 27.100 / 59. 27.100
libavdevice 59. 7.100 / 59. 7.100
libavfilter 8. 44.100 / 8. 44.100
libswscale 6. 7.100 / 6. 7.100
libswresample 4. 7.100 / 4. 7.100
libpostproc 56. 6.100 / 56. 6.100
No response
When being in syncplay with another person, you can't skip the intro, when clicking the button it will for 1 second go to the end of the intro and came back to normal like I've never clicked on the button.
Docker
linuxserver/jellyfin:latest
Ubuntu 23.10
* Jellyfin version: 10.8.13
* Plugin version: 0.1.17+c2727ea4e482
* Queue contents: 1841 episodes, 121 seasons
* Warnings: `InvalidChromaprintFingerprint`
* FFmpeg: `okay`
FFmpeg version:
ffmpeg version 6.0.1-Jellyfin Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04)
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-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=amd64 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-vaapi --enable-amf --enable-libvpl --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
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
[01:35:37] [INF] [37] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Processing playback tracker : 3f600163ef6647766cc56e58083cd8edf86adfe1-e4c5f100873946a7b41026c151dab377-26d1b3ff9127e872146ba8e786b68a8e
[01:35:57] [INF] [37] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Processing playback tracker : 3f600163ef6647766cc56e58083cd8edf86adfe1-e4c5f100873946a7b41026c151dab377-26d1b3ff9127e872146ba8e786b68a8e
[01:36:17] [INF] [52] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Processing playback tracker : 3f600163ef6647766cc56e58083cd8edf86adfe1-e4c5f100873946a7b41026c151dab377-26d1b3ff9127e872146ba8e786b68a8e
[01:36:37] [INF] [24] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Processing playback tracker : 3f600163ef6647766cc56e58083cd8edf86adfe1-e4c5f100873946a7b41026c151dab377-26d1b3ff9127e872146ba8e786b68a8e
[01:36:57] [INF] [26] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Processing playback tracker : 3f600163ef6647766cc56e58083cd8edf86adfe1-e4c5f100873946a7b41026c151dab377-26d1b3ff9127e872146ba8e786b68a8e
[01:37:18] [INF] [24] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Processing playback tracker : 3f600163ef6647766cc56e58083cd8edf86adfe1-e4c5f100873946a7b41026c151dab377-26d1b3ff9127e872146ba8e786b68a8e
[01:37:39] [INF] [24] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Processing playback tracker : 3f600163ef6647766cc56e58083cd8edf86adfe1-e4c5f100873946a7b41026c151dab377-26d1b3ff9127e872146ba8e786b68a8e
[01:37:59] [INF] [16] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Processing playback tracker : 3f600163ef6647766cc56e58083cd8edf86adfe1-e4c5f100873946a7b41026c151dab377-26d1b3ff9127e872146ba8e786b68a8e
[01:38:19] [INF] [57] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Processing playback tracker : 3f600163ef6647766cc56e58083cd8edf86adfe1-e4c5f100873946a7b41026c151dab377-26d1b3ff9127e872146ba8e786b68a8e
[01:38:39] [INF] [40] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Processing playback tracker : 3f600163ef6647766cc56e58083cd8edf86adfe1-e4c5f100873946a7b41026c151dab377-26d1b3ff9127e872146ba8e786b68a8e
[01:38:59] [INF] [50] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Processing playback tracker : 3f600163ef6647766cc56e58083cd8edf86adfe1-e4c5f100873946a7b41026c151dab377-26d1b3ff9127e872146ba8e786b68a8e
[01:39:19] [INF] [27] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Processing playback tracker : 3f600163ef6647766cc56e58083cd8edf86adfe1-e4c5f100873946a7b41026c151dab377-26d1b3ff9127e872146ba8e786b68a8e
[01:39:40] [INF] [57] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Processing playback tracker : 3f600163ef6647766cc56e58083cd8edf86adfe1-e4c5f100873946a7b41026c151dab377-26d1b3ff9127e872146ba8e786b68a8e
[01:40:00] [INF] [50] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Processing playback tracker : 3f600163ef6647766cc56e58083cd8edf86adfe1-e4c5f100873946a7b41026c151dab377-26d1b3ff9127e872146ba8e786b68a8e
[01:40:01] [INF] [56] Emby.Server.Implementations.SyncPlay.Group: Session 10d7caeeae1478df30e124372e76a8e1 left group 242e18c2-dfee-4aaa-834a-b9daf9643246.
[01:40:01] [INF] [56] Emby.Server.Implementations.SyncPlay.SyncPlayManager: Group 242e18c2-dfee-4aaa-834a-b9daf9643246 is empty, removing it.
[01:40:21] [INF] [47] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Processing playback tracker : 3f600163ef6647766cc56e58083cd8edf86adfe1-e4c5f100873946a7b41026c151dab377-26d1b3ff9127e872146ba8e786b68a8e
[01:40:41] [INF] [47] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Processing playback tracker : 3f600163ef6647766cc56e58083cd8edf86adfe1-e4c5f100873946a7b41026c151dab377-26d1b3ff9127e872146ba8e786b68a8e
[01:41:01] [INF] [47] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Processing playback tracker : 3f600163ef6647766cc56e58083cd8edf86adfe1-e4c5f100873946a7b41026c151dab377-26d1b3ff9127e872146ba8e786b68a8e
[01:41:21] [INF] [18] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Processing playback tracker : 3f600163ef6647766cc56e58083cd8edf86adfe1-e4c5f100873946a7b41026c151dab377-26d1b3ff9127e872146ba8e786b68a8e
[01:41:41] [INF] [22] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Processing playback tracker : 3f600163ef6647766cc56e58083cd8edf86adfe1-e4c5f100873946a7b41026c151dab377-26d1b3ff9127e872146ba8e786b68a8e
[01:41:59] [INF] [60] ConfusedPolarBear.Plugin.IntroSkipper.Plugin: Unstable plugin version built from commit c2727ea4e4823b26a2a079660f347cc0bd777333
[01:42:01] [INF] [55] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Processing playback tracker : 3f600163ef6647766cc56e58083cd8edf86adfe1-e4c5f100873946a7b41026c151dab377-26d1b3ff9127e872146ba8e786b68a8e
[01:42:21] [INF] [52] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Processing playback tracker : 3f600163ef6647766cc56e58083cd8edf86adfe1-e4c5f100873946a7b41026c151dab377-26d1b3ff9127e872146ba8e786b68a8e
[01:42:26] [INF] [22] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for Uruk. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[01:42:26] [INF] [22] Jellyfin.Api.Helpers.MediaInfoHelper: RemoteClientBitrateLimit: 20000000, RemoteIp: 90.46.201.250, IsInLocalNetwork: False
[01:42:26] [INF] [22] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile=Anonymous Profile, Path=/data/series/Halo (2022)/Season 2/Halo (2022) - S02E08 - Halo [WEBDL-2160p][DV HDR10Plus][EAC3 2.0][FR+EN][h265].mkv, AudioStreamIndex=null, SubtitleStreamIndex=null ) => ( PlayMethod=Transcode, TranscodeReason=ContainerBitrateExceedsLimit ) media:/videos/97968e52-4d4c-710b-ca6b-7b228de6a020/master.m3u8?MediaSourceId=97968e524d4c710bca6b7b228de6a020&VideoCodec=h264&AudioCodec=aac,mp3&AudioStreamIndex=4&VideoBitrate=9616000&AudioBitrate=384000&MaxFramerate=23.976025&api_key=<token>&SubtitleMethod=Encode&TranscodingMaxAudioChannels=6&RequireAvc=false&Tag=10777554da56a7544d39f1be0f0edd01&SegmentContainer=ts&MinSegments=1&BreakOnNonKeyFrames=True&hevc-level=150&hevc-videobitdepth=10&hevc-profile=main10&TranscodeReasons=ContainerBitrateExceedsLimit
[01:42:26] [INF] [22] Jellyfin.Api.Controllers.DynamicHlsController: Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
[01:42:26] [INF] [22] Jellyfin.Api.Helpers.TranscodingJobHelper: /usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -init_hw_device cuda=cu:0 -filter_hw_device cu -hwaccel cuda -hwaccel_output_format cuda -hwaccel_flags +unsafe_output -threads 1 -autorotate 0 -i file:"/data/series/Halo (2022)/Season 2/Halo (2022) - S02E08 - Halo [WEBDL-2160p][DV HDR10Plus][EAC3 2.0][FR+EN][h265].mkv" -autoscale 0 -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_nvenc -preset p1 -b:v 9616000 -maxrate 9616000 -bufsize 19232000 -g:v:0 72 -keyint_min:v:0 72 -vf "setparams=color_primaries=bt2020:color_trc=smpte2084:colorspace=bt2020nc,scale_cuda=w=1920:h=1080,tonemap_cuda=format=yuv420p:p=bt709:t=bt709:m=bt709:tonemap=bt2390:peak=100:desat=0" -codec:a:0 libfdk_aac -ac 2 -ab 256000 -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type mpegts -start_number 0 -hls_segment_filename "/data/transcodes/12e2fb01e1d910bd0224c4ca05be49f5%d.ts" -hls_playlist_type vod -hls_list_size 0 -y "/data/transcodes/12e2fb01e1d910bd0224c4ca05be49f5.m3u8"
[01:42:28] [INF] [36] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Adding playback tracker : TW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzExNC4wLjAuMCBTYWZhcmkvNTM3LjM2fDE2ODg4NDY0Njc0OTg1-e603a716fed24c7e9662e4fd974f608e-97968e524d4c710bca6b7b228de6a020
[01:42:28] [INF] [36] Jellyfin.Plugin.PlaybackReporting.Data.PlaybackTracker: PlaybackTracker : Adding Start Event : 04/21/2024 01:42:28
[01:42:28] [INF] [36] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Creating StartPlaybackTimer Task
[01:42:28] [INF] [4] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : Entered
[01:42:28] [INF] [39] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Processing playback tracker : TW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzExNC4wLjAuMCBTYWZhcmkvNTM3LjM2fDE2ODg4NDY0Njc0OTg1-e603a716fed24c7e9662e4fd974f608e-97968e524d4c710bca6b7b228de6a020
[01:42:35] [INF] [45] Jellyfin.Api.Helpers.TranscodingJobHelper: Stopping ffmpeg process with q command for /data/transcodes/12e2fb01e1d910bd0224c4ca05be49f5.m3u8
[01:42:35] [INF] [45] Jellyfin.Api.Helpers.TranscodingJobHelper: FFmpeg exited with code 0
[01:42:35] [INF] [45] Jellyfin.Api.Controllers.DynamicHlsController: Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
[01:42:35] [INF] [45] Jellyfin.Api.Helpers.TranscodingJobHelper: /usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -ss 00:05:42.000 -init_hw_device cuda=cu:0 -filter_hw_device cu -hwaccel cuda -hwaccel_output_format cuda -hwaccel_flags +unsafe_output -threads 1 -autorotate 0 -i file:"/data/series/Halo (2022)/Season 2/Halo (2022) - S02E08 - Halo [WEBDL-2160p][DV HDR10Plus][EAC3 2.0][FR+EN][h265].mkv" -autoscale 0 -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_nvenc -preset p1 -b:v 9616000 -maxrate 9616000 -bufsize 19232000 -g:v:0 72 -keyint_min:v:0 72 -vf "setparams=color_primaries=bt2020:color_trc=smpte2084:colorspace=bt2020nc,scale_cuda=w=1920:h=1080,tonemap_cuda=format=yuv420p:p=bt709:t=bt709:m=bt709:tonemap=bt2390:peak=100:desat=0" -codec:a:0 libfdk_aac -ac 2 -ab 256000 -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type mpegts -start_number 114 -hls_segment_filename "/data/transcodes/12e2fb01e1d910bd0224c4ca05be49f5%d.ts" -hls_playlist_type vod -hls_list_size 0 -y "/data/transcodes/12e2fb01e1d910bd0224c4ca05be49f5.m3u8"
[01:42:41] [INF] [23] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Processing playback tracker : 3f600163ef6647766cc56e58083cd8edf86adfe1-e4c5f100873946a7b41026c151dab377-26d1b3ff9127e872146ba8e786b68a8e
[01:42:48] [INF] [4] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: session.RemoteEndPoint : 90.46.201.250
[01:42:48] [INF] [4] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_playing_id = 97968e524d4c710bca6b7b228de6a020
[01:42:48] [INF] [4] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_user_id = e603a716fed24c7e9662e4fd974f608e
[01:42:48] [INF] [4] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_user_id_int = 1
[01:42:48] [INF] [4] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : session_playing_id = 97968e524d4c710bca6b7b228de6a020
[01:42:48] [INF] [4] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : session_user_id = e603a716fed24c7e9662e4fd974f608e
[01:42:48] [INF] [4] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : play_method = Transcode (v:h264 a:aac)
[01:42:48] [INF] [4] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : e.ClientName = Jellyfin Web
[01:42:48] [INF] [4] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : e.DeviceName = Chrome
[01:42:48] [INF] [4] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemName = Halo - s02e08 - Halo
[01:42:48] [INF] [4] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemId = 97968e524d4c710bca6b7b228de6a020
[01:42:48] [INF] [4] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemType = Episode
[01:42:48] [INF] [4] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : All matches, playback registered
[01:42:48] [INF] [4] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Playback tracker found, adding playback info : TW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzExNC4wLjAuMCBTYWZhcmkvNTM3LjM2fDE2ODg4NDY0Njc0OTg1-e603a716fed24c7e9662e4fd974f608e-97968e524d4c710bca6b7b228de6a020
[01:42:48] [INF] [4] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Saving playback tracking activity in DB
[01:42:48] [INF] [4] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : Exited
[01:42:49] [INF] [23] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Processing playback tracker : TW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzExNC4wLjAuMCBTYWZhcmkvNTM3LjM2fDE2ODg4NDY0Njc0OTg1-e603a716fed24c7e9662e4fd974f608e-97968e524d4c710bca6b7b228de6a020
[01:42:57] [INF] [60] Emby.Server.Implementations.SyncPlay.Group: Group 7bc6c3cb-2f5a-4911-806c-c9486d245050 switching from Idle to Waiting.
[01:42:57] [INF] [60] Emby.Server.Implementations.SyncPlay.Group: Session 10d7caeeae1478df30e124372e76a8e1 created group 7bc6c3cb-2f5a-4911-806c-c9486d245050.
[01:42:57] [INF] [36] Jellyfin.Api.Helpers.TranscodingJobHelper: Stopping ffmpeg process with q command for /data/transcodes/12e2fb01e1d910bd0224c4ca05be49f5.m3u8
[01:42:57] [INF] [37] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for Uruk. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[01:42:57] [INF] [37] Jellyfin.Api.Helpers.MediaInfoHelper: RemoteClientBitrateLimit: 20000000, RemoteIp: 90.46.201.250, IsInLocalNetwork: False
[01:42:57] [INF] [37] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile=Anonymous Profile, Path=/data/series/Halo (2022)/Season 2/Halo (2022) - S02E08 - Halo [WEBDL-2160p][DV HDR10Plus][EAC3 2.0][FR+EN][h265].mkv, AudioStreamIndex=null, SubtitleStreamIndex=null ) => ( PlayMethod=Transcode, TranscodeReason=ContainerBitrateExceedsLimit ) media:/videos/97968e52-4d4c-710b-ca6b-7b228de6a020/master.m3u8?MediaSourceId=97968e524d4c710bca6b7b228de6a020&VideoCodec=h264&AudioCodec=aac,mp3&AudioStreamIndex=4&VideoBitrate=9616000&AudioBitrate=384000&MaxFramerate=23.976025&api_key=<token>&SubtitleMethod=Encode&TranscodingMaxAudioChannels=6&RequireAvc=false&Tag=10777554da56a7544d39f1be0f0edd01&SegmentContainer=ts&MinSegments=1&BreakOnNonKeyFrames=True&hevc-level=150&hevc-videobitdepth=10&hevc-profile=main10&TranscodeReasons=ContainerBitrateExceedsLimit
[01:42:57] [INF] [39] Jellyfin.Api.Controllers.DynamicHlsController: Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
[01:42:57] [INF] [39] Jellyfin.Api.Helpers.TranscodingJobHelper: /usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -init_hw_device cuda=cu:0 -filter_hw_device cu -hwaccel cuda -hwaccel_output_format cuda -hwaccel_flags +unsafe_output -threads 1 -autorotate 0 -i file:"/data/series/Halo (2022)/Season 2/Halo (2022) - S02E08 - Halo [WEBDL-2160p][DV HDR10Plus][EAC3 2.0][FR+EN][h265].mkv" -autoscale 0 -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_nvenc -preset p1 -b:v 9616000 -maxrate 9616000 -bufsize 19232000 -g:v:0 72 -keyint_min:v:0 72 -vf "setparams=color_primaries=bt2020:color_trc=smpte2084:colorspace=bt2020nc,scale_cuda=w=1920:h=1080,tonemap_cuda=format=yuv420p:p=bt709:t=bt709:m=bt709:tonemap=bt2390:peak=100:desat=0" -codec:a:0 libfdk_aac -ac 2 -ab 256000 -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type mpegts -start_number 0 -hls_segment_filename "/data/transcodes/d2cf7ce2741b994a84cbc2f37c6d9745%d.ts" -hls_playlist_type vod -hls_list_size 0 -y "/data/transcodes/d2cf7ce2741b994a84cbc2f37c6d9745.m3u8"
[01:42:57] [INF] [36] Jellyfin.Api.Helpers.TranscodingJobHelper: FFmpeg exited with code 0
[01:42:57] [INF] [36] Jellyfin.Api.Helpers.TranscodingJobHelper: Deleting partial stream file(s) /data/transcodes/12e2fb01e1d910bd0224c4ca05be49f5.m3u8
[01:42:58] [INF] [37] Emby.Server.Implementations.SyncPlay.Group: Session 10d7caeeae1478df30e124372e76a8e1 requested Ready in group 7bc6c3cb-2f5a-4911-806c-c9486d245050 that is Waiting.
[01:42:58] [INF] [37] Emby.Server.Implementations.SyncPlay.Group: Group 7bc6c3cb-2f5a-4911-806c-c9486d245050 switching from Waiting to Paused.
[01:42:58] [INF] [23] Emby.Server.Implementations.SyncPlay.Group: Session 10d7caeeae1478df30e124372e76a8e1 requested Ready in group 7bc6c3cb-2f5a-4911-806c-c9486d245050 that is Paused.
[01:42:58] [INF] [23] Jellyfin.Api.Helpers.TranscodingJobHelper: Stopping ffmpeg process with q command for /data/transcodes/d2cf7ce2741b994a84cbc2f37c6d9745.m3u8
[01:42:58] [INF] [36] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Existing tracker found! : TW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzExNC4wLjAuMCBTYWZhcmkvNTM3LjM2fDE2ODg4NDY0Njc0OTg1-e603a716fed24c7e9662e4fd974f608e-97968e524d4c710bca6b7b228de6a020
[01:42:58] [INF] [36] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Saving existing playback tracking activity in DB
[01:42:58] [INF] [36] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Removing existing tracker : TW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzExNC4wLjAuMCBTYWZhcmkvNTM3LjM2fDE2ODg4NDY0Njc0OTg1-e603a716fed24c7e9662e4fd974f608e-97968e524d4c710bca6b7b228de6a020
[01:42:58] [INF] [36] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Adding playback tracker : TW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzExNC4wLjAuMCBTYWZhcmkvNTM3LjM2fDE2ODg4NDY0Njc0OTg1-e603a716fed24c7e9662e4fd974f608e-97968e524d4c710bca6b7b228de6a020
[01:42:58] [INF] [36] Jellyfin.Plugin.PlaybackReporting.Data.PlaybackTracker: PlaybackTracker : Adding Start Event : 04/21/2024 01:42:58
[01:42:58] [INF] [36] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Creating StartPlaybackTimer Task
[01:42:58] [INF] [60] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : Entered
[01:42:58] [INF] [36] Jellyfin.Api.Helpers.TranscodingJobHelper: FFmpeg exited with code 0
[01:42:58] [INF] [23] Jellyfin.Api.Controllers.DynamicHlsController: Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
[01:42:58] [INF] [23] Jellyfin.Api.Helpers.TranscodingJobHelper: /usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -ss 00:06:18.000 -init_hw_device cuda=cu:0 -filter_hw_device cu -hwaccel cuda -hwaccel_output_format cuda -hwaccel_flags +unsafe_output -threads 1 -autorotate 0 -i file:"/data/series/Halo (2022)/Season 2/Halo (2022) - S02E08 - Halo [WEBDL-2160p][DV HDR10Plus][EAC3 2.0][FR+EN][h265].mkv" -autoscale 0 -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_nvenc -preset p1 -b:v 9616000 -maxrate 9616000 -bufsize 19232000 -g:v:0 72 -keyint_min:v:0 72 -vf "setparams=color_primaries=bt2020:color_trc=smpte2084:colorspace=bt2020nc,scale_cuda=w=1920:h=1080,tonemap_cuda=format=yuv420p:p=bt709:t=bt709:m=bt709:tonemap=bt2390:peak=100:desat=0" -codec:a:0 libfdk_aac -ac 2 -ab 256000 -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type mpegts -start_number 126 -hls_segment_filename "/data/transcodes/d2cf7ce2741b994a84cbc2f37c6d9745%d.ts" -hls_playlist_type vod -hls_list_size 0 -y "/data/transcodes/d2cf7ce2741b994a84cbc2f37c6d9745.m3u8"
[01:42:59] [INF] [23] Emby.Server.Implementations.Session.SessionManager: Playback stopped reported by app Jellyfin Web 10.8.13 playing Halo. Stopped at 378480 ms
[01:42:59] [INF] [63] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Playback stop tracker found, processing stop : TW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzExNC4wLjAuMCBTYWZhcmkvNTM3LjM2fDE2ODg4NDY0Njc0OTg1-e603a716fed24c7e9662e4fd974f608e-97968e524d4c710bca6b7b228de6a020
[01:42:59] [INF] [63] Jellyfin.Plugin.PlaybackReporting.Data.PlaybackTracker: PlaybackTracker : Adding Stop Event : 04/21/2024 01:42:59
[01:42:59] [INF] [63] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Playback stop but TrackedPlaybackInfo not found! not storing activity in DB
[01:43:01] [INF] [63] Jellyfin.Api.Helpers.TranscodingJobHelper: Stopping ffmpeg process with q command for /data/transcodes/d2cf7ce2741b994a84cbc2f37c6d9745.m3u8
[01:43:01] [INF] [60] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Processing playback tracker : 3f600163ef6647766cc56e58083cd8edf86adfe1-e4c5f100873946a7b41026c151dab377-26d1b3ff9127e872146ba8e786b68a8e
[01:43:02] [INF] [63] Jellyfin.Api.Helpers.TranscodingJobHelper: FFmpeg exited with code 0
[01:43:02] [INF] [63] Jellyfin.Api.Controllers.DynamicHlsController: Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
[01:43:02] [INF] [63] Jellyfin.Api.Helpers.TranscodingJobHelper: /usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -ss 00:07:06.000 -init_hw_device cuda=cu:0 -filter_hw_device cu -hwaccel cuda -hwaccel_output_format cuda -hwaccel_flags +unsafe_output -threads 1 -autorotate 0 -i file:"/data/series/Halo (2022)/Season 2/Halo (2022) - S02E08 - Halo [WEBDL-2160p][DV HDR10Plus][EAC3 2.0][FR+EN][h265].mkv" -autoscale 0 -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_nvenc -preset p1 -b:v 9616000 -maxrate 9616000 -bufsize 19232000 -g:v:0 72 -keyint_min:v:0 72 -vf "setparams=color_primaries=bt2020:color_trc=smpte2084:colorspace=bt2020nc,scale_cuda=w=1920:h=1080,tonemap_cuda=format=yuv420p:p=bt709:t=bt709:m=bt709:tonemap=bt2390:peak=100:desat=0" -codec:a:0 libfdk_aac -ac 2 -ab 256000 -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type mpegts -start_number 142 -hls_segment_filename "/data/transcodes/d2cf7ce2741b994a84cbc2f37c6d9745%d.ts" -hls_playlist_type vod -hls_list_size 0 -y "/data/transcodes/d2cf7ce2741b994a84cbc2f37c6d9745.m3u8"
[01:43:05] [INF] [4] Emby.Server.Implementations.SyncPlay.Group: Session 10d7caeeae1478df30e124372e76a8e1 requested Unpause in group 7bc6c3cb-2f5a-4911-806c-c9486d245050 that is Paused.
[01:43:05] [INF] [4] Emby.Server.Implementations.SyncPlay.Group: Group 7bc6c3cb-2f5a-4911-806c-c9486d245050 switching from Paused to Playing.
[01:43:06] [INF] [4] Jellyfin.Api.Helpers.TranscodingJobHelper: Stopping ffmpeg process with q command for /data/transcodes/d2cf7ce2741b994a84cbc2f37c6d9745.m3u8
[01:43:06] [INF] [4] Jellyfin.Api.Helpers.TranscodingJobHelper: FFmpeg exited with code 0
[01:43:06] [INF] [4] Jellyfin.Api.Controllers.DynamicHlsController: Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
[01:43:06] [INF] [4] Jellyfin.Api.Helpers.TranscodingJobHelper: /usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -ss 00:06:42.000 -init_hw_device cuda=cu:0 -filter_hw_device cu -hwaccel cuda -hwaccel_output_format cuda -hwaccel_flags +unsafe_output -threads 1 -autorotate 0 -i file:"/data/series/Halo (2022)/Season 2/Halo (2022) - S02E08 - Halo [WEBDL-2160p][DV HDR10Plus][EAC3 2.0][FR+EN][h265].mkv" -autoscale 0 -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_nvenc -preset p1 -b:v 9616000 -maxrate 9616000 -bufsize 19232000 -g:v:0 72 -keyint_min:v:0 72 -vf "setparams=color_primaries=bt2020:color_trc=smpte2084:colorspace=bt2020nc,scale_cuda=w=1920:h=1080,tonemap_cuda=format=yuv420p:p=bt709:t=bt709:m=bt709:tonemap=bt2390:peak=100:desat=0" -codec:a:0 libfdk_aac -ac 2 -ab 256000 -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type mpegts -start_number 134 -hls_segment_filename "/data/transcodes/d2cf7ce2741b994a84cbc2f37c6d9745%d.ts" -hls_playlist_type vod -hls_list_size 0 -y "/data/transcodes/d2cf7ce2741b994a84cbc2f37c6d9745.m3u8"
[01:43:06] [INF] [4] Emby.Server.Implementations.SyncPlay.Group: Session 10d7caeeae1478df30e124372e76a8e1 requested Ready in group 7bc6c3cb-2f5a-4911-806c-c9486d245050 that is Playing.
[01:43:07] [INF] [16] Emby.Server.Implementations.SyncPlay.Group: Session 10d7caeeae1478df30e124372e76a8e1 requested Ready in group 7bc6c3cb-2f5a-4911-806c-c9486d245050 that is Playing.
[01:43:11] [INF] [27] Emby.Server.Implementations.SyncPlay.Group: Session 10d7caeeae1478df30e124372e76a8e1 requested Ready in group 7bc6c3cb-2f5a-4911-806c-c9486d245050 that is Playing.
[01:43:13] [INF] [63] Emby.Server.Implementations.SyncPlay.Group: Session 10d7caeeae1478df30e124372e76a8e1 requested Pause in group 7bc6c3cb-2f5a-4911-806c-c9486d245050 that is Playing.
[01:43:13] [INF] [63] Emby.Server.Implementations.SyncPlay.Group: Group 7bc6c3cb-2f5a-4911-806c-c9486d245050 switching from Playing to Paused.
I noticed that credits were not scanned/being skipped for a show I have so I wanted to check on the plugin page, but the timestamps for the credits are not listed there. It would be helpful information to have access to and/or edit.
apt
No response
Ubuntu 20.04
* Jellyfin version: 10.8.13
* Plugin version: 0.1.17+c2727ea4e482
* Queue contents: 19349 episodes, 1243 seasons
* Warnings: `UnableToAddSkipButton, InvalidChromaprintFingerprint`
* FFmpeg: `okay`
FFmpeg version:
ffmpeg version 5.1.4-Jellyfin Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04)
configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-libs=-lfftw3f --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-libdrm --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=amd64 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-opencl --enable-vaapi --enable-amf --enable-libmfx --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
libavutil 57. 28.100 / 57. 28.100
libavcodec 59. 37.100 / 59. 37.100
libavformat 59. 27.100 / 59. 27.100
libavdevice 59. 7.100 / 59. 7.100
libavfilter 8. 44.100 / 8. 44.100
libswscale 6. 7.100 / 6. 7.100
libswresample 4. 7.100 / 4. 7.100
libpostproc 56. 6.100 / 56. 6.100
### Jellyfin logs
_No response_
In the settings there is an option (checkbox) entitled:
Ignore intro in the first episode of a season
The description is written as:
If checked, auto skip will ignore introduction in the first episode of a season.
I assumed that this meant if this box was unchecked, then first episode would also have introduction skipped automatically. It seems that the opposite is true though (when checked, episode skips). Based on the description it seems that ignoring auto skip would mean that the first episode introduction is not skipped, but the opposite is true in my case. Re-writing the description would probably be the fastest way to remedy this issue. If someone else could confirm this behavior that would be great. Okay, thanks in advance.
apt
No response
Ubuntu 20.04
UnableToAddSkipButton, InvalidChromaprintFingerprint
okay
FFmpeg version:
ffmpeg version 5.1.4-Jellyfin Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04)
configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-libs=-lfftw3f --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-libdrm --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=amd64 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-opencl --enable-vaapi --enable-amf --enable-libmfx --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
libavutil 57. 28.100 / 57. 28.100
libavcodec 59. 37.100 / 59. 37.100
libavformat 59. 27.100 / 59. 27.100
libavdevice 59. 7.100 / 59. 7.100
libavfilter 8. 44.100 / 8. 44.100
libswscale 6. 7.100 / 6. 7.100
libswresample 4. 7.100 / 4. 7.100
libpostproc 56. 6.100 / 56. 6.100
No response
Currently, there are only options to adjust the max introduction time. The max 4 minutes length for credits is hard-coded. It would be nice to be able to adjust also this, since a few shows have longer credits, like the new Fallout series for example.
Hello, sorry, but I'm fairly new here when it comes to asking questions or problems, and I'm not sure if this is the appropriate place.
My question is that after implementation, I can't get it to work on my Android phone; it doesn't show the button (skip introduction and skip credits).
Is there something specific that needs to be done for it to work on Android or Android TV? I'm interested in both.
I'm working with docker-compose. If there's any example of why it might not be working, I would appreciate it.
Previously, I did use the old version of this plugin, but I installed /jellyfin/jellyfin-web:ro, which was what made it work, and from the tests I've done, this shouldn't appear now.
Thank you very much.
Hi,
a setting to disable the skip of the last episode. Same as there is already a setting for the first episode.
Most of the times i want to hear the last episodes Intro one last time before i end a series :)
No response
-
No response
try to inject like https://github.com/nicknsy/jellyscrub does
if an episode from season 0 is included within a season due to tvdb metadata it is automatically scanned, ignoring "analyze season 0" being unchecked despite absence of extras folder.
further, when going to change erroneous fingerprints within a season where this occurs it is not possible, the only episode that appears in the dropdown for the season is the one pulled from specials.
screenshot of library showing what I mean - season 4 of family guy with the last 4 episodes replaced with the movie of the same episodes from specials
managing fingerprints showing the season is listed out of order showing that is the only selectable episode within the seasononce selected fingerprints for said episode do not load. this is inconsistent; I have gotten fingerprints for said episode to load.
also comes up for anime with OVAs released in-between seasons and that's where fingerprinting tends to be more problematic for me. I can autoskip what is believed to be the intro or get the skip intro button from patched webui to appear so everything is getting fingerprinted, just cannot access the fingerprints for episodes once they are fingerprinted
also thanks for maintaining this project!
docker
jellyfin 10.8.13 bbergle image, introskipper 0.1.16+7032816cbeb6
docker is debian base, running on unraid
InvalidChromaprintFingerprint
okay
FFmpeg version:
ffmpeg version 5.1.4-Jellyfin Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 10 (Debian 10.2.1-6)
configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-libs=-lfftw3f --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-libdrm --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=amd64 --enable-libsvtav1 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-opencl --enable-vaapi --enable-amf --enable-libmfx --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
libavutil 57. 28.100 / 57. 28.100
libavcodec 59. 37.100 / 59. 37.100
libavformat 59. 27.100 / 59. 27.100
libavdevice 59. 7.100 / 59. 7.100
libavfilter 8. 44.100 / 8. 44.100
libswscale 6. 7.100 / 6. 7.100
libswresample 4. 7.100 / 4. 7.100
libpostproc 56. 6.100 / 56. 6.100
No response
Recently, I renamed this Hanasaku Iroha - Blossoms for Tomorrow (2011) [tmdbid-42417]
folder and the mkv file using sonarr. And whenever detect intros and credits
task run, Chromaprint returned 0 points
warning is show up in log and then in the support bundle info
this InvalidChromaprintFingerprint
warning will show. Is there any way to get rid of it?
Ubuntu apt
No response
Ubuntu 22.04
* Jellyfin version: 10.9.0
* Plugin version: 0.2.0+c20370c47f06
* Queue contents: 9417 episodes, 716 seasons
* Warnings: `InvalidChromaprintFingerprint`
* FFmpeg: `okay`
FFmpeg version:
ffmpeg version 6.0.1-Jellyfin Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04)
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-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=amd64 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-vaapi --enable-amf --enable-libvpl --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
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
May 03 14:13:29 ubuntu-server jellyfin[2849506]: Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used).
May 03 14:13:29 ubuntu-server jellyfin[2818279]: [14:13:29] [WRN] Chromaprint returned 0 points for "/mnt/hdd/Anime/Hanasaku Iroha - Blossoms for Tomorrow (2011) [tmdbid-42417]/Season 00/Hanasaku Iroha - Blossoms for Tomorrow - S00E01.mkv"
Just installed a Unraid server and installed Jellyfin with docker. Now I want to use this plugin, auto skip works fine, but I want to use the skip button which I cant get to work.
I guess it has something to do with this:
But I just started working with all this and really cant figure out how to do it.
I see "Automatically skip Intro" checkbox in plugin settings but don't see "Automatically skip Credits" or "Automatically press Next"
So I assumed that this checkbox would apply to both (Into and Credits), but it doesn't seems to be the case.
Intro is getting skipped automatically, however end credits still require you to press or hover your mouse on to "Next" button.
Why have "Credit Detection" in scheduling tasks if there is no way to automatically skip it after it was detected?
Can somebody please advise how to make it work? I just need button "Next" to be clicked automatically when it pops out during credits.
I saw similar request in other places. But not for this plugin. Is there another plugin that needs to be added to make this work, or could current [intro-skipper] include that?
credits.xml
and intros.xml
Would be nice if each user could choose if they want auto skip or just button.
Also, would be good if we could specify certain clients where it would automatically skip, for people with Android TV's who don't want to recompile the whole app, if you just set it to skip intro, you won't need the button.
My Jellyfin is on MacBook that is 10.14, so there is literally no hope of ffmpeg with chromaprint. I have a Mac Mini on 12 with the ffmpeg and use rffmpeg to connect to that. Jellyfin can't actually play videos with the homebrew version, so the process is to enable rffmpeg, run the tasks, build the database, then disable rffmpeg. This shouldn't be relevant, but just in case...
If the intro is the beginning of the video, it skips it perfectly. When there is a clip before the intro, it skips to the start of the intro. An example would be Demon Slayer. Season 1, episode 2 has 57 seconds of episode before the opening credits and the plugin skips exactly those 57 seconds. Season 1, episode 7 skips the 47 seconds of episode right to the opening credit. For some reason, it seems to be picking up exactly where the credits start, but cutting everything before it.
After further testing, I have found that intros that appear within 25 seconds of the start of the episode are logged correctly. Oddly, so were a few that were extremely delayed. When an intro was roughly 90 seconds into the episode, though, the start time was logged as 0 and the end time was logged as the start time.
I have tried this both with the defaults and setting the minimum and maximum intro length higher. My most recent test also added in 3 degrees of parallelism.
No able to save setting after update to jellyfin 10.8.13. The screen will flashback to nothing selected after save.
Docker
nyanmisaka/jellyfin:latest
Synology DS920+
its emtpy
No response
So, for the androidtv jellyfin app (0.16.2) found here: https://github.com/jellyfin/jellyfin-androidtv, this plugin does not work. The popup appears, but the media is not skipped. If I post an issue on the jelyfin androidtv app github the response I get is: "We do not support third party plugins. Please open an issue with the author." So, not sure what to do. I tested the webapp and the jellyfin media player desktop app and this plugin works great for both of those, just not the androidtv app. Is there something different about the way the tv app works? Any way to recompile it to get this plugin to work? Okay, thanks.
Edit: Spelling typo.
After have high CPU to see it was jellyfin but nothing was trancoding turns out the plugin is scanning without telling jellyfin what's going on.
There should be a notice on the dashboard and in tasks.
Linux
No response
Ubuntu
* Jellyfin version: 10.8.13
* Plugin version: 0.1.17+c2727ea4e482
* Warnings: `InvalidChromaprintFingerprint`
* FFmpeg: `okay`
No response
I know it's been a bit of a flood of changes and pull requests. Hopefully I wasn't overstepping. If there are any rules or a specific workflow I should be following, please let me know.
So, I have noticed that if I replace an episode with the same episode of a different length, delete the timestamps for that season, and rescan then the same timestamps are generated that were used from the original scan. I am wondering if there is also a cache somewhere that I should be deleting/or the program should delete but isn't (should I restart the server after doing this?). Hopefully what I am saying makes sense. If someone else can confirm/test this I would appreciate it. I have reproduced this issue on more than one show.
Edit:
Server - Ubuntu 20.04
Jellyfin.Server 10.8.13.0
Intro Skipper 0.1.8.0
jellyfin-ffmpeg 4.4.1-4
According to https://jellyfin.org/posts/testing-10.9.0/ :
Jellyfin 10.9.0 is scheduled for release during the weekend of April 26th-28th
It would be neat if this plugin worked right away after upgrading.
I'm running 10.9.0 from the unstable docker image and would be happy to test stuff.
Right now 0.1.16.4 gives this error in the Jellyfin 10.9.0 log:
[16:51:11] [ERR] Failed to load assembly /config/plugins/Intro Skipper_0.1.16.4/ConfusedPolarBear.Plugin.IntroSkipper.dll. This error occurs when a plugin references an incompatible version of one of the shared libraries. Disabling plugin
System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types.
Could not load type 'MediaBrowser.Controller.Plugins.IServerEntryPoint' from assembly 'MediaBrowser.Controller, Version=10.9.0.0, Culture=neutral, PublicKeyToken=null'.
Could not load type 'MediaBrowser.Controller.Plugins.IServerEntryPoint' from assembly 'MediaBrowser.Controller, Version=10.9.0.0, Culture=neutral, PublicKeyToken=null'.
at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
at System.Reflection.RuntimeModule.GetTypes()
at Emby.Server.Implementations.Plugins.PluginManager.LoadAssemblies()+MoveNext()
System.TypeLoadException: Could not load type 'MediaBrowser.Controller.Plugins.IServerEntryPoint' from assembly 'MediaBrowser.Controller, Version=10.9.0.0, Culture=neutral, PublicKeyToken=null'.
System.TypeLoadException: Could not load type 'MediaBrowser.Controller.Plugins.IServerEntryPoint' from assembly 'MediaBrowser.Controller, Version=10.9.0.0, Culture=neutral, PublicKeyToken=null'.
So the "show skip button for intro duration" is amazing, but an issue I've been having is that it skips the intro but still shows the button after it's being pressed. Video example below
Hello everybody,
today I noticed that the local Jellyfin API docs are not being rendered when this plugin is installed.
You get the following error message when calling /api-docs/swagger/index.html
Fetch error
Internal Server Error /api-docs/openapi.json
The relevant Jellyfin log lines indicate that this is because no explicit HttpMethod is defined for a particular action.
I tested it with the latest pre-release version "intro-skipper-fd63670".
Apparently it is sufficient if the HTTP method is set for the action.
I tested this in a fork of the repo locally and the API documentation was loaded successfully again.
I will create a pull request for this.
If you also think that this is a bug, please feel free to merge it.
If you have any further questions, I will be happy to answer them.
Installation over Jellyfin APT-Repository for Ubuntu
No response
Ubuntu 22.04
UnableToAddSkipButton
okay
FFmpeg version:
ffmpeg version 5.1.4-Jellyfin Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04)
configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-libs=-lfftw3f --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-libdrm --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=amd64 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-opencl --enable-vaapi --enable-amf --enable-libmfx --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
libavutil 57. 28.100 / 57. 28.100
libavcodec 59. 37.100 / 59. 37.100
libavformat 59. 27.100 / 59. 27.100
libavdevice 59. 7.100 / 59. 7.100
libavfilter 8. 44.100 / 8. 44.100
libswscale 6. 7.100 / 6. 7.100
libswresample 4. 7.100 / 4. 7.100
libpostproc 56. 6.100 / 56. 6.100
[2024-03-10 19:19:36.895 +01:00] [ERR] [192] Jellyfin.Server.Middleware.ExceptionMiddleware: Error processing request. URL "GET" "/api-docs/openapi.json".
Swashbuckle.AspNetCore.SwaggerGen.SwaggerGeneratorException: Ambiguous HTTP method for action - ConfusedPolarBear.Plugin.IntroSkipper.Controllers.SkipIntroController.GetUserInterfaceConfiguration (ConfusedPolarBear.Plugin.IntroSkipper). Actions require an explicit HttpMethod binding for Swagger/OpenAPI 3.0
at Swashbuckle.AspNetCore.SwaggerGen.SwaggerGenerator.GenerateOperations(IEnumerable`1 apiDescriptions, SchemaRepository schemaRepository)
at Swashbuckle.AspNetCore.SwaggerGen.SwaggerGenerator.GeneratePaths(IEnumerable`1 apiDescriptions, SchemaRepository schemaRepository)
at Swashbuckle.AspNetCore.SwaggerGen.SwaggerGenerator.GetSwagger(String documentName, String host, String basePath)
at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at Jellyfin.Server.Middleware.LegacyEmbyRouteRewriteMiddleware.Invoke(HttpContext httpContext)
at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
at Jellyfin.Server.Middleware.ResponseTimeMiddleware.Invoke(HttpContext context, IServerConfigurationManager serverConfigurationManager)
at Jellyfin.Server.Middleware.ExceptionMiddleware.Invoke(HttpContext context)
When i try to detect intros and outros the task always fails
Docker
lscr.io/linuxserver/jellyfin:latest
Unraid 6.12.10
No response
* Jellyfin version: 10.8.13
* Plugin version: 0.1.17+c2727ea4e482
* Queue contents: 14926 episodes, 505 seasons
* Warnings: `UnableToAddSkipButton`
* FFmpeg: `okay`
FFmpeg version:
ffmpeg version 5.1.4-Jellyfin Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04)
configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-libs=-lfftw3f --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-libdrm --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=amd64 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-opencl --enable-vaapi --enable-amf --enable-libmfx --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
libavutil 57. 28.100 / 57. 28.100
libavcodec 59. 37.100 / 59. 37.100
libavformat 59. 27.100 / 59. 27.100
libavdevice 59. 7.100 / 59. 7.100
libavfilter 8. 44.100 / 8. 44.100
libswscale 6. 7.100 / 6. 7.100
libswresample 4. 7.100 / 4. 7.100
libpostproc 56. 6.100 / 56. 6.100
### Jellyfin logs
```shell
[22:10:44] [INF] [28] Emby.Server.Implementations.ScheduledTasks.TaskManager: Executing Detect Intros and Credits
Trailing option(s) found in the command: may be ignored.
Trailing option(s) found in the command: may be ignored.
Trailing option(s) found in the command: may be ignored.
Trailing option(s) found in the command: may be ignored.
[22:10:44] [INF] [28] ConfusedPolarBear.Plugin.IntroSkipper.QueueManager: Running enqueue of items in library Anime
[22:10:44] [INF] [28] ConfusedPolarBear.Plugin.IntroSkipper.QueueManager: Running enqueue of items in library Serien
[22:10:44] [INF] [28] ConfusedPolarBear.Plugin.IntroSkipper.QueueManager: Running enqueue of items in library Filme
[22:10:44] [INF] [28] ConfusedPolarBear.Plugin.IntroSkipper.QueueManager: Running enqueue of items in library Collections
[22:10:44] [INF] [28] ConfusedPolarBear.Plugin.IntroSkipper.DetectIntrosCreditsTask: Analyzing 8 files from .hack//Liminality season 1
[22:10:44] [INF] [28] ConfusedPolarBear.Plugin.IntroSkipper.DetectIntrosCreditsTask: Analyzing 6 files from .hack//Quantum season 1
[22:10:45] [INF] [28] ConfusedPolarBear.Plugin.IntroSkipper.DetectIntrosCreditsTask: Analyzing 52 files from .hack//ROOTS season 1
[22:10:45] [ERR] [28] Emby.Server.Implementations.ScheduledTasks.TaskManager: Error
System.AggregateException: One or more errors occurred. (An item with the same key has already been added. Key: b16fbb5e-a045-2263-ee56-5f197cdb9585)
---> System.ArgumentException: An item with the same key has already been added. Key: b16fbb5e-a045-2263-ee56-5f197cdb9585
at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior)
at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value)
at ConfusedPolarBear.Plugin.IntroSkipper.ChapterAnalyzer.AnalyzeMediaFiles(ReadOnlyCollection`1 analysisQueue, AnalysisMode mode, CancellationToken cancellationToken)
at ConfusedPolarBear.Plugin.IntroSkipper.BaseItemAnalyzerTask.AnalyzeItems(ReadOnlyCollection`1 items, CancellationToken cancellationToken)
at ConfusedPolarBear.Plugin.IntroSkipper.BaseItemAnalyzerTask.<>c__DisplayClass5_0.<AnalyzeItems>b__0(KeyValuePair`2 season)
at System.Threading.Tasks.Parallel.<>c__DisplayClass44_0`2.<PartitionerForEachWorker>b__1(IEnumerator& partitionState, Int32 timeout, Boolean& replicationDelegateYieldedBeforeCompletion)
--- End of stack trace from previous location ---
at System.Threading.Tasks.Parallel.<>c__DisplayClass44_0`2.<PartitionerForEachWorker>b__1(IEnumerator& partitionState, Int32 timeout, Boolean& replicationDelegateYieldedBeforeCompletion)
at System.Threading.Tasks.TaskReplicator.Replica`1.ExecuteAction(Boolean& yieldedBeforeCompletion)
at System.Threading.Tasks.TaskReplicator.Replica.Execute()
--- End of inner exception stack trace ---
at System.Threading.Tasks.TaskReplicator.Run[TState](ReplicatableUserAction`1 action, ParallelOptions options, Boolean stopOnFirstFailure)
at System.Threading.Tasks.Parallel.PartitionerForEachWorker[TSource,TLocal](Partitioner`1 source, ParallelOptions parallelOptions, Action`1 simpleBody, Action`2 bodyWithState, Action`3 bodyWithStateAndIndex, Func`4 bodyWithStateAndLocal, Func`5 bodyWithEverything, Func`1 localInit, Action`1 localFinally)
--- End of stack trace from previous location ---
at System.Threading.Tasks.Parallel.ThrowSingleCancellationExceptionOrOtherException(ICollection exceptions, CancellationToken cancelToken, Exception otherException)
at System.Threading.Tasks.Parallel.PartitionerForEachWorker[TSource,TLocal](Partitioner`1 source, ParallelOptions parallelOptions, Action`1 simpleBody, Action`2 bodyWithState, Action`3 bodyWithStateAndIndex, Func`4 bodyWithStateAndLocal, Func`5 bodyWithEverything, Func`1 localInit, Action`1 localFinally)
at System.Threading.Tasks.Parallel.ForEachWorker[TSource,TLocal](IEnumerable`1 source, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Action`3 bodyWithStateAndIndex, Func`4 bodyWithStateAndLocal, Func`5 bodyWithEverything, Func`1 localInit, Action`1 localFinally)
at System.Threading.Tasks.Parallel.ForEach[TSource](IEnumerable`1 source, ParallelOptions parallelOptions, Action`1 body)
at ConfusedPolarBear.Plugin.IntroSkipper.BaseItemAnalyzerTask.AnalyzeItems(IProgress`1 progress, CancellationToken cancellationToken)
at ConfusedPolarBear.Plugin.IntroSkipper.DetectIntrosCreditsTask.ExecuteAsync(IProgress`1 progress, CancellationToken cancellationToken)
at Emby.Server.Implementations.ScheduledTasks.ScheduledTaskWorker.ExecuteInternal(TaskOptions options)
So, after updating and running the "Detect Introductions" scheduled task it seems to be rescanning my whole library. Initially I thought it was just stuck, but looking at the jellyfin log it shows that the plugin is scanning, just scanning everything. I am just going to let it run to completion I suppose, but if someone else can verify this behavior I would appreciate it. If it is necessary I understand, but should probably be documented in the release notes assuming that this is not a bug. I'm wondering if maybe this has to do with the "Testing the new release actions" commit from yesterday? Any clarity and/or verification would be appreciated.
apt
No response
Ubuntu 20.04
UnableToAddSkipButton
okay
FFmpeg version:
ffmpeg version 5.1.4-Jellyfin Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04)
configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-libs=-lfftw3f --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-libdrm --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=amd64 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-opencl --enable-vaapi --enable-amf --enable-libmfx --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
libavutil 57. 28.100 / 57. 28.100
libavcodec 59. 37.100 / 59. 37.100
libavformat 59. 27.100 / 59. 27.100
libavdevice 59. 7.100 / 59. 7.100
libavfilter 8. 44.100 / 8. 44.100
libswscale 6. 7.100 / 6. 7.100
libswresample 4. 7.100 / 4. 7.100
libpostproc 56. 6.100 / 56. 6.100
No response
restart via dashboard
Dcoker
No response
Docker
[2024-04-12 11:24:20.061 +02:00] [INF] [17] Main: Kestrel is listening on "127.0.0.1"
[2024-04-12 11:24:20.061 +02:00] [INF] [17] Main: Kestrel is listening on "172.21.0.2"
[2024-04-12 11:24:20.067 +02:00] [ERR] [17] Microsoft.Extensions.Hosting.Internal.Host: Hosting failed to start
System.InvalidOperationException: There was an error generating the XML document.
---> System.InvalidCastException: [A]ConfusedPolarBear.Plugin.IntroSkipper.Configuration.PluginConfiguration cannot be cast to [B]ConfusedPolarBear.Plugin.IntroSkipper.Configuration.PluginConfiguration. Type A originates from 'ConfusedPolarBear.Plugin.IntroSkipper, Version=0.2.0.1, Culture=neutral, PublicKeyToken=null' in the context '"" Emby.Server.Implementations.Plugins.PluginLoadContext #371' at location '/config/plugins/Intro Skipper_0.2.0.1/ConfusedPolarBear.Plugin.IntroSkipper.dll'. Type B originates from 'ConfusedPolarBear.Plugin.IntroSkipper, Version=0.2.0.1, Culture=neutral, PublicKeyToken=null' in the context '"" Emby.Server.Implementations.Plugins.PluginLoadContext #1' at location '/config/plugins/Intro Skipper_0.2.0.1/ConfusedPolarBear.Plugin.IntroSkipper.dll'.
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterPluginConfiguration.Write6_PluginConfiguration(Object o)
at InvokeStub_XmlSerializationWriterPluginConfiguration.Write6_PluginConfiguration(Object, Span`1)
at System.Reflection.MethodBaseInvoker.InvokeWithOneArg(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
--- End of inner exception stack trace ---
at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id)
at Emby.Server.Implementations.Serialization.MyXmlSerializer.SerializeToStream(Object obj, Stream stream)
at Emby.Server.Implementations.Serialization.MyXmlSerializer.SerializeToFile(Object obj, String file)
at MediaBrowser.Common.Plugins.BasePlugin`1.SaveConfiguration(TConfigurationType config)
at MediaBrowser.Common.Plugins.BasePlugin`1.LoadConfiguration()
at MediaBrowser.Common.Plugins.BasePlugin`1.get_Configuration()
at ConfusedPolarBear.Plugin.IntroSkipper.AutoSkip.AutoSkipChanged(Object sender, EventArgs e)
at ConfusedPolarBear.Plugin.IntroSkipper.AutoSkip.StartAsync(CancellationToken cancellationToken)
at Microsoft.Extensions.Hosting.Internal.Host.<StartAsync>b__15_1(IHostedService service, CancellationToken token)
at Microsoft.Extensions.Hosting.Internal.Host.ForeachService[T](IEnumerable`1 services, CancellationToken token, Boolean concurrent, Boolean abortOnFirstException, List`1 exceptions, Func`3 operation)
at Microsoft.Extensions.Hosting.Internal.Host.<StartAsync>g__LogAndRethrow|15_3(<>c__DisplayClass15_0&)
at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken)
at Jellyfin.Server.Program.StartServer(IServerApplicationPaths appPaths, StartupOptions options, IConfiguration startupConfig)
[2024-04-12 11:24:20.067 +02:00] [ERR] [17] Main: Kestrel failed to start! This is most likely due to an invalid address or port bind - correct your bind configuration in network.xml and try again
[2024-04-12 11:24:20.067 +02:00] [FTL] [17] Main: Error while starting server
System.InvalidOperationException: There was an error generating the XML document.
---> System.InvalidCastException: [A]ConfusedPolarBear.Plugin.IntroSkipper.Configuration.PluginConfiguration cannot be cast to [B]ConfusedPolarBear.Plugin.IntroSkipper.Configuration.PluginConfiguration. Type A originates from 'ConfusedPolarBear.Plugin.IntroSkipper, Version=0.2.0.1, Culture=neutral, PublicKeyToken=null' in the context '"" Emby.Server.Implementations.Plugins.PluginLoadContext #371' at location '/config/plugins/Intro Skipper_0.2.0.1/ConfusedPolarBear.Plugin.IntroSkipper.dll'. Type B originates from 'ConfusedPolarBear.Plugin.IntroSkipper, Version=0.2.0.1, Culture=neutral, PublicKeyToken=null' in the context '"" Emby.Server.Implementations.Plugins.PluginLoadContext #1' at location '/config/plugins/Intro Skipper_0.2.0.1/ConfusedPolarBear.Plugin.IntroSkipper.dll'.
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterPluginConfiguration.Write6_PluginConfiguration(Object o)
at InvokeStub_XmlSerializationWriterPluginConfiguration.Write6_PluginConfiguration(Object, Span`1)
at System.Reflection.MethodBaseInvoker.InvokeWithOneArg(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
--- End of inner exception stack trace ---
at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id)
at Emby.Server.Implementations.Serialization.MyXmlSerializer.SerializeToStream(Object obj, Stream stream)
at Emby.Server.Implementations.Serialization.MyXmlSerializer.SerializeToFile(Object obj, String file)
at MediaBrowser.Common.Plugins.BasePlugin`1.SaveConfiguration(TConfigurationType config)
at MediaBrowser.Common.Plugins.BasePlugin`1.LoadConfiguration()
at MediaBrowser.Common.Plugins.BasePlugin`1.get_Configuration()
at ConfusedPolarBear.Plugin.IntroSkipper.AutoSkip.AutoSkipChanged(Object sender, EventArgs e)
at ConfusedPolarBear.Plugin.IntroSkipper.AutoSkip.StartAsync(CancellationToken cancellationToken)
at Microsoft.Extensions.Hosting.Internal.Host.<StartAsync>b__15_1(IHostedService service, CancellationToken token)
at Microsoft.Extensions.Hosting.Internal.Host.ForeachService[T](IEnumerable`1 services, CancellationToken token, Boolean concurrent, Boolean abortOnFirstException, List`1 exceptions, Func`3 operation)
at Microsoft.Extensions.Hosting.Internal.Host.<StartAsync>g__LogAndRethrow|15_3(<>c__DisplayClass15_0&)
at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken)
at Jellyfin.Server.Program.StartServer(IServerApplicationPaths appPaths, StartupOptions options, IConfiguration startupConfig)
[2024-04-12 11:24:20.067 +02:00] [INF] [17] Main: Running query planner optimizations in the database... This might take a while
Skipping intro when using sync play doesnt work correctly.
If I click the skip intro button, it will skip ahead, and then skip backwards to where I was before
Docker
jellyfin/jellyfin:latest
Ubuntu
None
okay
FFmpeg version:
ffmpeg version 5.1.4-Jellyfin Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 10 (Debian 10.2.1-6)
configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-libs=-lfftw3f --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-libdrm --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=amd64 --enable-libsvtav1 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-opencl --enable-vaapi --enable-amf --enable-libmfx --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
libavutil 57. 28.100 / 57. 28.100
libavcodec 59. 37.100 / 59. 37.100
libavformat 59. 27.100 / 59. 27.100
libavdevice 59. 7.100 / 59. 7.100
libavfilter 8. 44.100 / 8. 44.100
libswscale 6. 7.100 / 6. 7.100
libswresample 4. 7.100 / 4. 7.100
libpostproc 56. 6.100 / 56. 6.100
No response
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.