mirror of
https://github.com/iv-org/invidious
synced 2024-11-09 01:10:27 +00:00
Update parsing of ytInitialData (#1427)
Update parsing of ytInitialData
This commit is contained in:
parent
0520e67303
commit
22d9d16a7a
@ -597,7 +597,7 @@ def create_notification_stream(env, topics, connection_channel)
|
|||||||
end
|
end
|
||||||
|
|
||||||
def extract_initial_data(body) : Hash(String, JSON::Any)
|
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(\"")
|
if initial_data.starts_with?("JSON.parse(\"")
|
||||||
return JSON.parse(JSON.parse(%({"initial_data":"#{initial_data[12..-3]}"}))["initial_data"].as_s).as_h
|
return JSON.parse(JSON.parse(%({"initial_data":"#{initial_data[12..-3]}"}))["initial_data"].as_s).as_h
|
||||||
else
|
else
|
||||||
|
@ -839,7 +839,7 @@ def extract_polymer_config(body)
|
|||||||
params[f] = player_response[f] if player_response[f]?
|
params[f] = player_response[f] if player_response[f]?
|
||||||
end
|
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 }
|
.try { |r| JSON.parse(r["info"]).as_h }
|
||||||
|
|
||||||
params["relatedVideos"] = yt_initial_data.try &.["playerOverlays"]?.try &.["playerOverlayRenderer"]?
|
params["relatedVideos"] = yt_initial_data.try &.["playerOverlays"]?.try &.["playerOverlayRenderer"]?
|
||||||
|
Loading…
Reference in New Issue
Block a user