projects
/
youtube-dl
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
5efaf43
)
[downloader/hls] Ignore anvato ad fragments (closes #14496)
author
Sergey M․
<dstftw@gmail.com>
Sat, 14 Oct 2017 23:13:48 +0000
(06:13 +0700)
committer
Sergey M․
<dstftw@gmail.com>
Sat, 14 Oct 2017 23:13:48 +0000
(06:13 +0700)
youtube_dl/downloader/hls.py
patch
|
blob
|
history
diff --git
a/youtube_dl/downloader/hls.py
b/youtube_dl/downloader/hls.py
index 46308cf072c25086d896bb759adad10a74d2cfc6..7955ca510dd200fedb5d8507d937b716d8d56772 100644
(file)
--- a/
youtube_dl/downloader/hls.py
+++ b/
youtube_dl/downloader/hls.py
@@
-75,15
+75,29
@@
class HlsFD(FragmentFD):
fd.add_progress_hook(ph)
return fd.real_download(filename, info_dict)
fd.add_progress_hook(ph)
return fd.real_download(filename, info_dict)
- total_frags = 0
+ def anvato_ad(s):
+ return s.startswith('#ANVATO-SEGMENT-INFO') and 'type=ad' in s
+
+ media_frags = 0
+ ad_frags = 0
+ ad_frag_next = False
for line in s.splitlines():
line = line.strip()
for line in s.splitlines():
line = line.strip()
- if line and not line.startswith('#'):
- total_frags += 1
+ if not line:
+ continue
+ if line.startswith('#'):
+ if anvato_ad(line):
+ ad_frags += 1
+ continue
+ if ad_frag_next:
+ ad_frag_next = False
+ continue
+ media_frags += 1
ctx = {
'filename': filename,
ctx = {
'filename': filename,
- 'total_frags': total_frags,
+ 'total_frags': media_frags,
+ 'ad_frags': ad_frags,
}
self._prepare_and_start_frag_download(ctx)
}
self._prepare_and_start_frag_download(ctx)
@@
-101,10
+115,14
@@
class HlsFD(FragmentFD):
decrypt_info = {'METHOD': 'NONE'}
byte_range = {}
frag_index = 0
decrypt_info = {'METHOD': 'NONE'}
byte_range = {}
frag_index = 0
+ ad_frag_next = False
for line in s.splitlines():
line = line.strip()
if line:
if not line.startswith('#'):
for line in s.splitlines():
line = line.strip()
if line:
if not line.startswith('#'):
+ if ad_frag_next:
+ ad_frag_next = False
+ continue
frag_index += 1
if frag_index <= ctx['fragment_index']:
continue
frag_index += 1
if frag_index <= ctx['fragment_index']:
continue
@@
-175,6
+193,8
@@
class HlsFD(FragmentFD):
'start': sub_range_start,
'end': sub_range_start + int(splitted_byte_range[0]),
}
'start': sub_range_start,
'end': sub_range_start + int(splitted_byte_range[0]),
}
+ elif anvato_ad(line):
+ ad_frag_next = True
self._finish_frag_download(ctx)
self._finish_frag_download(ctx)