Describe the Bug
When a YouTube download fails for a movie or series that exists in the Themerr database, the item does not appear in the "Realization Dashboard" (plugin settings).
Steps to reproduce
- Have a movie or series that is present in the Themerr database but with a dead YouTube link
- Trigger Themerr to process it
- Check the "Realization Dashboard" in the plugin settings -> movie or serie is missing
Plugin version : 2026.530.2048.33
Expected Behavior
The item should still appear in the "Realization Dashboard" with a status indicating that it was found in the Themerr database but that the MP3 download failed.
Additional Context
Four examples from my library :
May 31 20:21:14 jellyfin jellyfin[51667]: [20:21:14] [ERR] Unable to download https://www.youtube.com/watch?v=bH42rcsO75A to /mnt/multimedia/tv/Doctor Who (2005) [tvdbid-78804]/theme.mp3
May 31 20:21:14 jellyfin jellyfin[51667]: YoutubeExplode.Exceptions.YoutubeExplodeException: Failed to extract the cipher manifest.
May 31 20:21:14 jellyfin jellyfin[51667]: at YoutubeExplode.Videos.Streams.StreamClient.ResolveCipherManifestAsync(CancellationToken cancellationToken) in /_/YoutubeExplode/Videos/Streams/StreamClient.cs:line 40
May 31 20:21:14 jellyfin jellyfin[51667]: at YoutubeExplode.Videos.Streams.StreamClient.GetStreamInfosAsync(VideoId videoId, CancellationToken cancellationToken) in /_/YoutubeExplode/Videos/Streams/StreamClient.cs:line 284
May 31 20:21:14 jellyfin jellyfin[51667]: at YoutubeExplode.Videos.Streams.StreamClient.GetManifestAsync(VideoId videoId, CancellationToken cancellationToken) in /_/YoutubeExplode/Videos/Streams/StreamClient.cs:line 309
May 31 20:21:14 jellyfin jellyfin[51667]: at Jellyfin.Plugin.Themerr.YoutubeClientWrapper.DownloadAudioAsync(String videoUrl, String destination)
May 31 20:21:14 jellyfin jellyfin[51667]: at Jellyfin.Plugin.Themerr.ThemerrManager.SaveMp3(String destination, String videoUrl)
May 31 20:21:15 jellyfin jellyfin[51667]: [20:21:15] [ERR] Unable to download https://www.youtube.com/watch?v=qnNQJI_jUIA to /mnt/multimedia/movies/Le Chateau dans le ciel (1986) [tmdbid-10515] (Castle in the Sky)/theme.mp3
May 31 20:21:15 jellyfin jellyfin[51667]: YoutubeExplode.Exceptions.YoutubeExplodeException: Failed to extract the cipher manifest.
May 31 20:21:15 jellyfin jellyfin[51667]: at YoutubeExplode.Videos.Streams.StreamClient.ResolveCipherManifestAsync(CancellationToken cancellationToken) in /_/YoutubeExplode/Videos/Streams/StreamClient.cs:line 40
May 31 20:21:15 jellyfin jellyfin[51667]: at YoutubeExplode.Videos.Streams.StreamClient.GetStreamInfosAsync(VideoId videoId, CancellationToken cancellationToken) in /_/YoutubeExplode/Videos/Streams/StreamClient.cs:line 284
May 31 20:21:15 jellyfin jellyfin[51667]: at YoutubeExplode.Videos.Streams.StreamClient.GetManifestAsync(VideoId videoId, CancellationToken cancellationToken) in /_/YoutubeExplode/Videos/Streams/StreamClient.cs:line 309
May 31 20:21:15 jellyfin jellyfin[51667]: at Jellyfin.Plugin.Themerr.YoutubeClientWrapper.DownloadAudioAsync(String videoUrl, String destination)
May 31 20:21:15 jellyfin jellyfin[51667]: at Jellyfin.Plugin.Themerr.ThemerrManager.SaveMp3(String destination, String videoUrl)
May 31 20:21:16 jellyfin jellyfin[51667]: [20:21:16] [ERR] Unable to download https://www.youtube.com/watch?v=fTcKrxOjIA8 to /mnt/multimedia/movies/Les Gardiens de la Galaxie Vol. 2 (2017)/theme.mp3
May 31 20:21:16 jellyfin jellyfin[51667]: YoutubeExplode.Exceptions.YoutubeExplodeException: Failed to extract the cipher manifest.
May 31 20:21:16 jellyfin jellyfin[51667]: at YoutubeExplode.Videos.Streams.StreamClient.ResolveCipherManifestAsync(CancellationToken cancellationToken) in /_/YoutubeExplode/Videos/Streams/StreamClient.cs:line 40
May 31 20:21:16 jellyfin jellyfin[51667]: at YoutubeExplode.Videos.Streams.StreamClient.GetStreamInfosAsync(VideoId videoId, CancellationToken cancellationToken) in /_/YoutubeExplode/Videos/Streams/StreamClient.cs:line 284
May 31 20:21:16 jellyfin jellyfin[51667]: at YoutubeExplode.Videos.Streams.StreamClient.GetManifestAsync(VideoId videoId, CancellationToken cancellationToken) in /_/YoutubeExplode/Videos/Streams/StreamClient.cs:line 309
May 31 20:21:16 jellyfin jellyfin[51667]: at Jellyfin.Plugin.Themerr.YoutubeClientWrapper.DownloadAudioAsync(String videoUrl, String destination)
May 31 20:21:16 jellyfin jellyfin[51667]: at Jellyfin.Plugin.Themerr.ThemerrManager.SaveMp3(String destination, String videoUrl)
May 31 20:21:16 jellyfin jellyfin[51667]: [20:21:16] [ERR] Unable to download https://www.youtube.com/watch?v=y9ZNTtRez08 to /mnt/multimedia/movies/Madagascar (2005)/theme.mp3
May 31 20:21:16 jellyfin jellyfin[51667]: YoutubeExplode.Exceptions.VideoUnavailableException: Video 'y9ZNTtRez08' is not available.
May 31 20:21:16 jellyfin jellyfin[51667]: at YoutubeExplode.Videos.VideoController.GetPlayerResponseAsync(VideoId videoId, CancellationToken cancellationToken) in /_/YoutubeExplode/Videos/VideoController.cs:line 146
May 31 20:21:16 jellyfin jellyfin[51667]: at YoutubeExplode.Videos.Streams.StreamClient.GetStreamInfosAsync(VideoId videoId, CancellationToken cancellationToken) in /_/YoutubeExplode/Videos/Streams/StreamClient.cs:line 272
May 31 20:21:16 jellyfin jellyfin[51667]: at YoutubeExplode.Videos.Streams.StreamClient.GetManifestAsync(VideoId videoId, CancellationToken cancellationToken) in /_/YoutubeExplode/Videos/Streams/StreamClient.cs:line 309
May 31 20:21:16 jellyfin jellyfin[51667]: at Jellyfin.Plugin.Themerr.YoutubeClientWrapper.DownloadAudioAsync(String videoUrl, String destination)
May 31 20:21:16 jellyfin jellyfin[51667]: at Jellyfin.Plugin.Themerr.ThemerrManager.SaveMp3(String destination, String videoUrl)
May 31 20:21:17 jellyfin jellyfin[51667]: [20:21:17] [ERR] Unable to download https://www.youtube.com/watch?v=zyGQE7dHm4k to /mnt/multimedia/movies/Twilight chapitre 1 Fascination (2008)/theme.mp3
May 31 20:21:17 jellyfin jellyfin[51667]: YoutubeExplode.Exceptions.YoutubeExplodeException: Failed to extract the cipher manifest.
May 31 20:21:17 jellyfin jellyfin[51667]: at YoutubeExplode.Videos.Streams.StreamClient.ResolveCipherManifestAsync(CancellationToken cancellationToken) in /_/YoutubeExplode/Videos/Streams/StreamClient.cs:line 40
May 31 20:21:17 jellyfin jellyfin[51667]: at YoutubeExplode.Videos.Streams.StreamClient.GetStreamInfosAsync(VideoId videoId, CancellationToken cancellationToken) in /_/YoutubeExplode/Videos/Streams/StreamClient.cs:line 284
May 31 20:21:17 jellyfin jellyfin[51667]: at YoutubeExplode.Videos.Streams.StreamClient.GetManifestAsync(VideoId videoId, CancellationToken cancellationToken) in /_/YoutubeExplode/Videos/Streams/StreamClient.cs:line 309
May 31 20:21:17 jellyfin jellyfin[51667]: at Jellyfin.Plugin.Themerr.YoutubeClientWrapper.DownloadAudioAsync(String videoUrl, String destination)
Describe the Bug
When a YouTube download fails for a movie or series that exists in the Themerr database, the item does not appear in the "Realization Dashboard" (plugin settings).
Steps to reproduce
Plugin version : 2026.530.2048.33
Expected Behavior
The item should still appear in the "Realization Dashboard" with a status indicating that it was found in the Themerr database but that the MP3 download failed.
Additional Context
Four examples from my library :