diff --git a/Jellyfin.Plugin.MediaBarEnhanced/Web/mediaBarEnhanced.js b/Jellyfin.Plugin.MediaBarEnhanced/Web/mediaBarEnhanced.js index a35a129..5da2a48 100644 --- a/Jellyfin.Plugin.MediaBarEnhanced/Web/mediaBarEnhanced.js +++ b/Jellyfin.Plugin.MediaBarEnhanced/Web/mediaBarEnhanced.js @@ -1576,8 +1576,24 @@ const SlideCreator = { // 1a. Custom URL override if (STATE.slideshow.customTrailerUrls && STATE.slideshow.customTrailerUrls[itemId]) { - trailerUrl = STATE.slideshow.customTrailerUrls[itemId]; - console.log(`Using custom trailer URL for ${itemId}: ${trailerUrl}`); + const customValue = STATE.slideshow.customTrailerUrls[itemId]; + + // Check if the custom value is a Jellyfin Item ID (GUID) + const guidMatch = customValue.match(/^([0-9a-f]{32})$/i); + + if (guidMatch) { + const videoId = guidMatch[1]; + console.log(`Using custom local video ID for ${itemId}: ${videoId}`); + + trailerUrl = { + id: videoId, + url: `${STATE.jellyfinData.serverAddress}/Videos/${videoId}/stream.mp4?Static=true&api_key=${STATE.jellyfinData.accessToken}` + }; + } else { + // Assume it's a standard URL (YouTube, etc.) + trailerUrl = customValue; + console.log(`Using custom trailer URL for ${itemId}: ${trailerUrl}`); + } } // 1b. Check Local Trailer if preferred else if (CONFIG.preferLocalTrailers && item.LocalTrailerCount > 0 && item.localTrailerUrl) { @@ -1757,7 +1773,6 @@ const SlideCreator = { isVideo = true; const videoAttributes = { - className: "backdrop video-backdrop", className: "backdrop video-backdrop", src: (typeof trailerUrl === 'object' ? trailerUrl.url : trailerUrl), autoplay: false,