[youtube] Fix extraction (closes #20758, closes #20759, closes #20761, closes #20762, closes #20764, closes #20766, closes #20767, closes #20769, closes #20771, closes #20768, closes #20770)
This commit is contained in:
		
							parent
							
								
									50d660479d
								
							
						
					
					
						commit
						56667d622c
					
				
					 1 changed files with 6 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -1652,7 +1652,8 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
 | 
			
		|||
                        view_count = extract_view_count(get_video_info)
 | 
			
		||||
                    if not video_info:
 | 
			
		||||
                        video_info = get_video_info
 | 
			
		||||
                    if 'token' in get_video_info:
 | 
			
		||||
                    get_token = get_video_info.get('token') or get_video_info.get('account_playback_token')
 | 
			
		||||
                    if get_token:
 | 
			
		||||
                        # Different get_video_info requests may report different results, e.g.
 | 
			
		||||
                        # some may report video unavailability, but some may serve it without
 | 
			
		||||
                        # any complaint (see https://github.com/ytdl-org/youtube-dl/issues/7362,
 | 
			
		||||
| 
						 | 
				
			
			@ -1662,7 +1663,8 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
 | 
			
		|||
                        # due to YouTube measures against IP ranges of hosting providers.
 | 
			
		||||
                        # Working around by preferring the first succeeded video_info containing
 | 
			
		||||
                        # the token if no such video_info yet was found.
 | 
			
		||||
                        if 'token' not in video_info:
 | 
			
		||||
                        token = video_info.get('token') or video_info.get('account_playback_token')
 | 
			
		||||
                        if not token:
 | 
			
		||||
                            video_info = get_video_info
 | 
			
		||||
                        break
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1678,7 +1680,8 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
 | 
			
		|||
            raise ExtractorError(
 | 
			
		||||
                'YouTube said: %s' % unavailable_message, expected=True, video_id=video_id)
 | 
			
		||||
 | 
			
		||||
        if 'token' not in video_info:
 | 
			
		||||
        token = video_info.get('token') or video_info.get('account_playback_token')
 | 
			
		||||
        if not token:
 | 
			
		||||
            if 'reason' in video_info:
 | 
			
		||||
                if 'The uploader has not made this video available in your country.' in video_info['reason']:
 | 
			
		||||
                    regions_allowed = self._html_search_meta(
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue