diff options
author | PSJay <psjay.peng@gmail.com> | 2015-09-01 00:19:58 +0800 |
---|---|---|
committer | Sergey M․ <dstftw@gmail.com> | 2015-09-01 22:24:57 +0600 |
commit | 33eae08f0422fb824cea2a4dffc98a347e916169 (patch) | |
tree | fdd59d391263ad510217db96c9172564dd13c861 | |
parent | aa3f98677d0ca7f8feae63cf2a5c62dbdda6b586 (diff) |
Support video-password on Youku.
-rw-r--r-- | youtube_dl/extractor/youku.py | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/youtube_dl/extractor/youku.py b/youtube_dl/extractor/youku.py index 78caeb8b3..220f84221 100644 --- a/youtube_dl/extractor/youku.py +++ b/youtube_dl/extractor/youku.py @@ -49,6 +49,17 @@ class YoukuIE(InfoExtractor): }, 'playlist_count': 13, 'skip': 'Available in China only', + }, { + 'url': 'http://v.youku.com/v_show/id_XNjA1NzA2Njgw.html', + 'note': 'Video protected with password', + 'info_dict': { + 'id': 'XNjA1NzA2Njgw', + 'ext': 'flv', + 'title': u'邢義田复旦讲座之想象中的胡人—从“左衽孔子”说起', + }, + 'params': { + 'videopassword': '100600', + }, }] def construct_video_urls(self, data1, data2): @@ -185,10 +196,17 @@ class YoukuIE(InfoExtractor): raw_data = self._download_json(req, video_id, note=note) return raw_data['data'][0] + video_password = self._downloader.params.get('videopassword', None) + # request basic data - data1 = retrieve_data( - 'http://v.youku.com/player/getPlayList/VideoIDS/%s' % video_id, - 'Downloading JSON metadata 1') + if video_password: + data1 = retrieve_data( + 'http://v.youku.com/player/getPlayList/VideoIDS/%s?password=%s' % (video_id, video_password), + 'Downloading JSON metadata 1') + else: + 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') |