mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 14:40:45 +00:00 
			
		
		
		
	Merge pull request #4598 from 0xced/encrypted-age-gate
[youtube] Fix videos with age gate and encrypted signatures
This commit is contained in:
		| @@ -766,11 +766,13 @@ class YoutubeIE(YoutubeBaseInfoExtractor, SubtitlesInfoExtractor): | ||||
|             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 | ||||
|             url = proto + '://www.youtube.com/embed/%s' % video_id | ||||
|             embed_webpage = self._download_webpage(url, video_id, 'Downloading embed webpage') | ||||
|             data = compat_urllib_parse.urlencode({ | ||||
|                 'video_id': video_id, | ||||
|                 'eurl': 'https://youtube.googleapis.com/v/' + video_id, | ||||
|                 'sts': self._search_regex( | ||||
|                     r'"sts"\s*:\s*(\d+)', video_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_webpage = self._download_webpage( | ||||
| @@ -968,11 +970,10 @@ class YoutubeIE(YoutubeBaseInfoExtractor, SubtitlesInfoExtractor): | ||||
|                 elif 's' in url_data: | ||||
|                     encrypted_sig = url_data['s'][0] | ||||
|  | ||||
|                     if not age_gate: | ||||
|                         jsplayer_url_json = self._search_regex( | ||||
|                             r'"assets":.+?"js":\s*("[^"]+")', | ||||
|                             video_webpage, 'JS player URL') | ||||
|                         player_url = json.loads(jsplayer_url_json) | ||||
|                     jsplayer_url_json = self._search_regex( | ||||
|                         r'"assets":.+?"js":\s*("[^"]+")', | ||||
|                         embed_webpage if age_gate else video_webpage, 'JS player URL') | ||||
|                     player_url = json.loads(jsplayer_url_json) | ||||
|                     if player_url is None: | ||||
|                         player_url_json = self._search_regex( | ||||
|                             r'ytplayer\.config.*?"url"\s*:\s*("[^"]+")', | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Sergey M.
					Sergey M.