aboutsummaryrefslogtreecommitdiffstats
path: root/yt_dlp/utils.py
diff options
context:
space:
mode:
authorpukkandan <pukkandan.ytdlp@gmail.com>2022-09-23 19:21:07 +0530
committerpukkandan <pukkandan.ytdlp@gmail.com>2022-09-23 19:21:17 +0530
commitf55523cfdd18dcd578f5d96cbb06266663169d35 (patch)
treefc46f48848562b8b57ff626e061f232097f93b2a /yt_dlp/utils.py
parent32972518da55934f7ccf7960f788363d5700da5e (diff)
downloadhypervideo-pre-f55523cfdd18dcd578f5d96cbb06266663169d35.tar.lz
hypervideo-pre-f55523cfdd18dcd578f5d96cbb06266663169d35.tar.xz
hypervideo-pre-f55523cfdd18dcd578f5d96cbb06266663169d35.zip
[utils] `js_to_json`: Improve
Closes #4900
Diffstat (limited to 'yt_dlp/utils.py')
-rw-r--r--yt_dlp/utils.py3
1 files changed, 2 insertions, 1 deletions
diff --git a/yt_dlp/utils.py b/yt_dlp/utils.py
index 26ef3c7dd..f6ab9905d 100644
--- a/yt_dlp/utils.py
+++ b/yt_dlp/utils.py
@@ -3298,7 +3298,7 @@ def js_to_json(code, vars={}, *, strict=False):
return '"%d":' % i if v.endswith(':') else '%d' % i
if v in vars:
- return vars[v]
+ return json.dumps(vars[v])
if strict:
raise ValueError(f'Unknown value: {v}')
@@ -3310,6 +3310,7 @@ def js_to_json(code, vars={}, *, strict=False):
code = re.sub(r'new Map\((\[.*?\])?\)', create_map, code)
if not strict:
code = re.sub(r'new Date\((".+")\)', r'\g<1>', code)
+ code = re.sub(r'new \w+\((.*?)\)', lambda m: json.dumps(m.group(0)), code)
return re.sub(r'''(?sx)
"(?:[^"\\]*(?:\\\\|\\['"nurtbfx/\n]))*[^"\\]*"|