]> jfr.im git - yt-dlp.git/blobdiff - yt_dlp/extractor/ccc.py
[ie/matchtv] Fix extractor (#10190)
[yt-dlp.git] / yt_dlp / extractor / ccc.py
index 36e6dff72c9f4bf62b59b864091a7b3a0d17ba5b..1d781cc477e927da4559d76445655f9afe7f4866 100644 (file)
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
 from .common import InfoExtractor
 from ..utils import (
     int_or_none,
@@ -28,7 +25,7 @@ class CCCIE(InfoExtractor):
             'timestamp': 1388188800,
             'duration': 3710,
             'tags': list,
-        }
+        },
     }, {
         'url': 'https://media.ccc.de/v/32c3-7368-shopshifting#download',
         'only_matching': True,
@@ -38,7 +35,7 @@ def _real_extract(self, url):
         display_id = self._match_id(url)
         webpage = self._download_webpage(url, display_id)
         event_id = self._search_regex(r"data-id='(\d+)'", webpage, 'event id')
-        event_data = self._download_json('https://media.ccc.de/public/events/%s' % event_id, event_id)
+        event_data = self._download_json(f'https://media.ccc.de/public/events/{event_id}', event_id)
 
         formats = []
         for recording in event_data.get('recordings', []):
@@ -67,7 +64,6 @@ def _real_extract(self, url):
                 'language': language,
                 'vcodec': vcodec,
             })
-        self._sort_formats(formats)
 
         return {
             'id': event_id,
@@ -78,6 +74,7 @@ def _real_extract(self, url):
             'thumbnail': event_data.get('thumb_url'),
             'timestamp': parse_iso8601(event_data.get('date')),
             'duration': int_or_none(event_data.get('length')),
+            'view_count': int_or_none(event_data.get('view_count')),
             'tags': event_data.get('tags'),
             'formats': formats,
         }
@@ -93,10 +90,17 @@ class CCCPlaylistIE(InfoExtractor):
             'id': '30c3',
         },
         'playlist_count': 135,
+    }, {
+        'url': 'https://media.ccc.de/c/DS2023',
+        'info_dict': {
+            'title': 'Datenspuren 2023',
+            'id': 'DS2023',
+        },
+        'playlist_count': 37,
     }]
 
     def _real_extract(self, url):
-        playlist_id = self._match_id(url).lower()
+        playlist_id = self._match_id(url)
 
         conf = self._download_json(
             'https://media.ccc.de/public/conferences/' + playlist_id,