From 26c4bce01661e9abd89aaf139177ebc9ad2560a2 Mon Sep 17 00:00:00 2001 From: girst Date: Wed, 30 Mar 2022 15:17:26 +0200 Subject: [PATCH] fix "agegate bypass failed" error message TVHTML5* playabilityStatus has only {status, reason} --- app/common/common.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/common/common.py b/app/common/common.py index 12aaaac..21e5f6b 100644 --- a/app/common/common.py +++ b/app/common/common.py @@ -225,6 +225,7 @@ def get_video_info(video_id, *, metaOnly=False, _agegate_bypass=False): key = "AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8" # ANDROID returns streams that are not throttled or cipher-scambled, but less metadata than WEB. # TVHTML5* returns throttled and possibly ciphered streams, but bypasses age-gate. atm, we don't decipher them. + # TODO: unscramble TVHTML5* streams (especially &n= throttling) client = { (False, False): { 'clientName': 'ANDROID', 'clientVersion': '16.20' }, (False, True): { 'clientName': 'TVHTML5_SIMPLY_EMBEDDED_PLAYER', 'clientVersion': '2.0' }, @@ -258,10 +259,10 @@ def get_video_info(video_id, *, metaOnly=False, _agegate_bypass=False): and not _agegate_bypass ): _, _, metadata_embed, error_embed, errormsg_embed = get_video_info(video_id, _agegate_bypass=True) - if not error_embed or error_embed in ('livestream','geolocked'): - metadata = metadata_embed - elif is_agegated(metadata_embed): # agegate bypass failed? + if error_embed == "player": # agegate bypass failed? return None, None, metadata, 'agegated', player_error + elif not error_embed or error_embed in ('livestream','geolocked'): + metadata = metadata_embed else: return None, None, metadata, error_embed, errormsg_embed else: -- 2.39.3