X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=youtube_dl%2Fextractor%2Fyouku.py;h=73ebe57598a281a4debcb6ea671ebf081b63c610;hb=9dc5ab041f62d9e968f9c08f26fc98b92d819a4e;hp=147608ebebbbe8b71dda64e2daf974362868c50c;hpb=411c590a1f997f9efd71be8f434821acbf33a35f;p=youtube-dl diff --git a/youtube_dl/extractor/youku.py b/youtube_dl/extractor/youku.py index 147608ebe..73ebe5759 100644 --- a/youtube_dl/extractor/youku.py +++ b/youtube_dl/extractor/youku.py @@ -10,13 +10,14 @@ import time from .common import InfoExtractor from ..compat import ( - compat_urllib_parse_urlencode, compat_ord, + compat_str, + compat_urllib_parse_urlencode, ) from ..utils import ( ExtractorError, get_element_by_attribute, - sanitized_Request, + try_get, ) @@ -106,7 +107,9 @@ class YoukuIE(InfoExtractor): if stream.get('channel_type') == 'tail': continue format = stream.get('stream_type') - fileid = stream['stream_fileid'] + fileid = try_get( + stream, lambda x: x['segs'][0]['fileid'], + compat_str) or stream['stream_fileid'] fileid_dict[format] = fileid def get_fileid(format, n): @@ -218,14 +221,10 @@ class YoukuIE(InfoExtractor): headers = { 'Referer': req_url, } + headers.update(self.geo_verification_headers()) self._set_cookie('youku.com', 'xreferrer', 'http://www.youku.com') - req = sanitized_Request(req_url, headers=headers) - - 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) + raw_data = self._download_json(req_url, video_id, note=note, headers=headers) return raw_data['data']