projects
/
youtube-dl
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
1c35b3d
)
[common] Relax JWPlayer regex and remove duplicate urls(#12768)
author
Remita Amine
<remitamine@gmail.com>
Mon, 17 Apr 2017 07:48:24 +0000
(08:48 +0100)
committer
Remita Amine
<remitamine@gmail.com>
Mon, 17 Apr 2017 07:48:24 +0000
(08:48 +0100)
youtube_dl/extractor/common.py
patch
|
blob
|
history
diff --git
a/youtube_dl/extractor/common.py
b/youtube_dl/extractor/common.py
index dcc9d628afdfd2c926c930b10be92ca313cd14a3..12e010a0dcda30e6ccc42b2b61202e7e355451d8 100644
(file)
--- a/
youtube_dl/extractor/common.py
+++ b/
youtube_dl/extractor/common.py
@@
-2182,7
+2182,7
@@
class InfoExtractor(object):
def _find_jwplayer_data(self, webpage, video_id=None, transform_source=js_to_json):
mobj = re.search(
def _find_jwplayer_data(self, webpage, video_id=None, transform_source=js_to_json):
mobj = re.search(
- r'
jwplayer\((?P<quote>[\'"])[^\'" ]+(?P=quote)\)
\.setup\s*\((?P<options>[^)]+)\)',
+ r'
(?s)jwplayer\((?P<quote>[\'"])[^\'" ]+(?P=quote)\).*?
\.setup\s*\((?P<options>[^)]+)\)',
webpage)
if mobj:
try:
webpage)
if mobj:
try:
@@
-2258,11
+2258,17
@@
class InfoExtractor(object):
def _parse_jwplayer_formats(self, jwplayer_sources_data, video_id=None,
m3u8_id=None, mpd_id=None, rtmp_params=None, base_url=None):
def _parse_jwplayer_formats(self, jwplayer_sources_data, video_id=None,
m3u8_id=None, mpd_id=None, rtmp_params=None, base_url=None):
+ urls = []
formats = []
for source in jwplayer_sources_data:
formats = []
for source in jwplayer_sources_data:
- source_url = self._proto_relative_url(source['file'])
+ source_url = self._proto_relative_url(source.get('file'))
+ if not source_url:
+ continue
if base_url:
source_url = compat_urlparse.urljoin(base_url, source_url)
if base_url:
source_url = compat_urlparse.urljoin(base_url, source_url)
+ if source_url in urls:
+ continue
+ urls.append(source_url)
source_type = source.get('type') or ''
ext = mimetype2ext(source_type) or determine_ext(source_url)
if source_type == 'hls' or ext == 'm3u8':
source_type = source.get('type') or ''
ext = mimetype2ext(source_type) or determine_ext(source_url)
if source_type == 'hls' or ext == 'm3u8':