mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 14:45:14 +00:00 
			
		
		
		
	[youku] Add cn_verification_proxy support and add a georestricted test case
This commit is contained in:
		| @@ -9,6 +9,7 @@ from ..utils import ExtractorError | ||||
| from ..compat import ( | ||||
|     compat_urllib_parse, | ||||
|     compat_ord, | ||||
|     compat_urllib_request, | ||||
| ) | ||||
|  | ||||
|  | ||||
| @@ -39,6 +40,14 @@ class YoukuIE(InfoExtractor): | ||||
|             'title': '武媚娘传奇 85', | ||||
|         }, | ||||
|         'playlist_count': 11, | ||||
|     }, { | ||||
|         'url': 'http://v.youku.com/v_show/id_XMTI1OTczNDM5Mg==.html', | ||||
|         'info_dict': { | ||||
|             'id': 'XMTI1OTczNDM5Mg', | ||||
|             'title': '花千骨 04', | ||||
|         }, | ||||
|         'playlist_count': 13, | ||||
|         'skip': 'Available in China only', | ||||
|     }] | ||||
|  | ||||
|     def construct_video_urls(self, data1, data2): | ||||
| @@ -165,14 +174,23 @@ class YoukuIE(InfoExtractor): | ||||
|     def _real_extract(self, url): | ||||
|         video_id = self._match_id(url) | ||||
|  | ||||
|         # request basic data | ||||
|         data1_url = 'http://v.youku.com/player/getPlayList/VideoIDS/%s' % video_id | ||||
|         data2_url = 'http://v.youku.com/player/getPlayList/VideoIDS/%s/Pf/4/ctype/12/ev/1' % video_id | ||||
|         def retrieve_data(req_url, note): | ||||
|             req = compat_urllib_request.Request(req_url) | ||||
|  | ||||
|         raw_data1 = self._download_json(data1_url, video_id) | ||||
|         raw_data2 = self._download_json(data2_url, video_id) | ||||
|         data1 = raw_data1['data'][0] | ||||
|         data2 = raw_data2['data'][0] | ||||
|             cn_verification_proxy = self._downloader.params.get('cn_verification_proxy') | ||||
|             if cn_verification_proxy: | ||||
|                 req.add_header('Ytdl-request-proxy', cn_verification_proxy) | ||||
|  | ||||
|             raw_data = self._download_json(req, video_id, note=note) | ||||
|             return raw_data['data'][0] | ||||
|  | ||||
|         # request basic data | ||||
|         data1 = retrieve_data( | ||||
|             'http://v.youku.com/player/getPlayList/VideoIDS/%s' % video_id, | ||||
|             'Downloading JSON metadata 1') | ||||
|         data2 = retrieve_data( | ||||
|             'http://v.youku.com/player/getPlayList/VideoIDS/%s/Pf/4/ctype/12/ev/1' % video_id, | ||||
|             'Downloading JSON metadata 2') | ||||
|  | ||||
|         error_code = data1.get('error_code') | ||||
|         if error_code: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Yen Chi Hsuan
					Yen Chi Hsuan