[youtube] Improve age-gated videos extraction in 429 error conditions (refs #24283)
This commit is contained in:
		
							parent
							
								
									f93abcf1da
								
							
						
					
					
						commit
						d332ec725d
					
				
					 1 changed files with 14 additions and 9 deletions
				
			
		| 
						 | 
					@ -1726,6 +1726,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
 | 
				
			||||||
        embed_webpage = None
 | 
					        embed_webpage = None
 | 
				
			||||||
        if re.search(r'player-age-gate-content">', video_webpage) is not None:
 | 
					        if re.search(r'player-age-gate-content">', video_webpage) is not None:
 | 
				
			||||||
            age_gate = True
 | 
					            age_gate = True
 | 
				
			||||||
 | 
					            video_info = None
 | 
				
			||||||
            # We simulate the access to the video from www.youtube.com/v/{video_id}
 | 
					            # We simulate the access to the video from www.youtube.com/v/{video_id}
 | 
				
			||||||
            # this can be viewed without login into Youtube
 | 
					            # this can be viewed without login into Youtube
 | 
				
			||||||
            url = proto + '://www.youtube.com/embed/%s' % video_id
 | 
					            url = proto + '://www.youtube.com/embed/%s' % video_id
 | 
				
			||||||
| 
						 | 
					@ -1737,15 +1738,19 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
 | 
				
			||||||
                    r'"sts"\s*:\s*(\d+)', embed_webpage, 'sts', default=''),
 | 
					                    r'"sts"\s*:\s*(\d+)', embed_webpage, 'sts', default=''),
 | 
				
			||||||
            })
 | 
					            })
 | 
				
			||||||
            video_info_url = proto + '://www.youtube.com/get_video_info?' + data
 | 
					            video_info_url = proto + '://www.youtube.com/get_video_info?' + data
 | 
				
			||||||
            video_info_webpage = self._download_webpage(
 | 
					            try:
 | 
				
			||||||
                video_info_url, video_id,
 | 
					                video_info_webpage = self._download_webpage(
 | 
				
			||||||
                note='Refetching age-gated info webpage',
 | 
					                    video_info_url, video_id,
 | 
				
			||||||
                errnote='unable to download video info webpage')
 | 
					                    note='Refetching age-gated info webpage',
 | 
				
			||||||
            video_info = compat_parse_qs(video_info_webpage)
 | 
					                    errnote='unable to download video info webpage')
 | 
				
			||||||
            pl_response = video_info.get('player_response', [None])[0]
 | 
					            except ExtractorError:
 | 
				
			||||||
            player_response = extract_player_response(pl_response, video_id)
 | 
					                video_info_webpage = None
 | 
				
			||||||
            add_dash_mpd(video_info)
 | 
					            if video_info_webpage:
 | 
				
			||||||
            view_count = extract_view_count(video_info)
 | 
					                video_info = compat_parse_qs(video_info_webpage)
 | 
				
			||||||
 | 
					                pl_response = video_info.get('player_response', [None])[0]
 | 
				
			||||||
 | 
					                player_response = extract_player_response(pl_response, video_id)
 | 
				
			||||||
 | 
					                add_dash_mpd(video_info)
 | 
				
			||||||
 | 
					                view_count = extract_view_count(video_info)
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            age_gate = False
 | 
					            age_gate = False
 | 
				
			||||||
            video_info = None
 | 
					            video_info = None
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue