logo

youtube-dl

[mirror] Download/Watch videos from video hosters
commit: 59d63d8d4aa82c7b1472d5b6a0f9f4e9c2893212
parent cfeba5d17f5f621b129571213e7034c44c719e76
Author: Sergey M․ <dstftw@gmail.com>
Date:   Tue,  1 Dec 2020 00:49:03 +0700

[youtube] Improve age-gated videos extraction (closes #27259)

Diffstat:

Myoutube_dl/extractor/youtube.py12+++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/youtube_dl/extractor/youtube.py b/youtube_dl/extractor/youtube.py @@ -602,7 +602,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): 'description': 'SUBSCRIBE: http://www.youtube.com/saturninefilms\n\nEven Obama has taken a stand against freedom on this issue: http://www.huffingtonpost.com/2010/09/09/obama-gma-interview-quran_n_710282.html', } }, - # Normal age-gate video (No vevo, embed allowed) + # Normal age-gate video (No vevo, embed allowed), available via embed page { 'url': 'https://youtube.com/watch?v=HtVdAasjOgU', 'info_dict': { @@ -618,6 +618,12 @@ class YoutubeIE(YoutubeBaseInfoExtractor): 'age_limit': 18, }, }, + { + # Age-gated video only available with authentication (unavailable + # via embed page workaround) + 'url': 'XgnwCQzjau8', + 'only_matching': True, + }, # video_info is None (https://github.com/ytdl-org/youtube-dl/issues/4421) # YouTube Red ad is not captured for creator { @@ -1637,8 +1643,8 @@ class YoutubeIE(YoutubeBaseInfoExtractor): # Get video info video_info = {} embed_webpage = None - if (self._og_search_property('restrictions:age', video_webpage, default=None) == '18+' - or re.search(r'player-age-gate-content">', video_webpage) is not None): + + if re.search(r'["\']status["\']\s*:\s*["\']LOGIN_REQUIRED', video_webpage) is not None: age_gate = True # We simulate the access to the video from www.youtube.com/v/{video_id} # this can be viewed without login into Youtube