mirror of
				https://github.com/ytdl-org/youtube-dl.git
				synced 2025-10-29 09:26:20 -07:00 
			
		
		
		
	| @@ -8,7 +8,10 @@ from ..compat import ( | |||||||
|     compat_str, |     compat_str, | ||||||
|     compat_urllib_request |     compat_urllib_request | ||||||
| ) | ) | ||||||
| from ..utils import ExtractorError | from ..utils import ( | ||||||
|  |     sanitize_url_path_consecutive_slashes, | ||||||
|  |     ExtractorError, | ||||||
|  | ) | ||||||
|  |  | ||||||
|  |  | ||||||
| class SohuIE(InfoExtractor): | class SohuIE(InfoExtractor): | ||||||
| @@ -26,7 +29,7 @@ class SohuIE(InfoExtractor): | |||||||
|         'skip': 'On available in China', |         'skip': 'On available in China', | ||||||
|     }, { |     }, { | ||||||
|         'url': 'http://tv.sohu.com/20150305/n409385080.shtml', |         'url': 'http://tv.sohu.com/20150305/n409385080.shtml', | ||||||
|         'md5': 'ac9a5d322b4bf9ae184d53e4711e4f1a', |         'md5': '699060e75cf58858dd47fb9c03c42cfb', | ||||||
|         'info_dict': { |         'info_dict': { | ||||||
|             'id': '409385080', |             'id': '409385080', | ||||||
|             'ext': 'mp4', |             'ext': 'mp4', | ||||||
| @@ -34,7 +37,7 @@ class SohuIE(InfoExtractor): | |||||||
|         } |         } | ||||||
|     }, { |     }, { | ||||||
|         'url': 'http://my.tv.sohu.com/us/232799889/78693464.shtml', |         'url': 'http://my.tv.sohu.com/us/232799889/78693464.shtml', | ||||||
|         'md5': '49308ff6dafde5ece51137d04aec311e', |         'md5': '9bf34be48f2f4dadcb226c74127e203c', | ||||||
|         'info_dict': { |         'info_dict': { | ||||||
|             'id': '78693464', |             'id': '78693464', | ||||||
|             'ext': 'mp4', |             'ext': 'mp4', | ||||||
| @@ -48,7 +51,7 @@ class SohuIE(InfoExtractor): | |||||||
|             'title': '【神探苍实战秘籍】第13期 战争之影 赫卡里姆', |             'title': '【神探苍实战秘籍】第13期 战争之影 赫卡里姆', | ||||||
|         }, |         }, | ||||||
|         'playlist': [{ |         'playlist': [{ | ||||||
|             'md5': '492923eac023ba2f13ff69617c32754a', |             'md5': 'bdbfb8f39924725e6589c146bc1883ad', | ||||||
|             'info_dict': { |             'info_dict': { | ||||||
|                 'id': '78910339_part1', |                 'id': '78910339_part1', | ||||||
|                 'ext': 'mp4', |                 'ext': 'mp4', | ||||||
| @@ -56,7 +59,7 @@ class SohuIE(InfoExtractor): | |||||||
|                 'title': '【神探苍实战秘籍】第13期 战争之影 赫卡里姆', |                 'title': '【神探苍实战秘籍】第13期 战争之影 赫卡里姆', | ||||||
|             } |             } | ||||||
|         }, { |         }, { | ||||||
|             'md5': 'de604848c0e8e9c4a4dde7e1347c0637', |             'md5': '3e1f46aaeb95354fd10e7fca9fc1804e', | ||||||
|             'info_dict': { |             'info_dict': { | ||||||
|                 'id': '78910339_part2', |                 'id': '78910339_part2', | ||||||
|                 'ext': 'mp4', |                 'ext': 'mp4', | ||||||
| @@ -64,7 +67,7 @@ class SohuIE(InfoExtractor): | |||||||
|                 'title': '【神探苍实战秘籍】第13期 战争之影 赫卡里姆', |                 'title': '【神探苍实战秘籍】第13期 战争之影 赫卡里姆', | ||||||
|             } |             } | ||||||
|         }, { |         }, { | ||||||
|             'md5': '93584716ee0657c0b205b8aa3d27aa13', |             'md5': '8407e634175fdac706766481b9443450', | ||||||
|             'info_dict': { |             'info_dict': { | ||||||
|                 'id': '78910339_part3', |                 'id': '78910339_part3', | ||||||
|                 'ext': 'mp4', |                 'ext': 'mp4', | ||||||
| @@ -139,21 +142,24 @@ class SohuIE(InfoExtractor): | |||||||
|         for i in range(part_count): |         for i in range(part_count): | ||||||
|             formats = [] |             formats = [] | ||||||
|             for format_id, format_data in formats_json.items(): |             for format_id, format_data in formats_json.items(): | ||||||
|                 data = format_data['data'] |                 allot = format_data['allot'] | ||||||
|  |                 prot = format_data['prot'] | ||||||
|  |  | ||||||
|                 # URLs starts with http://newflv.sohu.ccgslb.net/ is not usable |                 data = format_data['data'] | ||||||
|                 # so retry until got a working URL |                 clips_url = data['clipsURL'] | ||||||
|                 video_url = 'newflv.sohu.ccgslb.net' |                 su = data['su'] | ||||||
|                 retries = 0 |  | ||||||
|                 while 'newflv.sohu.ccgslb.net' in video_url and retries < 5: |                 part_str = self._download_webpage( | ||||||
|                     download_note = 'Download information from CDN gateway for format ' + format_id |                     'http://%s/?prot=%s&file=%s&new=%s' % | ||||||
|                     if retries > 0: |                     (allot, prot, clips_url[i], su[i]), | ||||||
|                         download_note += ' (retry #%d)' % retries |                     video_id, | ||||||
|                     retries += 1 |                     'Downloading %s video URL part %d of %d' | ||||||
|                     cdn_info = self._download_json( |                     % (format_id, i + 1, part_count)) | ||||||
|                         'http://data.vod.itc.cn/cdnList?new=' + data['su'][i], |  | ||||||
|                         video_id, download_note) |                 part_info = part_str.split('|') | ||||||
|                     video_url = cdn_info['url'] |  | ||||||
|  |                 video_url = sanitize_url_path_consecutive_slashes( | ||||||
|  |                     '%s%s?key=%s' % (part_info[0], su[i], part_info[3])) | ||||||
|  |  | ||||||
|                 formats.append({ |                 formats.append({ | ||||||
|                     'url': video_url, |                     'url': video_url, | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user