[YoutubeBridge] Add option to skip members-only videos - #5019
Open
polybjorn wants to merge 1 commit into
Open
Conversation
Adds an opt-in checkbox parameter `skip_members_only`, default off. When enabled, items in the lockupViewModel JSON shape that carry a `BADGE_MEMBERS_ONLY` badge are dropped, since they require a paid channel membership to watch. With the option off the feed is unchanged. Only affects the JSON path (when duration_min/duration_max is set); the Atom path relies on YouTube's server-side filtering and ignores it.
Pull request artifacts
last change: Monday 2026-06-29 18:03:58 |
polybjorn
marked this pull request as ready for review
June 29, 2026 18:08
Contributor
Author
|
Re-checked today on PHP 8.5. Channel context, flag off: 28 items. Flag on: 20. The 8 dropped ids match the Also merges cleanly on top of #5026, which touches different functions in the same file. That PR routes playlists through |
Contributor
|
@dvikan please consider merging in this PR |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Members-only videos appear in a channel's JSON listing but can't be played without a paid membership, so they're noise in a feed reader. This adds an opt-in
skip_members_onlycheckbox, default off, that drops them.The filter can't live in FilterBridge: membership status isn't in the title or description, only in a
BADGE_MEMBERS_ONLYbadge in YouTube's raw JSON. Members-only items use the lockupViewModel layout (parsed since #4982), sowrapLockupViewModelreturns null for any item carrying that badge.Only the lockupViewModel shape carries the badge, so this applies to channel/user/custom listings on the JSON path (used when
duration_min/duration_maxis set). The Atom path already filters members-only server-side and ignores the parameter.Test plan
Ran on 2026-06-29 against LMG (channel id
UCXuqSBlHAE6Xw-yeJA0Tunw) on the JSON path:&skip_members_only=on: 23 items, the 7 members-only videos dropped, nothing else changed.The 7 dropped ids match the
BADGE_MEMBERS_ONLYmarkers in that channel'sytInitialDataexactly.php -lpasses.The "By playlist Id" failure in the artifact table is pre-existing and fails identically on current; YouTube changed the playlist JSON shape. #5026 addresses it.