Make head request to resolve short urls

This commit is contained in:
Brahim Hadriche 2023-10-26 17:48:58 -04:00
parent d7901c1e0d
commit 7e267da5be

View file

@ -159,6 +159,11 @@ module Invidious::Routes::API::V1::Misc
return error_json(400, "Missing URL to resolve") if !url return error_json(400, "Missing URL to resolve") if !url
begin begin
head_response = HTTP::Client.head url.as(String)
if head_response.headers["location"]?
url = head_response.headers["location"]
end
resolved_url = YoutubeAPI.resolve_url(url.as(String)) resolved_url = YoutubeAPI.resolve_url(url.as(String))
endpoint = resolved_url["endpoint"] endpoint = resolved_url["endpoint"]
pageType = endpoint.dig?("commandMetadata", "webCommandMetadata", "webPageType").try &.as_s || "" pageType = endpoint.dig?("commandMetadata", "webCommandMetadata", "webPageType").try &.as_s || ""