From 655246634f4aac712c2cc26c8abc1bc29001e3d8 Mon Sep 17 00:00:00 2001 From: Kelvin <kelvin@futo.org> Date: Mon, 10 Feb 2025 22:28:47 +0100 Subject: [PATCH] Filter member only videos --- YoutubeConfig.json | 2 +- YoutubeScript.js | 16 +++++++++++++--- YoutubeUnstableConfig.json | 2 +- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/YoutubeConfig.json b/YoutubeConfig.json index d40f918..f2a6f09 100644 --- a/YoutubeConfig.json +++ b/YoutubeConfig.json @@ -8,7 +8,7 @@ "repositoryUrl": "https://futo.org", "scriptUrl": "./YoutubeScript.js", - "version": 233, + "version": 234, "iconUrl": "./youtube.png", "id": "35ae969a-a7db-11ed-afa1-0242ac120002", diff --git a/YoutubeScript.js b/YoutubeScript.js index b9845a9..4d8a26e 100644 --- a/YoutubeScript.js +++ b/YoutubeScript.js @@ -4033,7 +4033,7 @@ function extractVideoPage_VideoDetails(parentUrl, initialData, initialPlayerData url: initialPlayerData?.streamingData?.dashManifestUrl }) : null; - const abrStreamingUrl = (initialPlayerData.streamingData.serverAbrStreamingUrl) ? + const abrStreamingUrl = (initialPlayerData?.streamingData?.serverAbrStreamingUrl) ? decryptUrlN(initialPlayerData.streamingData.serverAbrStreamingUrl, jsUrl, false) : undefined; useAbr = abrStreamingUrl && (!!useAbr || USE_ABR_VIDEOS); const video = { @@ -4979,12 +4979,17 @@ function extractRichItemRenderer_Video(itemRenderer, contextData) { return switchKeyVideo(content, contextData); } function extractVideoWithContextRenderer_Video(videoRenderer, contextData) { - const liveBadges = videoRenderer.thumbnailOverlays?.filter(x=> x.thumbnailOverlayTimeStatusRenderer?.style == "LIVE" || x.thumbnailOverlayTimeStatusRenderer?.accessibility?.accessibilityData?.label == "LIVE"); let isLive = liveBadges != null && liveBadges.length > 0; + const isMemberOnly = !!videoRenderer.badges?.find(x=>x?.metadataBadgeRenderer?.label == "Members only"); + if(isMemberOnly) { + log("MEMBER ONLY VIDEO IGNORED"); + return null; + } + isLive = isLive || ((videoRenderer.badges?.filter(x=>x.metadataBadgeRenderer?.style == "BADGE_STYLE_TYPE_LIVE_NOW")?.length ?? 0) > 0) let plannedDate = null; @@ -5040,7 +5045,6 @@ function extractVideoWithContextRenderer_Video(videoRenderer, contextData) { } } function extractVideoRenderer_Video(videoRenderer, contextData) { - const liveBadges = videoRenderer.badges?.filter(x=>x.metadataBadgeRenderer?.label == "LIVE"); const liveOverlays = videoRenderer.thumbnailOverlays?.filter(x=> x.thumbnailOverlayTimeStatusRenderer?.style == "LIVE" || @@ -5048,6 +5052,12 @@ function extractVideoRenderer_Video(videoRenderer, contextData) { let isLive = (liveBadges != null && liveBadges.length > 0) || (liveOverlays != null && liveOverlays.length > 0); + const isMemberOnly = !!videoRenderer.badges?.find(x=>x.metadataBadgeRenderer?.label == "Members only"); + if(isMemberOnly) { + log("MEMBER ONLY VIDEO IGNORED"); + return null; + } + let plannedDate = null; if(videoRenderer.upcomingEventData?.startTime) plannedDate = parseInt(videoRenderer.upcomingEventData.startTime); diff --git a/YoutubeUnstableConfig.json b/YoutubeUnstableConfig.json index 59e8c1d..bb7580b 100644 --- a/YoutubeUnstableConfig.json +++ b/YoutubeUnstableConfig.json @@ -8,7 +8,7 @@ "repositoryUrl": "https://futo.org", "scriptUrl": "./YoutubeScript.js", - "version": 233, + "version": 234, "iconUrl": "./youtube.png", "id": "35ae969a-a7db-11ed-afa1-0242ac120003", -- GitLab