diff options
| -rw-r--r-- | youtube_dl/extractor/common.py | 12 | 
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. | 
