summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBen Heller <ben@bheller.me>2020-10-22 03:02:15 -0700
committerGitHub <noreply@github.com>2020-10-22 10:02:15 +0000
commit22d9d16a7a3b6a90ff7956822c5a36522da465f9 (patch)
tree190ee31a2a18de8aa054981691aa58c6ab015706 /src
parent0520e673035d0acc2255de77636f7d30b2ad0a17 (diff)
downloadinvidious-22d9d16a7a3b6a90ff7956822c5a36522da465f9.tar.gz
invidious-22d9d16a7a3b6a90ff7956822c5a36522da465f9.tar.bz2
invidious-22d9d16a7a3b6a90ff7956822c5a36522da465f9.zip
Update parsing of ytInitialData (#1427)
Update parsing of ytInitialData
Diffstat (limited to 'src')
-rw-r--r--src/invidious/helpers/helpers.cr2
-rw-r--r--src/invidious/videos.cr2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/invidious/helpers/helpers.cr b/src/invidious/helpers/helpers.cr
index fb220eab..62c24f3e 100644
--- a/src/invidious/helpers/helpers.cr
+++ b/src/invidious/helpers/helpers.cr
@@ -597,7 +597,7 @@ def create_notification_stream(env, topics, connection_channel)
end
def extract_initial_data(body) : Hash(String, JSON::Any)
- initial_data = body.match(/window\["ytInitialData"\]\s*=\s*(?<info>.*?);+\n/).try &.["info"] || "{}"
+ initial_data = body.match(/(window\["ytInitialData"\]|var\s+ytInitialData)\s*=\s*(?<info>.*?);+\s*\n/).try &.["info"] || "{}"
if initial_data.starts_with?("JSON.parse(\"")
return JSON.parse(JSON.parse(%({"initial_data":"#{initial_data[12..-3]}"}))["initial_data"].as_s).as_h
else
diff --git a/src/invidious/videos.cr b/src/invidious/videos.cr
index e7751fb0..8e314fe0 100644
--- a/src/invidious/videos.cr
+++ b/src/invidious/videos.cr
@@ -839,7 +839,7 @@ def extract_polymer_config(body)
params[f] = player_response[f] if player_response[f]?
end
- yt_initial_data = body.match(/window\["ytInitialData"\]\s*=\s*(?<info>.*?);\n/)
+ yt_initial_data = body.match(/(window\["ytInitialData"\]|var\s+ytInitialData)\s*=\s*(?<info>.*?);\s*\n/)
.try { |r| JSON.parse(r["info"]).as_h }
params["relatedVideos"] = yt_initial_data.try &.["playerOverlays"]?.try &.["playerOverlayRenderer"]?