mirror of
				https://github.com/ytdl-org/youtube-dl
				synced 2025-11-04 03:33:46 +00:00 
			
		
		
		
	[youtube] Improve age-gated videos extraction (closes #27259)
This commit is contained in:
		
							parent
							
								
									cfeba5d17f
								
							
						
					
					
						commit
						59d63d8d4a
					
				@ -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
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user