Browse Source

[iqiyi] Improve some variable names and add download notes

totalwebcasting
Yen Chi Hsuan 10 years ago
parent
commit
ffba4edb06
1 changed files with 18 additions and 14 deletions
  1. +18
    -14
      youtube_dl/extractor/iqiyi.py

+ 18
- 14
youtube_dl/extractor/iqiyi.py View File

@ -48,35 +48,37 @@ class IqiyiIE(InfoExtractor):
s += chr(a) s += chr(a)
return s[::-1] return s[::-1]
def get_path_key(x):
def get_path_key(x, format_id, segment_index):
mg = ')(*&^flash@#$%a' mg = ')(*&^flash@#$%a'
tm = self._download_json( tm = self._download_json(
'http://data.video.qiyi.com/t?tn=' + str(random.random()), video_id)['t']
'http://data.video.qiyi.com/t?tn=' + str(random.random()), video_id,
note='Download path key of segment %d for format %s' % (segment_index + 1, format_id)
)['t']
t = str(int(math.floor(int(tm) / (600.0)))) t = str(int(math.floor(int(tm) / (600.0))))
return hashlib.md5((t + mg + x).encode('utf8')).hexdigest() return hashlib.md5((t + mg + x).encode('utf8')).hexdigest()
video_urls_dict = {} video_urls_dict = {}
for i in data['vp']['tkl'][0]['vs']:
if 0 < int(i['bid']) <= 10:
format_id = self.get_format(i['bid'])
for format_item in data['vp']['tkl'][0]['vs']:
if 0 < int(format_item['bid']) <= 10:
format_id = self.get_format(format_item['bid'])
else: else:
continue continue
video_urls = [] video_urls = []
video_urls_info = i['fs']
if not i['fs'][0]['l'].startswith('/'):
t = get_encode_code(i['fs'][0]['l'])
video_urls_info = format_item['fs']
if not format_item['fs'][0]['l'].startswith('/'):
t = get_encode_code(format_item['fs'][0]['l'])
if t.endswith('mp4'): if t.endswith('mp4'):
video_urls_info = i['flvs']
video_urls_info = format_item['flvs']
for ii in video_urls_info:
vl = ii['l']
for segment_index, segment in enumerate(video_urls_info):
vl = segment['l']
if not vl.startswith('/'): if not vl.startswith('/'):
vl = get_encode_code(vl) vl = get_encode_code(vl)
key = get_path_key( key = get_path_key(
vl.split('/')[-1].split('.')[0])
filesize = ii['b']
vl.split('/')[-1].split('.')[0], format_id, segment_index)
filesize = segment['b']
base_url = data['vp']['du'].split('/') base_url = data['vp']['du'].split('/')
base_url.insert(-1, key) base_url.insert(-1, key)
base_url = '/'.join(base_url) base_url = '/'.join(base_url)
@ -91,7 +93,9 @@ class IqiyiIE(InfoExtractor):
} }
api_video_url = base_url + vl + '?' + \ api_video_url = base_url + vl + '?' + \
compat_urllib_parse.urlencode(param) compat_urllib_parse.urlencode(param)
js = self._download_json(api_video_url, video_id)
js = self._download_json(
api_video_url, video_id,
note='Download video info of segment %d for format %s' % (segment_index + 1, format_id))
video_url = js['l'] video_url = js['l']
video_urls.append( video_urls.append(
(video_url, filesize)) (video_url, filesize))


Loading…
Cancel
Save