aboutsummaryrefslogtreecommitdiff
path: root/youtube_dl/extractor
diff options
context:
space:
mode:
authorPhilipp Hagemeister <phihag@phihag.de>2015-03-03 13:57:29 +0100
committerPhilipp Hagemeister <phihag@phihag.de>2015-03-03 13:57:29 +0100
commit938c3f65b6c1c1f5b8f7eb731a3eef00a06b6128 (patch)
treef57ce8894e85902d654ef7c009572f26fb60f3cb /youtube_dl/extractor
parent499bfcbfd09e85f053d7e8943a8d47fed9349b0e (diff)
parent2461f79d2ad9eee44644f6187e366125a29aa70f (diff)
Merge branch 'cn-verification-proxy'
Diffstat (limited to 'youtube_dl/extractor')
-rw-r--r--youtube_dl/extractor/letv.py34
1 files changed, 25 insertions, 9 deletions
diff --git a/youtube_dl/extractor/letv.py b/youtube_dl/extractor/letv.py
index 583ce35b9..85eee141b 100644
--- a/youtube_dl/extractor/letv.py
+++ b/youtube_dl/extractor/letv.py
@@ -7,8 +7,9 @@ import time
from .common import InfoExtractor
from ..compat import (
- compat_urlparse,
compat_urllib_parse,
+ compat_urllib_request,
+ compat_urlparse,
)
from ..utils import (
determine_ext,
@@ -39,12 +40,20 @@ class LetvIE(InfoExtractor):
'title': '美人天下01',
'description': 'md5:f88573d9d7225ada1359eaf0dbf8bcda',
},
- 'expected_warnings': [
- 'publish time'
- ]
+ }, {
+ 'note': 'This video is available only in Mainland China, thus a proxy is needed',
+ 'url': 'http://www.letv.com/ptv/vplay/1118082.html',
+ 'md5': 'f80936fbe20fb2f58648e81386ff7927',
+ 'info_dict': {
+ 'id': '1118082',
+ 'ext': 'mp4',
+ 'title': '与龙共舞 完整版',
+ 'description': 'md5:7506a5eeb1722bb9d4068f85024e3986',
+ },
+ 'params': {
+ 'cn_verification_proxy': 'http://proxy.uku.im:8888'
+ },
}]
- # http://www.letv.com/ptv/vplay/1118082.html
- # This video is available only in Mainland China
@staticmethod
def urshift(val, n):
@@ -76,8 +85,14 @@ class LetvIE(InfoExtractor):
'tkey': self.calc_time_key(int(time.time())),
'domain': 'www.letv.com'
}
+ play_json_req = compat_urllib_request.Request(
+ 'http://api.letv.com/mms/out/video/playJson?' + compat_urllib_parse.urlencode(params)
+ )
+ play_json_req.add_header(
+ 'Ytdl-request-proxy',
+ self._downloader.params.get('cn_verification_proxy'))
play_json = self._download_json(
- 'http://api.letv.com/mms/out/video/playJson?' + compat_urllib_parse.urlencode(params),
+ play_json_req,
media_id, 'playJson data')
# Check for errors
@@ -114,7 +129,8 @@ class LetvIE(InfoExtractor):
url_info_dict = {
'url': media_url,
- 'ext': determine_ext(dispatch[format_id][1])
+ 'ext': determine_ext(dispatch[format_id][1]),
+ 'format_id': format_id,
}
if format_id[-1:] == 'p':
@@ -123,7 +139,7 @@ class LetvIE(InfoExtractor):
urls.append(url_info_dict)
publish_time = parse_iso8601(self._html_search_regex(
- r'发布时间&nbsp;([^<>]+) ', page, 'publish time', fatal=False),
+ r'发布时间&nbsp;([^<>]+) ', page, 'publish time', default=None),
delimiter=' ', timezone=datetime.timedelta(hours=8))
description = self._html_search_meta('description', page, fatal=False)