diff options
| author | Sergey M․ <dstftw@gmail.com> | 2015-03-06 22:52:50 +0600 | 
|---|---|---|
| committer | Sergey M․ <dstftw@gmail.com> | 2015-03-06 22:52:50 +0600 | 
| commit | 8dc9d361c22754e6b6b52136d496d754dea65b46 (patch) | |
| tree | f1b88bf7abf3f544026dd719b15c0e72939e836c | |
| parent | d0e958c71c8c561d1c3917d114370fcb85972181 (diff) | |
[extractor/common] Fix format_id when `last_media` is None and always include `m3u8_id` if present
The rationale behind `m3u8_id` was to resolve duplicates when processing several m3u8 playlists within the same media that give equal resulting `format_id`'s,
e.g. `youtube-dl http://www.rts.ch/play/tv/passe-moi-les-jumelles/video/la-fee-des-bois-mustang-les-chemins-du-vent?id=3854925 -F`
| -rw-r--r-- | youtube_dl/extractor/common.py | 11 | 
1 files changed, 6 insertions, 5 deletions
diff --git a/youtube_dl/extractor/common.py b/youtube_dl/extractor/common.py index 8ff76342f..06bce12e0 100644 --- a/youtube_dl/extractor/common.py +++ b/youtube_dl/extractor/common.py @@ -883,12 +883,13 @@ class InfoExtractor(object):                      formats.append({'url': format_url(line)})                      continue                  tbr = int_or_none(last_info.get('BANDWIDTH'), scale=1000) -                format_id = last_media.get('NAME') -                if not format_id: -                    format_id = '-'.join(filter(None, [ -                        m3u8_id, 'm3u8-%d' % (tbr if tbr else len(formats))])) +                format_id = [] +                if m3u8_id: +                    format_id.append(m3u8_id) +                last_media_name = last_media.get('NAME') if last_media else None +                format_id.append(last_media_name if last_media_name else '%d' % (tbr if tbr else len(formats)))                  f = { -                    'format_id': format_id, +                    'format_id': '-'.join(format_id),                      'url': format_url(line.strip()),                      'tbr': tbr,                      'ext': ext,  | 
