diff options
| author | Ben Heller <ben@bheller.me> | 2020-10-22 03:02:15 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-10-22 10:02:15 +0000 |
| commit | 22d9d16a7a3b6a90ff7956822c5a36522da465f9 (patch) | |
| tree | 190ee31a2a18de8aa054981691aa58c6ab015706 | |
| parent | 0520e673035d0acc2255de77636f7d30b2ad0a17 (diff) | |
| download | invidious-22d9d16a7a3b6a90ff7956822c5a36522da465f9.tar.gz invidious-22d9d16a7a3b6a90ff7956822c5a36522da465f9.tar.bz2 invidious-22d9d16a7a3b6a90ff7956822c5a36522da465f9.zip | |
Update parsing of ytInitialData (#1427)
Update parsing of ytInitialData
| -rw-r--r-- | src/invidious/helpers/helpers.cr | 2 | ||||
| -rw-r--r-- | src/invidious/videos.cr | 2 |
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"]? |
