aboutsummaryrefslogtreecommitdiff
path: root/youtube_dl/extractor
diff options
context:
space:
mode:
authorRemita Amine <remitamine@gmail.com>2016-08-28 17:51:53 +0100
committerRemita Amine <remitamine@gmail.com>2016-08-28 17:51:53 +0100
commitb8079a40bc61326b17a672b073dce6cdfa791fb5 (patch)
treec8f0d0afc80b8b9901fdcbad5a39297bf76bd13e /youtube_dl/extractor
parent5bc8a73af69f4aac8b2df6f7c23ecfb4ee72e518 (diff)
downloadyoutube-dl-b8079a40bc61326b17a672b073dce6cdfa791fb5.tar.xz
[turner] fix secure m3u8 formats downloading
Diffstat (limited to 'youtube_dl/extractor')
-rw-r--r--youtube_dl/extractor/turner.py15
-rw-r--r--youtube_dl/extractor/uplynk.py4
2 files changed, 14 insertions, 5 deletions
diff --git a/youtube_dl/extractor/turner.py b/youtube_dl/extractor/turner.py
index 0d4271f11..108caa9d8 100644
--- a/youtube_dl/extractor/turner.py
+++ b/youtube_dl/extractor/turner.py
@@ -11,6 +11,7 @@ from ..utils import (
parse_duration,
xpath_attr,
update_url_query,
+ compat_urlparse,
)
@@ -87,8 +88,18 @@ class TurnerBaseIE(InfoExtractor):
if ext == 'smil':
formats.extend(self._extract_smil_formats(video_url, video_id, fatal=False))
elif ext == 'm3u8':
- formats.extend(self._extract_m3u8_formats(
- video_url, video_id, 'mp4', m3u8_id=format_id, fatal=False))
+ m3u8_formats = self._extract_m3u8_formats(
+ video_url, video_id, 'mp4', m3u8_id=format_id, fatal=False)
+ if m3u8_formats:
+ # Sometimes final URLs inside m3u8 are unsigned, let's fix this
+ # ourselves
+ qs = compat_urlparse.urlparse(video_url).query
+ if qs:
+ query = compat_urlparse.parse_qs(qs)
+ for m3u8_format in m3u8_formats:
+ m3u8_format['url'] = update_url_query(m3u8_format['url'], query)
+ m3u8_format['extra_param_to_segment_url'] = qs
+ formats.extend(m3u8_formats)
elif ext == 'f4m':
formats.extend(self._extract_f4m_formats(
update_url_query(video_url, {'hdcore': '3.7.0'}),
diff --git a/youtube_dl/extractor/uplynk.py b/youtube_dl/extractor/uplynk.py
index ae529f690..2cd22cf8a 100644
--- a/youtube_dl/extractor/uplynk.py
+++ b/youtube_dl/extractor/uplynk.py
@@ -33,9 +33,7 @@ class UplynkIE(InfoExtractor):
formats = self._extract_m3u8_formats('http://content.uplynk.com/%s.m3u8' % path, display_id, 'mp4')
if session_id:
for f in formats:
- f['extra_param_to_segment_url'] = {
- 'pbs': session_id,
- }
+ f['extra_param_to_segment_url'] = 'pbs=' + session_id
self._sort_formats(formats)
asset = self._download_json('http://content.uplynk.com/player/assetinfo/%s.json' % path, display_id)
if asset.get('error') == 1: