mirror of
				https://github.com/iv-org/invidious.git
				synced 2025-10-30 20:22:00 +00:00 
			
		
		
		
	Add support for clips
This commit is contained in:
		| @@ -339,6 +339,7 @@ end | ||||
|   Invidious::Routing.post "/watch_ajax", Invidious::Routes::Watch, :mark_watched | ||||
|   Invidious::Routing.get "/watch/: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 "/v/:id", Invidious::Routes::Watch, :redirect | ||||
|   Invidious::Routing.get "/e/:id", Invidious::Routes::Watch, :redirect | ||||
|   | ||||
| @@ -266,4 +266,19 @@ module Invidious::Routes::Watch | ||||
|       "{}" | ||||
|     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 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Samantaz Fox
					Samantaz Fox