From ed027fd9d8c0832d6186b3591ca51622e34a072d Mon Sep 17 00:00:00 2001 From: bashonly <88596187+bashonly@users.noreply.github.com> Date: Fri, 18 Nov 2022 02:04:03 +0000 Subject: [PATCH] [extractor/generic] Fix JSON LD manifest extraction (#5577) Closes #5572 Authored by: bashonly, pukkandan --- yt_dlp/extractor/generic.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/yt_dlp/extractor/generic.py b/yt_dlp/extractor/generic.py index 51a6cbf06..5da77273d 100644 --- a/yt_dlp/extractor/generic.py +++ b/yt_dlp/extractor/generic.py @@ -10,6 +10,7 @@ from ..compat import compat_etree_fromstring from ..utils import ( KNOWN_EXTENSIONS, + MEDIA_EXTENSIONS, ExtractorError, UnsupportedError, determine_ext, @@ -2572,8 +2573,9 @@ def _extract_embeds(self, url, webpage, *, urlh=None, info_dict={}): json_ld = self._search_json_ld(webpage, video_id, default={}) if json_ld.get('url') not in (url, None): self.report_detected('JSON LD') + is_direct = json_ld.get('ext') not in (None, *MEDIA_EXTENSIONS.manifests) return [merge_dicts({ - '_type': 'video' if json_ld.get('ext') else 'url_transparent', + '_type': 'video' if is_direct else 'url_transparent', 'url': smuggle_url(json_ld['url'], { 'force_videoid': video_id, 'to_generic': True,