ankenyr / jellyfin-youtube-metadata-plugin

Youtube Metadata Plugin for Jellyfin
GNU Affero General Public License v3.0
522 stars 33 forks source link

Newlines in description, and refresh metadata on whole library always failing immediately #86

Open BobbyWibowo opened 1 year ago

BobbyWibowo commented 1 year ago

All the following takes place on Jellyfin 10.8.10, with YoutubeMetadata 1.0.3.8 (I'm aware that latest version is supposed to be 1.0.3.9, but despite explicitly choosing to install 1.0.3.9 through Jellyfin, the installed plugin always claims that it is 1.0.3.8, so I'm thinking it's a misconfigured version string somewhere)

The server is running EndeavourOS (Arch Linux) x64

Library type is Music Videos, with only YouTubeMetadata as the metadata downloader service


First, are newlines somehow not supported in the description metadata?

Here's an example video: https://www.youtube.com/watch?v=zmS7kzSHuSE It's supposed to have song timestamps on every new lines

Screenshot of video's description on YouTube ![image](https://i.fiery.me/rNOa.png)

But alas, the resulting description in Jellyfin ends up being kinda funky

Screenshot of video's description on Jellyfin ![image](https://i.fiery.me/beoC.png)

Here's a sample for regular anime movies library, using Jellyfin's official AniDB and AniList metadata downloader plugins, which makes me think it's actually supported, perhaps?

Screenshot ![image](https://i.fiery.me/SzcA.png)

Additionally, if I do Refresh metadata > Replace all metadata (or Search for missing metadata), on a whole library, it appears to always fail immediately

Logs ``` [2023-07-05 03:05:55.378 +07:00] [ERR] [47] MediaBrowser.Providers.Music.MusicVideoMetadataService: Error in "YoutubeMetadata" System.IO.FileNotFoundException: Could not find file '/mnt/data/Videos/YouTube/Genshin Impact - 20210118 - Genshin Impact EP - At the Light of Dawn [BXeQMK7XecU]/Genshin Impact - 20210118 - Genshin_Impact_EP_-_At_the_Light_of_Dawn [BXeQMK7XecU].info.json'. File name: '/mnt/data/Videos/YouTube/Genshin Impact - 20210118 - Genshin Impact EP - At the Light of Dawn [BXeQMK7XecU]/Genshin Impact - 20210118 - Genshin_Impact_EP_-_At_the_Light_of_Dawn [BXeQMK7XecU].info.json' at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func`2 errorRewriter) at Interop.CheckIo(Error error, String path, Boolean isDirectory, Func`2 errorRewriter) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize) at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize) at System.IO.StreamReader.ValidateArgsAndOpenPath(String path, Encoding encoding, Int32 bufferSize) at System.IO.File.InternalReadAllText(String path, Encoding encoding) at Jellyfin.Plugin.YoutubeMetadata.Utils.ReadYTDLInfo(String fpath, CancellationToken cancellationToken) at Jellyfin.Plugin.YoutubeMetadata.Providers.AbstractYoutubeLocalProvider`2.GetMetadata(ItemInfo info, IDirectoryService directoryService, CancellationToken cancellationToken) at MediaBrowser.Providers.Manager.MetadataService`2.RefreshWithProviders(MetadataResult`1 metadata, TIdType id, MetadataRefreshOptions options, ICollection`1 providers, ItemImageProvider imageService, CancellationToken cancellationToken) [2023-07-05 03:05:55.386 +07:00] [ERR] [51] MediaBrowser.Providers.Music.MusicVideoMetadataService: Error in "YoutubeMetadata" System.IO.FileNotFoundException: Could not find file '/mnt/data/Videos/YouTube/Genshin Impact - 20201105 - Jade Moon Upon a Sea of Clouds - Disc 1_ Glazed Moon Over the Tides|Genshin Impact [t1O7LpOTBfM]/Genshin Impact - 20201105 - Jade_Moon_Upon_a_Sea_of_Clouds_-_Disc_1__Glazed_Moon_Over_the_Tides|Genshin_Impact [t1O7LpOTBfM].info.json'. File name: '/mnt/data/Videos/YouTube/Genshin Impact - 20201105 - Jade Moon Upon a Sea of Clouds - Disc 1_ Glazed Moon Over the Tides|Genshin Impact [t1O7LpOTBfM]/Genshin Impact - 20201105 - Jade_Moon_Upon_a_Sea_of_Clouds_-_Disc_1__Glazed_Moon_Over_the_Tides|Genshin_Impact [t1O7LpOTBfM].info.json' at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func`2 errorRewriter) at Interop.CheckIo(Error error, String path, Boolean isDirectory, Func`2 errorRewriter) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize) at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize) at System.IO.StreamReader.ValidateArgsAndOpenPath(String path, Encoding encoding, Int32 bufferSize) at System.IO.File.InternalReadAllText(String path, Encoding encoding) at Jellyfin.Plugin.YoutubeMetadata.Utils.ReadYTDLInfo(String fpath, CancellationToken cancellationToken) at Jellyfin.Plugin.YoutubeMetadata.Providers.AbstractYoutubeLocalProvider`2.GetMetadata(ItemInfo info, IDirectoryService directoryService, CancellationToken cancellationToken) at MediaBrowser.Providers.Manager.MetadataService`2.RefreshWithProviders(MetadataResult`1 metadata, TIdType id, MetadataRefreshOptions options, ICollection`1 providers, ItemImageProvider imageService, CancellationToken cancellationToken) [2023-07-05 03:05:55.392 +07:00] [ERR] [43] MediaBrowser.Providers.Music.MusicVideoMetadataService: Error in "YoutubeMetadata" System.IO.FileNotFoundException: Could not find file '/mnt/data/Videos/YouTube/Genshin Impact - 20201102 - City of Winds and Idylls - Disc 3_ Saga of the West Wind|Genshin Impact [FYgGSFgWjBw]/Genshin Impact - 20201102 - City_of_Winds_and_Idylls_-_Disc_3__Saga_of_the_West_Wind|Genshin_Impact [FYgGSFgWjBw].info.json'. File name: '/mnt/data/Videos/YouTube/Genshin Impact - 20201102 - City of Winds and Idylls - Disc 3_ Saga of the West Wind|Genshin Impact [FYgGSFgWjBw]/Genshin Impact - 20201102 - City_of_Winds_and_Idylls_-_Disc_3__Saga_of_the_West_Wind|Genshin_Impact [FYgGSFgWjBw].info.json' at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func`2 errorRewriter) at Interop.CheckIo(Error error, String path, Boolean isDirectory, Func`2 errorRewriter) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize) at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize) at System.IO.StreamReader.ValidateArgsAndOpenPath(String path, Encoding encoding, Int32 bufferSize) at System.IO.File.InternalReadAllText(String path, Encoding encoding) at Jellyfin.Plugin.YoutubeMetadata.Utils.ReadYTDLInfo(String fpath, CancellationToken cancellationToken) at Jellyfin.Plugin.YoutubeMetadata.Providers.AbstractYoutubeLocalProvider`2.GetMetadata(ItemInfo info, IDirectoryService directoryService, CancellationToken cancellationToken) at MediaBrowser.Providers.Manager.MetadataService`2.RefreshWithProviders(MetadataResult`1 metadata, TIdType id, MetadataRefreshOptions options, ICollection`1 providers, ItemImageProvider imageService, CancellationToken cancellationToken) [2023-07-05 03:05:55.398 +07:00] [ERR] [35] MediaBrowser.Providers.Music.MusicVideoMetadataService: Error in "YoutubeMetadata" System.IO.FileNotFoundException: Could not find file '/mnt/data/Videos/YouTube/Genshin Impact - 20201102 - City of Winds and Idylls - Disc 2_ The Horizon of Dandelion|Genshin Impact [aeEkatw2Heg]/Genshin Impact - 20201102 - City_of_Winds_and_Idylls_-_Disc_2__The_Horizon_of_Dandelion|Genshin_Impact [aeEkatw2Heg].info.json'. File name: '/mnt/data/Videos/YouTube/Genshin Impact - 20201102 - City of Winds and Idylls - Disc 2_ The Horizon of Dandelion|Genshin Impact [aeEkatw2Heg]/Genshin Impact - 20201102 - City_of_Winds_and_Idylls_-_Disc_2__The_Horizon_of_Dandelion|Genshin_Impact [aeEkatw2Heg].info.json' at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func`2 errorRewriter) at Interop.CheckIo(Error error, String path, Boolean isDirectory, Func`2 errorRewriter) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize) at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize) at System.IO.StreamReader.ValidateArgsAndOpenPath(String path, Encoding encoding, Int32 bufferSize) at System.IO.File.InternalReadAllText(String path, Encoding encoding) at Jellyfin.Plugin.YoutubeMetadata.Utils.ReadYTDLInfo(String fpath, CancellationToken cancellationToken) at Jellyfin.Plugin.YoutubeMetadata.Providers.AbstractYoutubeLocalProvider`2.GetMetadata(ItemInfo info, IDirectoryService directoryService, CancellationToken cancellationToken) at MediaBrowser.Providers.Manager.MetadataService`2.RefreshWithProviders(MetadataResult`1 metadata, TIdType id, MetadataRefreshOptions options, ICollection`1 providers, ItemImageProvider imageService, CancellationToken cancellationToken) [2023-07-05 03:05:55.403 +07:00] [ERR] [19] MediaBrowser.Providers.Music.MusicVideoMetadataService: Error in "YoutubeMetadata" System.IO.FileNotFoundException: Could not find file '/mnt/data/Videos/YouTube/Genshin Impact - 20201102 - City of Winds and Idylls - Disc 1_ City of Winds and Idylls|Genshin Impact [AALrH26HAmw]/Genshin Impact - 20201102 - City_of_Winds_and_Idylls_-_Disc_1__City_of_Winds_and_Idylls|Genshin_Impact [AALrH26HAmw].info.json'. File name: '/mnt/data/Videos/YouTube/Genshin Impact - 20201102 - City of Winds and Idylls - Disc 1_ City of Winds and Idylls|Genshin Impact [AALrH26HAmw]/Genshin Impact - 20201102 - City_of_Winds_and_Idylls_-_Disc_1__City_of_Winds_and_Idylls|Genshin_Impact [AALrH26HAmw].info.json' at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func`2 errorRewriter) at Interop.CheckIo(Error error, String path, Boolean isDirectory, Func`2 errorRewriter) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize) at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize) at System.IO.StreamReader.ValidateArgsAndOpenPath(String path, Encoding encoding, Int32 bufferSize) at System.IO.File.InternalReadAllText(String path, Encoding encoding) at Jellyfin.Plugin.YoutubeMetadata.Utils.ReadYTDLInfo(String fpath, CancellationToken cancellationToken) at Jellyfin.Plugin.YoutubeMetadata.Providers.AbstractYoutubeLocalProvider`2.GetMetadata(ItemInfo info, IDirectoryService directoryService, CancellationToken cancellationToken) at MediaBrowser.Providers.Manager.MetadataService`2.RefreshWithProviders(MetadataResult`1 metadata, TIdType id, MetadataRefreshOptions options, ICollection`1 providers, ItemImageProvider imageService, CancellationToken cancellationToken) [2023-07-05 03:05:55.409 +07:00] [ERR] [8] MediaBrowser.Providers.Music.MusicVideoMetadataService: Error in "YoutubeMetadata" System.IO.FileNotFoundException: Could not find file '/mnt/data/Videos/YouTube/Genshin Impact - 20201107 - EP - Tales Told by the Wind|Genshin Impact [XYumEcnxfKQ]/Genshin Impact - 20201107 - EP_-_Tales_Told_by_the_Wind|Genshin_Impact [XYumEcnxfKQ].info.json'. File name: '/mnt/data/Videos/YouTube/Genshin Impact - 20201107 - EP - Tales Told by the Wind|Genshin Impact [XYumEcnxfKQ]/Genshin Impact - 20201107 - EP_-_Tales_Told_by_the_Wind|Genshin_Impact [XYumEcnxfKQ].info.json' at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func`2 errorRewriter) at Interop.CheckIo(Error error, String path, Boolean isDirectory, Func`2 errorRewriter) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize) at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize) at System.IO.StreamReader.ValidateArgsAndOpenPath(String path, Encoding encoding, Int32 bufferSize) at System.IO.File.InternalReadAllText(String path, Encoding encoding) at Jellyfin.Plugin.YoutubeMetadata.Utils.ReadYTDLInfo(String fpath, CancellationToken cancellationToken) at Jellyfin.Plugin.YoutubeMetadata.Providers.AbstractYoutubeLocalProvider`2.GetMetadata(ItemInfo info, IDirectoryService directoryService, CancellationToken cancellationToken) at MediaBrowser.Providers.Manager.MetadataService`2.RefreshWithProviders(MetadataResult`1 metadata, TIdType id, MetadataRefreshOptions options, ICollection`1 providers, ItemImageProvider imageService, CancellationToken cancellationToken) [2023-07-05 03:05:55.409 +07:00] [ERR] [53] MediaBrowser.Providers.Music.MusicVideoMetadataService: Error in "YoutubeMetadata" System.IO.FileNotFoundException: Could not find file '/mnt/data/Videos/YouTube/Genshin Impact - 20200618 - The Wind and The Star Traveler (Full Version)|Genshin Impact [ol3ViRJlCAI]/Genshin Impact - 20200618 - The_Wind_and_The_Star_Traveler_(Full_Version)|Genshin_Impact [ol3ViRJlCAI].info.json'. File name: '/mnt/data/Videos/YouTube/Genshin Impact - 20200618 - The Wind and The Star Traveler (Full Version)|Genshin Impact [ol3ViRJlCAI]/Genshin Impact - 20200618 - The_Wind_and_The_Star_Traveler_(Full_Version)|Genshin_Impact [ol3ViRJlCAI].info.json' at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func`2 errorRewriter) at Interop.CheckIo(Error error, String path, Boolean isDirectory, Func`2 errorRewriter) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize) at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize) at System.IO.StreamReader.ValidateArgsAndOpenPath(String path, Encoding encoding, Int32 bufferSize) at System.IO.File.InternalReadAllText(String path, Encoding encoding) at Jellyfin.Plugin.YoutubeMetadata.Utils.ReadYTDLInfo(String fpath, CancellationToken cancellationToken) at Jellyfin.Plugin.YoutubeMetadata.Providers.AbstractYoutubeLocalProvider`2.GetMetadata(ItemInfo info, IDirectoryService directoryService, CancellationToken cancellationToken) at MediaBrowser.Providers.Manager.MetadataService`2.RefreshWithProviders(MetadataResult`1 metadata, TIdType id, MetadataRefreshOptions options, ICollection`1 providers, ItemImageProvider imageService, CancellationToken cancellationToken) [2023-07-05 03:05:55.415 +07:00] [ERR] [33] MediaBrowser.Providers.Music.MusicVideoMetadataService: Error in "YoutubeMetadata" System.IO.FileNotFoundException: Could not find file '/mnt/data/Videos/YouTube/Genshin Impact - 20201105 - Jade Moon Upon a Sea of Clouds - Disc 2_ Shimmering Sea of Clouds and Moonlight|Genshin Impact [c0jZ7sPyouE]/Genshin Impact - 20201105 - Jade_Moon_Upon_a_Sea_of_Clouds_-_Disc_2__Shimmering_Sea_of_Clouds_and_Moonlight|Genshin_Impact [c0jZ7sPyouE].info.json'. File name: '/mnt/data/Videos/YouTube/Genshin Impact - 20201105 - Jade Moon Upon a Sea of Clouds - Disc 2_ Shimmering Sea of Clouds and Moonlight|Genshin Impact [c0jZ7sPyouE]/Genshin Impact - 20201105 - Jade_Moon_Upon_a_Sea_of_Clouds_-_Disc_2__Shimmering_Sea_of_Clouds_and_Moonlight|Genshin_Impact [c0jZ7sPyouE].info.json' at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func`2 errorRewriter) at Interop.CheckIo(Error error, String path, Boolean isDirectory, Func`2 errorRewriter) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize) at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize) at System.IO.StreamReader.ValidateArgsAndOpenPath(String path, Encoding encoding, Int32 bufferSize) at System.IO.File.InternalReadAllText(String path, Encoding encoding) at Jellyfin.Plugin.YoutubeMetadata.Utils.ReadYTDLInfo(String fpath, CancellationToken cancellationToken) at Jellyfin.Plugin.YoutubeMetadata.Providers.AbstractYoutubeLocalProvider`2.GetMetadata(ItemInfo info, IDirectoryService directoryService, CancellationToken cancellationToken) at MediaBrowser.Providers.Manager.MetadataService`2.RefreshWithProviders(MetadataResult`1 metadata, TIdType id, MetadataRefreshOptions options, ICollection`1 providers, ItemImageProvider imageService, CancellationToken cancellationToken) [2023-07-05 03:05:55.545 +07:00] [INF] [51] Emby.Server.Implementations.HttpServer.WebSocketManager: WS "192.168.0.110" closed [2023-07-05 03:05:55.905 +07:00] [INF] [49] Emby.Server.Implementations.HttpServer.WebSocketManager: WS "192.168.0.110" request [2023-07-05 03:05:57.334 +07:00] [ERR] [43] MediaBrowser.Providers.Manager.ProviderManager: Error refreshing item Constraint: SQLitePCL.pretty.SQLiteException: NOT NULL constraint failed: ItemValues.Type at SQLitePCL.pretty.SQLiteException.Throw(Int32 rc, Int32 extended, String msg) at SQLitePCL.pretty.SQLiteException.CheckOk(sqlite3 db, Int32 rc) at SQLitePCL.pretty.StatementImpl.MoveNext() at Emby.Server.Implementations.Data.SqliteItemRepository.InsertItemValues(Byte[] idBlob, List`1 values, IDatabaseConnection db) at Emby.Server.Implementations.Data.SqliteItemRepository.UpdateItemValues(Guid itemId, List`1 values, IDatabaseConnection db) at Emby.Server.Implementations.Data.SqliteItemRepository.SaveItemsInTransaction(IDatabaseConnection db, IEnumerable`1 tuples) at Emby.Server.Implementations.Data.SqliteItemRepository.<>c__DisplayClass34_0.b__0(IDatabaseConnection db) at SQLitePCL.pretty.DatabaseConnection.<>c__DisplayClass20_0.b__0(IDatabaseConnection db) at SQLitePCL.pretty.DatabaseConnection.RunInTransaction[T](IDatabaseConnection This, Func`2 f, TransactionMode mode) at SQLitePCL.pretty.DatabaseConnection.RunInTransaction(IDatabaseConnection This, Action`1 action, TransactionMode mode) at Emby.Server.Implementations.Data.SqliteItemRepository.SaveItems(IEnumerable`1 items, CancellationToken cancellationToken) at Emby.Server.Implementations.Library.LibraryManager.UpdateItemsAsync(IReadOnlyList`1 items, BaseItem parent, ItemUpdateType updateReason, CancellationToken cancellationToken) at MediaBrowser.Controller.Entities.Video.UpdateToRepositoryAsync(ItemUpdateType updateReason, CancellationToken cancellationToken) at MediaBrowser.Providers.Manager.MetadataService`2.SaveItemAsync(MetadataResult`1 result, ItemUpdateType reason, CancellationToken cancellationToken) at MediaBrowser.Providers.Manager.MetadataService`2.RefreshMetadata(BaseItem item, MetadataRefreshOptions refreshOptions, CancellationToken cancellationToken) at MediaBrowser.Controller.Entities.BaseItem.RefreshMetadata(MetadataRefreshOptions options, CancellationToken cancellationToken) at MediaBrowser.Controller.Entities.Folder.<>c__DisplayClass68_0.<b__0>d.MoveNext() --- End of stack trace from previous location --- at MediaBrowser.Providers.Manager.ProviderManager.RunMetadataRefresh(Func`1 action, CancellationToken cancellationToken) at MediaBrowser.Controller.Entities.Folder.RefreshChildMetadata(BaseItem child, MetadataRefreshOptions refreshOptions, Boolean recursive, IProgress`1 progress, CancellationToken cancellationToken) at MediaBrowser.Controller.Entities.Folder.<>c__DisplayClass70_0`1.<b__1>d.MoveNext() --- End of stack trace from previous location --- at MediaBrowser.Controller.Entities.Folder.RunTasks[T](Func`3 task, IList`1 children, IProgress`1 progress, CancellationToken cancellationToken) at MediaBrowser.Controller.Entities.Folder.ValidateChildrenInternal2(IProgress`1 progress, Boolean recursive, Boolean refreshChildMetadata, MetadataRefreshOptions refreshOptions, IDirectoryService directoryService, CancellationToken cancellationToken) at MediaBrowser.Controller.Entities.Folder.ValidateChildrenInternal(IProgress`1 progress, Boolean recursive, Boolean refreshChildMetadata, MetadataRefreshOptions refreshOptions, IDirectoryService directoryService, CancellationToken cancellationToken) at MediaBrowser.Providers.Manager.ProviderManager.RefreshCollectionFolderChildren(MetadataRefreshOptions options, CollectionFolder collectionFolder, CancellationToken cancellationToken) at MediaBrowser.Providers.Manager.ProviderManager.RefreshItem(BaseItem item, MetadataRefreshOptions options, CancellationToken cancellationToken) at MediaBrowser.Providers.Manager.ProviderManager.StartProcessingRefreshQueue() ```

For context, the library has some videos with missing metadata in the first place

BobbyWibowo commented 1 year ago

Ah, I see, AniDB/AniList plugin explicitly uses <br> HTML tag for newlines And it seems Jellyfin would render the HTML as-is (kind of a strange practice, but it is what it is I guess?)

Screenshot ![image](https://i.fiery.me/as3R.png)

Meanwhile YouTubeMetadata do retain the regular newlines, but Jellyfin clearly don't care about those haha

Screenshot ![image](https://i.fiery.me/Mg3E.png)
ankenyr commented 1 year ago

That is a good catch, I never look at the descriptions myself and mostly use this and my accompanying scripts for archival purposes. This would be something that could be fixed if you want to give it a shot. I have little time right now as I am working on a special project. Once that is done I will likely revisit this plugin but until them my time is very limited.