summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorSergey M․ <[email protected]>2017-01-29 05:36:53 +0700
committerSergey M․ <[email protected]>2017-01-29 05:36:53 +0700
commitd04621daf451d601dba80dc0f2baa29e404e4ca6 (patch)
tree6268fc3097646da13e742d5775446e9a3537d946
parent76aaf1faaed613569cb71e4f9aa7bd218f27c54b (diff)
downloadyoutube-dl-d04621daf451d601dba80dc0f2baa29e404e4ca6.tar.gz
youtube-dl-d04621daf451d601dba80dc0f2baa29e404e4ca6.zip
[extractor/common] Fix duration per dash segment (closes #11868)
-rw-r--r--youtube_dl/extractor/common.py12
1 files changed, 7 insertions, 5 deletions
diff --git a/youtube_dl/extractor/common.py b/youtube_dl/extractor/common.py
index dce8c7d0d..a3048fb59 100644
--- a/youtube_dl/extractor/common.py
+++ b/youtube_dl/extractor/common.py
@@ -1751,14 +1751,16 @@ class InfoExtractor(object):
# Example: https://www.youtube.com/watch?v=iXZV5uAYMJI
# or any YouTube dashsegments video
fragments = []
- s_num = 0
- for segment_url in representation_ms_info['segment_urls']:
- s = representation_ms_info['s'][s_num]
+ segment_index = 0
+ timescale = representation_ms_info['timescale']
+ for s in representation_ms_info['s']:
+ duration = float_or_none(s['d'], timescale)
for r in range(s.get('r', 0) + 1):
fragments.append({
- 'url': segment_url,
- 'duration': float_or_none(s['d'], representation_ms_info['timescale']),
+ 'url': representation_ms_info['segment_urls'][segment_index],
+ 'duration': duration,
})
+ segment_index += 1
representation_ms_info['fragments'] = fragments
# NB: MPD manifest may contain direct URLs to unfragmented media.
# No fragments key is present in this case.