diff options
| author | syeopite <syeopite@syeopite.dev> | 2021-06-25 07:51:51 -0700 |
|---|---|---|
| committer | syeopite <syeopite@syeopite.dev> | 2021-06-25 07:51:51 -0700 |
| commit | aa55e67389ac8c3786c5e0ac4dca3d50f2193e16 (patch) | |
| tree | 36af58ae4499d62f836bbe47726e1c44a32c6c80 /src | |
| parent | 5a8825d01682def020acfd2baf95a44b94790f6f (diff) | |
| download | invidious-aa55e67389ac8c3786c5e0ac4dca3d50f2193e16.tar.gz invidious-aa55e67389ac8c3786c5e0ac4dca3d50f2193e16.tar.bz2 invidious-aa55e67389ac8c3786c5e0ac4dca3d50f2193e16.zip | |
Fix extraction of age restricted videos
Diffstat (limited to 'src')
| -rw-r--r-- | src/invidious/videos.cr | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/invidious/videos.cr b/src/invidious/videos.cr index 116aafc7..5b2158ec 100644 --- a/src/invidious/videos.cr +++ b/src/invidious/videos.cr @@ -989,9 +989,15 @@ def fetch_video(id, region) # Try to pull streams from embed URL if info["reason"]? - embed_page = YT_POOL.client &.get("/embed/#{id}").body - sts = embed_page.match(/"sts"\s*:\s*(?<sts>\d+)/).try &.["sts"]? || "" - embed_info = HTTP::Params.parse(YT_POOL.client &.get("/get_video_info?html5=1&video_id=#{id}&eurl=https://youtube.googleapis.com/v/#{id}&gl=US&hl=en&sts=#{sts}").body) + required_parameters = URI::Params.new({ + "video_id" => [id], + "eurl" => ["https://youtube.googleapis.com/v/#{id}"], + "html5" => ["1"], + "c" => ["TVHTML5"], + "cver" => ["6.20180913"], + }) + + embed_info = HTTP::Params.parse(YT_POOL.client &.get("/get_video_info?#{required_parameters}", headers: HTTP::Headers{"x-youtube-client-version" => "6.20180913"}).body) if embed_info["player_response"]? player_response = JSON.parse(embed_info["player_response"]) |
