diff --git a/src/invidious/helpers/serialized_yt_data.cr b/src/invidious/helpers/serialized_yt_data.cr index f8e8f187..69dc91d6 100644 --- a/src/invidious/helpers/serialized_yt_data.cr +++ b/src/invidious/helpers/serialized_yt_data.cr @@ -9,6 +9,7 @@ enum VideoBadges VR180 VR360 ClosedCaptions + MembersOnly end struct SearchVideo @@ -133,6 +134,7 @@ struct SearchVideo json.field "isVr360", self.badges.vr360? json.field "is3d", self.badges.three_d? json.field "hasCaptions", self.badges.closed_captions? + json.field "isMembersOnly", self.badges.members_only? end end diff --git a/src/invidious/yt_backend/extractors.cr b/src/invidious/yt_backend/extractors.cr index edd7bf1b..c0994ffb 100644 --- a/src/invidious/yt_backend/extractors.cr +++ b/src/invidious/yt_backend/extractors.cr @@ -135,6 +135,10 @@ private module Parsers when "Premium" # TODO: Potentially available as item_contents["topStandaloneBadge"]["metadataBadgeRenderer"] badges |= VideoBadges::Premium + when "Members only" + # TODO: Identify based on style attribute instead of label + # It should be more resistant to Youtube changes. + badges |= VideoBadges::MembersOnly else nil # Ignore end end