projects
/
youtube-dl
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
fb37eb2
)
[dplay] Use Safari user-agent for hls (closes #11418)
author
Sergey M․
<dstftw@gmail.com>
Sun, 11 Dec 2016 17:58:08 +0000
(
00:58
+0700)
committer
Sergey M․
<dstftw@gmail.com>
Sun, 11 Dec 2016 17:58:08 +0000
(
00:58
+0700)
youtube_dl/extractor/dplay.py
patch
|
blob
|
history
diff --git
a/youtube_dl/extractor/dplay.py
b/youtube_dl/extractor/dplay.py
index 5790553f38ca29107bad44317fedb271dce0883a..32028bc3b79b61d249ad4bccaebadf745f9f942a 100644
(file)
--- a/
youtube_dl/extractor/dplay.py
+++ b/
youtube_dl/extractor/dplay.py
@@
-8,6
+8,7
@@
import time
from .common import InfoExtractor
from ..compat import compat_urlparse
from ..utils import (
from .common import InfoExtractor
from ..compat import compat_urlparse
from ..utils import (
+ USER_AGENTS,
int_or_none,
update_url_query,
)
int_or_none,
update_url_query,
)
@@
-102,10
+103,16
@@
class DPlayIE(InfoExtractor):
manifest_url, video_id, ext='mp4',
entry_protocol='m3u8_native', m3u8_id=protocol, fatal=False)
# Sometimes final URLs inside m3u8 are unsigned, let's fix this
manifest_url, video_id, ext='mp4',
entry_protocol='m3u8_native', m3u8_id=protocol, fatal=False)
# Sometimes final URLs inside m3u8 are unsigned, let's fix this
- # ourselves
+ # ourselves. Also fragments' URLs are only served signed for
+ # Safari user agent.
query = compat_urlparse.parse_qs(compat_urlparse.urlparse(manifest_url).query)
for m3u8_format in m3u8_formats:
query = compat_urlparse.parse_qs(compat_urlparse.urlparse(manifest_url).query)
for m3u8_format in m3u8_formats:
- m3u8_format['url'] = update_url_query(m3u8_format['url'], query)
+ m3u8_format.update({
+ 'url': update_url_query(m3u8_format['url'], query),
+ 'http_headers': {
+ 'User-Agent': USER_AGENTS['Safari'],
+ },
+ })
formats.extend(m3u8_formats)
elif protocol == 'hds':
formats.extend(self._extract_f4m_formats(
formats.extend(m3u8_formats)
elif protocol == 'hds':
formats.extend(self._extract_f4m_formats(