mirror of
				https://github.com/iv-org/invidious.git
				synced 2025-10-31 20:51:56 +00:00 
			
		
		
		
	Update parsing of ytInitialData (#1427)
Update parsing of ytInitialData
This commit is contained in:
		| @@ -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 | ||||
|   | ||||
| @@ -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"]? | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Ben Heller
					Ben Heller