feat: centralize ytInitialData parsing

This commit is contained in:
Théo Gaillard
2020-11-26 13:12:35 +01:00
parent 480d31eb5e
commit 1ba17a0e14
3 changed files with 15 additions and 23 deletions

View File

@@ -839,8 +839,7 @@ def extract_polymer_config(body)
params[f] = player_response[f] if player_response[f]?
end
yt_initial_data = body.match(/(window\["ytInitialData"\]|var\s+ytInitialData)\s*=\s*(?<info>.*?);\s*\n/)
.try { |r| JSON.parse(r["info"]).as_h }
yt_initial_data = extract_initial_data(body)
params["relatedVideos"] = yt_initial_data.try &.["playerOverlays"]?.try &.["playerOverlayRenderer"]?
.try &.["endScreen"]?.try &.["watchNextEndScreenRenderer"]?.try &.["results"]?.try &.as_a.compact_map { |r|