[extractor/common] Fix format_id when `last_media` is None and always include `m3u8_i...
authorSergey M․ <dstftw@gmail.com>
Fri, 6 Mar 2015 16:52:50 +0000 (22:52 +0600)
committerSergey M․ <dstftw@gmail.com>
Fri, 6 Mar 2015 16:52:50 +0000 (22:52 +0600)
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`

youtube_dl/extractor/common.py

index 8ff76342fec703b5cae6683cf34f761698c8cba6..06bce12e0d57e65a7e9ad0179c014dc9464d2fba 100644 (file)
@@ -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,