浏览代码

Adding support for proper trailer STRM URL format, along with the deprecated format

Martin Vandenbussche 1 年之前
父节点
当前提交
7cd60aefb5
共有 1 个文件被更改,包括 22 次插入4 次删除
  1. 22 4
      MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs

+ 22 - 4
MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs

@@ -460,10 +460,28 @@ namespace MediaBrowser.XbmcMetadata.Parsers
                     var trailer = reader.ReadNormalizedString();
                     if (!string.IsNullOrEmpty(trailer))
                     {
-                        item.AddTrailerUrl(trailer.Replace(
-                            "plugin://plugin.video.youtube/?action=play_video&videoid=",
-                            BaseNfoSaver.YouTubeWatchUrl,
-                            StringComparison.OrdinalIgnoreCase));
+                        if (trailer.StartsWith("plugin://plugin.video.youtube/?action=play_video&videoid=", StringComparison.OrdinalIgnoreCase))
+                        {
+                            // Deprecated format
+                            item.AddTrailerUrl(trailer.Replace(
+                                "plugin://plugin.video.youtube/?action=play_video&videoid=",
+                                BaseNfoSaver.YouTubeWatchUrl,
+                                StringComparison.OrdinalIgnoreCase));
+
+                            var suggested_url = trailer.Replace(
+                                "plugin://plugin.video.youtube/?action=play_video&videoid=",
+                                "plugin://plugin.video.youtube/play/?video_id=",
+                                StringComparison.OrdinalIgnoreCase);
+                            Logger.LogWarning("Trailer URL uses a deprecated format : {URL}. Using {URL_NEW} instead is advised.", [trailer, suggested_url]);
+                        }
+                        else if (trailer.StartsWith("plugin://plugin.video.youtube/play/?video_id=", StringComparison.OrdinalIgnoreCase))
+                        {
+                            // Proper format
+                            item.AddTrailerUrl(trailer.Replace(
+                                "plugin://plugin.video.youtube/play/?video_id=",
+                                BaseNfoSaver.YouTubeWatchUrl,
+                                StringComparison.OrdinalIgnoreCase));
+                        }
                     }
 
                     break;