diff --git a/gallery_dl/extractor/patreon.py b/gallery_dl/extractor/patreon.py index c175ab83..dfcfe24b 100644 --- a/gallery_dl/extractor/patreon.py +++ b/gallery_dl/extractor/patreon.py @@ -52,7 +52,11 @@ class PatreonExtractor(Extractor): post["hash"] = fhash post["type"] = kind post["num"] += 1 - yield Message.Url, url, text.nameext_from_url(name, post) + text.nameext_from_url(name, post) + if text.ext_from_url(url) == "m3u8": + url = "ytdl:" + url + post["extension"] = "mp4" + yield Message.Url, url, post else: self.log.debug("skipping %s (%s %s)", url, fhash, kind) diff --git a/test/results/patreon.py b/test/results/patreon.py index d4557173..79c0a603 100644 --- a/test/results/patreon.py +++ b/test/results/patreon.py @@ -103,6 +103,14 @@ __tests__ = ( "tags": ["AWMedia"], }, +{ + "#url" : "https://www.patreon.com/posts/meu8-94714289", + "#category": ("", "patreon", "post"), + "#class" : patreon.PatreonPostExtractor, + "#range" : "2", + "#pattern" : r"ytdl:https://stream\.mux\.com/NLrxTLdxyGStpOgapJAtB8uPGAaokEcj8YovML00y2DY\.m3u8\?token=ey.+", +}, + { "#url" : "https://www.patreon.com/posts/not-found-123", "#category": ("", "patreon", "post"),