forked from midou/invidious
Add support for clips
This commit is contained in:
parent
fc5f84a0cd
commit
4e44a91d08
@ -339,6 +339,7 @@ end
|
|||||||
Invidious::Routing.post "/watch_ajax", Invidious::Routes::Watch, :mark_watched
|
Invidious::Routing.post "/watch_ajax", Invidious::Routes::Watch, :mark_watched
|
||||||
Invidious::Routing.get "/watch/:id", Invidious::Routes::Watch, :redirect
|
Invidious::Routing.get "/watch/:id", Invidious::Routes::Watch, :redirect
|
||||||
Invidious::Routing.get "/shorts/:id", Invidious::Routes::Watch, :redirect
|
Invidious::Routing.get "/shorts/:id", Invidious::Routes::Watch, :redirect
|
||||||
|
Invidious::Routing.get "/clip/:clip", Invidious::Routes::Watch, :clip
|
||||||
Invidious::Routing.get "/w/:id", Invidious::Routes::Watch, :redirect
|
Invidious::Routing.get "/w/:id", Invidious::Routes::Watch, :redirect
|
||||||
Invidious::Routing.get "/v/:id", Invidious::Routes::Watch, :redirect
|
Invidious::Routing.get "/v/:id", Invidious::Routes::Watch, :redirect
|
||||||
Invidious::Routing.get "/e/:id", Invidious::Routes::Watch, :redirect
|
Invidious::Routing.get "/e/:id", Invidious::Routes::Watch, :redirect
|
||||||
|
@ -266,4 +266,19 @@ module Invidious::Routes::Watch
|
|||||||
"{}"
|
"{}"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def self.clip(env)
|
||||||
|
clip_id = env.params.url["clip"]?
|
||||||
|
|
||||||
|
return error_template(400, "A clip ID is required") if !clip_id
|
||||||
|
|
||||||
|
response = YoutubeAPI.resolve_url("https://www.youtube.com/clip/#{clip_id}")
|
||||||
|
return error_template(400, "Invalid clip ID") if response["error"]?
|
||||||
|
|
||||||
|
if video_id = response.dig?("endpoint", "watchEndpoint", "videoId")
|
||||||
|
return env.redirect "/watch?v=#{video_id}&#{env.params.query}"
|
||||||
|
else
|
||||||
|
return error_template(404, "The requested clip doesn't exist")
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user