aboutsummaryrefslogtreecommitdiffstats
path: root/yt_dlp/extractor
diff options
context:
space:
mode:
authorpukkandan <pukkandan.ytdlp@gmail.com>2022-07-08 03:25:04 +0530
committerpukkandan <pukkandan.ytdlp@gmail.com>2022-08-02 01:08:16 +0530
commitf14a2d838240e9e75fe52d4e381156064e90674c (patch)
treeb14a0168392e77ef0815df63f28d1cbbbbd7acb7 /yt_dlp/extractor
parent5fff2e576f5a36ba253e53880566db932b9b7621 (diff)
downloadhypervideo-pre-f14a2d838240e9e75fe52d4e381156064e90674c.tar.lz
hypervideo-pre-f14a2d838240e9e75fe52d4e381156064e90674c.tar.xz
hypervideo-pre-f14a2d838240e9e75fe52d4e381156064e90674c.zip
[extractor/html5] Separate into own extractor (#4307)
Closes #4291 Authored by: coletdjnz, pukkandan
Diffstat (limited to 'yt_dlp/extractor')
-rw-r--r--yt_dlp/extractor/_extractors.py1
-rw-r--r--yt_dlp/extractor/generic.py19
-rw-r--r--yt_dlp/extractor/genericembeds.py27
3 files changed, 28 insertions, 19 deletions
diff --git a/yt_dlp/extractor/_extractors.py b/yt_dlp/extractor/_extractors.py
index b62b8113c..221c1598d 100644
--- a/yt_dlp/extractor/_extractors.py
+++ b/yt_dlp/extractor/_extractors.py
@@ -662,6 +662,7 @@ from .hse import (
HSEShowIE,
HSEProductIE,
)
+from .genericembeds import HTML5MediaEmbedIE
from .huajiao import HuajiaoIE
from .huya import HuyaLiveIE
from .huffpost import HuffPostIE
diff --git a/yt_dlp/extractor/generic.py b/yt_dlp/extractor/generic.py
index 3d574cd02..ec1cbf005 100644
--- a/yt_dlp/extractor/generic.py
+++ b/yt_dlp/extractor/generic.py
@@ -3776,25 +3776,6 @@ class GenericIE(InfoExtractor):
elif embeds:
return self.playlist_result(embeds, **info_dict)
- # Look for HTML5 media
- entries = self._parse_html5_media_entries(url, webpage, video_id, m3u8_id='hls')
- if entries:
- self.report_detected('HTML5 media')
- if len(entries) == 1:
- entries[0].update({
- 'id': video_id,
- 'title': video_title,
- })
- else:
- for num, entry in enumerate(entries, start=1):
- entry.update({
- 'id': f'{video_id}-{num}',
- 'title': '%s (%d)' % (video_title, num),
- })
- for entry in entries:
- self._sort_formats(entry['formats'])
- return self.playlist_result(entries, video_id, video_title)
-
jwplayer_data = self._find_jwplayer_data(
webpage, video_id, transform_source=js_to_json)
if jwplayer_data:
diff --git a/yt_dlp/extractor/genericembeds.py b/yt_dlp/extractor/genericembeds.py
new file mode 100644
index 000000000..ec2673059
--- /dev/null
+++ b/yt_dlp/extractor/genericembeds.py
@@ -0,0 +1,27 @@
+from .common import InfoExtractor
+
+
+class HTML5MediaEmbedIE(InfoExtractor):
+ _VALID_URL = False
+ IE_NAME = 'html5'
+ _WEBPAGE_TESTS = [
+ {
+ 'url': 'https://html.com/media/',
+ 'info_dict': {
+ 'title': 'HTML5 Media',
+ 'description': 'md5:933b2d02ceffe7a7a0f3c8326d91cc2a',
+ },
+ 'playlist_count': 2
+ }
+ ]
+
+ def _extract_from_webpage(self, url, webpage):
+ video_id, title = self._generic_id(url), self._generic_title(url)
+ entries = self._parse_html5_media_entries(url, webpage, video_id, m3u8_id='hls') or []
+ for num, entry in enumerate(entries, start=1):
+ entry.update({
+ 'id': f'{video_id}-{num}',
+ 'title': f'{title} ({num})',
+ })
+ self._sort_formats(entry['formats'])
+ yield entry