From: pukkandan Date: Thu, 15 Dec 2022 14:28:57 +0000 (+0530) Subject: [extractor] Let `_extract_format` functions obey `--ignore-no-formats` X-Git-Tag: 2023.01.02~58 X-Git-Url: https://jfr.im/git/yt-dlp.git/commitdiff_plain/0b5546c723b9fb212e7e0199dbdaae8b8e0bf206 [extractor] Let `_extract_format` functions obey `--ignore-no-formats` --- diff --git a/yt_dlp/extractor/common.py b/yt_dlp/extractor/common.py index 3910c55ad..9031f3c11 100644 --- a/yt_dlp/extractor/common.py +++ b/yt_dlp/extractor/common.py @@ -1759,6 +1759,9 @@ def _sleep(self, timeout, video_id, msg_template=None): def _extract_f4m_formats(self, manifest_url, video_id, preference=None, quality=None, f4m_id=None, transform_source=lambda s: fix_xml_ampersands(s).strip(), fatal=True, m3u8_id=None, data=None, headers={}, query={}): + if self.get_param('ignore_no_formats_error'): + fatal = False + res = self._download_xml_handle( manifest_url, video_id, 'Downloading f4m manifest', 'Unable to download f4m manifest', @@ -1908,6 +1911,9 @@ def _extract_m3u8_formats_and_subtitles( errnote=None, fatal=True, live=False, data=None, headers={}, query={}): + if self.get_param('ignore_no_formats_error'): + fatal = False + if not m3u8_url: if errnote is not False: errnote = errnote or 'Failed to obtain m3u8 URL' @@ -2187,6 +2193,9 @@ def _xpath_ns(path, namespace=None): return '/'.join(out) def _extract_smil_formats_and_subtitles(self, smil_url, video_id, fatal=True, f4m_params=None, transform_source=None): + if self.get_param('ignore_no_formats_error'): + fatal = False + res = self._download_smil(smil_url, video_id, fatal=fatal, transform_source=transform_source) if res is False: assert not fatal @@ -2462,6 +2471,10 @@ def _extract_mpd_formats(self, *args, **kwargs): def _extract_mpd_formats_and_subtitles( self, mpd_url, video_id, mpd_id=None, note=None, errnote=None, fatal=True, data=None, headers={}, query={}): + + if self.get_param('ignore_no_formats_error'): + fatal = False + res = self._download_xml_handle( mpd_url, video_id, note='Downloading MPD manifest' if note is None else note, @@ -2831,6 +2844,9 @@ def _extract_ism_formats(self, *args, **kwargs): return fmts def _extract_ism_formats_and_subtitles(self, ism_url, video_id, ism_id=None, note=None, errnote=None, fatal=True, data=None, headers={}, query={}): + if self.get_param('ignore_no_formats_error'): + fatal = False + res = self._download_xml_handle( ism_url, video_id, note='Downloading ISM manifest' if note is None else note,