]> jfr.im git - yt-dlp.git/blob - yt_dlp/extractor/genericembeds.py
64bd20e3af84457a19ec63800fd88f18e13ccfcc
[yt-dlp.git] / yt_dlp / extractor / genericembeds.py
1 from .common import InfoExtractor
2 from ..utils import make_archive_id
3
4
5 class HTML5MediaEmbedIE(InfoExtractor):
6 _VALID_URL = False
7 IE_NAME = 'html5'
8 _WEBPAGE_TESTS = [
9 {
10 'url': 'https://html.com/media/',
11 'info_dict': {
12 'title': 'HTML5 Media',
13 'description': 'md5:933b2d02ceffe7a7a0f3c8326d91cc2a',
14 },
15 'playlist_count': 2
16 }
17 ]
18
19 def _extract_from_webpage(self, url, webpage):
20 video_id, title = self._generic_id(url), self._generic_title(url)
21 entries = self._parse_html5_media_entries(url, webpage, video_id, m3u8_id='hls') or []
22 for num, entry in enumerate(entries, start=1):
23 entry.update({
24 'id': f'{video_id}-{num}',
25 'title': f'{title} ({num})',
26 '_old_archive_ids': [
27 make_archive_id('generic', f'{video_id}-{num}' if len(entries) > 1 else video_id),
28 ],
29 })
30 self._sort_formats(entry['formats'])
31 yield entry