mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2025-06-27 17:08:32 +00:00
actual improvements
Authored by: bashonly
This commit is contained in:
parent
11801ca7b3
commit
f98a31a32d
@ -1799,18 +1799,6 @@ def _search_nuxt_json(self, webpage, video_id, *, fatal=True, default=NO_DEFAULT
|
|||||||
"""Parses metadata from Nuxt rich JSON payload arrays"""
|
"""Parses metadata from Nuxt rich JSON payload arrays"""
|
||||||
# Ref: https://github.com/nuxt/nuxt/commit/9e503be0f2a24f4df72a3ccab2db4d3e63511f57
|
# Ref: https://github.com/nuxt/nuxt/commit/9e503be0f2a24f4df72a3ccab2db4d3e63511f57
|
||||||
# https://github.com/nuxt/nuxt/pull/19205
|
# https://github.com/nuxt/nuxt/pull/19205
|
||||||
try:
|
|
||||||
array = self._search_json(
|
|
||||||
r'<script\b[^>]+\bid="__NUXT_DATA__"[^>]*>', webpage,
|
|
||||||
'Nuxt JSON data', video_id, contains_pattern=r'\[(?s:.+)\]')
|
|
||||||
except ExtractorError as e:
|
|
||||||
if fatal:
|
|
||||||
raise
|
|
||||||
if default is NO_DEFAULT:
|
|
||||||
self.report_warning(e.orig_msg)
|
|
||||||
return {}
|
|
||||||
return default
|
|
||||||
|
|
||||||
IGNORED_TYPES = ('Map', 'Set', 'Ref', 'ShallowRef', 'EmptyRef', 'EmptyShallowRef', 'NuxtError')
|
IGNORED_TYPES = ('Map', 'Set', 'Ref', 'ShallowRef', 'EmptyRef', 'EmptyShallowRef', 'NuxtError')
|
||||||
|
|
||||||
def extract_element(element):
|
def extract_element(element):
|
||||||
@ -1831,22 +1819,24 @@ def extract_element(element):
|
|||||||
return ret
|
return ret
|
||||||
return element
|
return element
|
||||||
|
|
||||||
|
if default is not NO_DEFAULT:
|
||||||
|
fatal = False
|
||||||
|
|
||||||
|
array = self._search_json(
|
||||||
|
r'<script\b[^>]+\bid="__NUXT_DATA__"[^>]*>', webpage, 'Nuxt JSON data', video_id,
|
||||||
|
contains_pattern=r'\[(?s:.+)\]', default=NO_DEFAULT if fatal else [])
|
||||||
|
|
||||||
try:
|
try:
|
||||||
payload = extract_element(array[0])
|
return extract_element(array[0])
|
||||||
except IndexError as e:
|
except IndexError:
|
||||||
error_msg = f'Unable to extract Nuxt JSON data: {e}'
|
error_msg = 'Unable to extract Nuxt JSON data'
|
||||||
if fatal:
|
if fatal:
|
||||||
raise ExtractorError(error_msg)
|
raise ExtractorError(error_msg, video_id=video_id)
|
||||||
if default is NO_DEFAULT:
|
if default is NO_DEFAULT:
|
||||||
self.report_warning(error_msg, video_id=video_id)
|
self.report_warning(error_msg, video_id=video_id)
|
||||||
return {}
|
return {}
|
||||||
return default
|
return default
|
||||||
|
|
||||||
if default is NO_DEFAULT:
|
|
||||||
default = {}
|
|
||||||
|
|
||||||
return payload or default
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _hidden_inputs(html):
|
def _hidden_inputs(html):
|
||||||
html = re.sub(r'<!--(?:(?!<!--).)*-->', '', html)
|
html = re.sub(r'<!--(?:(?!<!--).)*-->', '', html)
|
||||||
|
Loading…
Reference in New Issue
Block a user