[dl:ytdl] implement explicit HLS/DASH handling

add '_ytdl_manifest' to specify a manifest type to process
This commit is contained in:
Mike Fährmann
2024-10-15 21:54:05 +02:00
parent 67547a659f
commit 1824267447
5 changed files with 51 additions and 3 deletions

View File

@@ -171,6 +171,7 @@ class BehanceGalleryExtractor(BehanceExtractor):
url = text.extr(page, '<source src="', '"')
if text.ext_from_url(url) == "m3u8":
url = "ytdl:" + url
module["_ytdl_manifest"] = "hls"
module["extension"] = "mp4"
append((url, module))
continue

View File

@@ -56,6 +56,7 @@ class PatreonExtractor(Extractor):
text.nameext_from_url(name, post)
if text.ext_from_url(url) == "m3u8":
url = "ytdl:" + url
post["_ytdl_manifest"] = "hls"
post["extension"] = "mp4"
yield Message.Url, url, post
else:

View File

@@ -74,6 +74,7 @@ class PinterestExtractor(Extractor):
if pin["extension"] == "m3u8":
url = "ytdl:" + url
pin["_ytdl_manifest"] = "hls"
pin["extension"] = "mp4"
yield Message.Url, url, pin

View File

@@ -211,8 +211,9 @@ class RedditExtractor(Extractor):
def _extract_video_dash(self, submission):
submission["_ytdl_extra"] = {"title": submission["title"]}
try:
return (submission["secure_media"]["reddit_video"]["dash_url"] +
"#__youtubedl_smuggle=%7B%22to_generic%22%3A+1%7D")
url = submission["secure_media"]["reddit_video"]["dash_url"]
submission["_ytdl_manifest"] = "dash"
return url
except Exception:
return submission["url"]