diff --git a/yt_dlp/extractor/common.py b/yt_dlp/extractor/common.py index 96ebd2706b..2a9cc33334 100644 --- a/yt_dlp/extractor/common.py +++ b/yt_dlp/extractor/common.py @@ -1801,23 +1801,23 @@ def _resolve_nuxt_array(self, array, video_id, *, fatal=True, default=NO_DEFAULT if default is not NO_DEFAULT: fatal = False - # Ref: https://github.com/nuxt/nuxt/commit/9e503be0f2a24f4df72a3ccab2db4d3e63511f57 - # https://github.com/nuxt/nuxt/pull/19205 - def simple_reviver(data): + def indirect_reviver(data): return data - def empty_reviver(data): - return self._parse_json(data, video_id, fatal=fatal, errnote=None if fatal else False) + def json_reviver(data): + return json.loads(data) + # Ref: https://github.com/nuxt/nuxt/commit/9e503be0f2a24f4df72a3ccab2db4d3e63511f57 + # https://github.com/nuxt/nuxt/pull/19205 try: return devalue.parse(array, revivers={ - 'NuxtError': simple_reviver, - 'EmptyShallowRef': empty_reviver, - 'EmptyRef': empty_reviver, - 'ShallowRef': simple_reviver, - 'ShallowReactive': simple_reviver, - 'Ref': simple_reviver, - 'Reactive': simple_reviver, + 'NuxtError': indirect_reviver, + 'EmptyShallowRef': json_reviver, + 'EmptyRef': json_reviver, + 'ShallowRef': indirect_reviver, + 'ShallowReactive': indirect_reviver, + 'Ref': indirect_reviver, + 'Reactive': indirect_reviver, }) except (IndexError, TypeError, ValueError) as e: if default is not NO_DEFAULT: