aboutsummaryrefslogtreecommitdiffstats
path: root/youtube_dl/extractor/limelight.py
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2017-01-16 21:54:47 +0700
committerSergey M․ <dstftw@gmail.com>2017-01-16 21:54:47 +0700
commit906420cae37ee3c2f48d23c3a4fa0543a66947d5 (patch)
treefc99153692e6b223ac20cee6efd2fced626e954b /youtube_dl/extractor/limelight.py
parent16e2c8f7710bffb462921dbc93adfa6274bd9334 (diff)
downloadyoutube-dl-906420cae37ee3c2f48d23c3a4fa0543a66947d5.zip
youtube-dl-906420cae37ee3c2f48d23c3a4fa0543a66947d5.tar.gz
youtube-dl-906420cae37ee3c2f48d23c3a4fa0543a66947d5.tar.bz2
[limelight] Improve and make more robust (closes #11737)
+ Add support for direct http for videos hosted on video.llnw.net * Check handmade http URLs
Diffstat (limited to 'youtube_dl/extractor/limelight.py')
-rw-r--r--youtube_dl/extractor/limelight.py28
1 files changed, 20 insertions, 8 deletions
diff --git a/youtube_dl/extractor/limelight.py b/youtube_dl/extractor/limelight.py
index 905a0e8..e635f3c 100644
--- a/youtube_dl/extractor/limelight.py
+++ b/youtube_dl/extractor/limelight.py
@@ -59,14 +59,26 @@ class LimelightBaseIE(InfoExtractor):
format_id = 'rtmp'
if stream.get('videoBitRate'):
format_id += '-%d' % int_or_none(stream['videoBitRate'])
- http_url = 'http://cpl.delvenetworks.com/' + rtmp.group('playpath')[4:]
- urls.append(http_url)
- http_fmt = fmt.copy()
- http_fmt.update({
- 'url': http_url,
- 'format_id': format_id.replace('rtmp', 'http'),
- })
- formats.append(http_fmt)
+ http_format_id = format_id.replace('rtmp', 'http')
+
+ CDN_HOSTS = (
+ ('delvenetworks.com', 'cpl.delvenetworks.com'),
+ ('video.llnw.net', 's2.content.video.llnw.net'),
+ )
+ for cdn_host, http_host in CDN_HOSTS:
+ if cdn_host not in rtmp.group('host').lower():
+ continue
+ http_url = 'http://%s/%s' % (http_host, rtmp.group('playpath')[4:])
+ urls.append(http_url)
+ if self._is_valid_url(http_url, video_id, http_format_id):
+ http_fmt = fmt.copy()
+ http_fmt.update({
+ 'url': http_url,
+ 'format_id': http_format_id,
+ })
+ formats.append(http_fmt)
+ break
+
fmt.update({
'url': rtmp.group('url'),
'play_path': rtmp.group('playpath'),