From f6d92ccca705eb66993880a8fee8dc8ae4ccc84b Mon Sep 17 00:00:00 2001 From: Jeroen Boersma Date: Tue, 2 Dec 2025 16:58:34 +0100 Subject: [PATCH] Allow downloading via companion * post request where not proxied for the download companion which made it impossible to download with the companion enabled --- src/invidious/routes/companion.cr | 18 ++++++++++++++++++ src/invidious/routing.cr | 3 ++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/invidious/routes/companion.cr b/src/invidious/routes/companion.cr index 11c2e3f5..14116e68 100644 --- a/src/invidious/routes/companion.cr +++ b/src/invidious/routes/companion.cr @@ -16,6 +16,24 @@ module Invidious::Routes::Companion end end +# /companion + def self.post_companion(env) + url = env.request.path + if env.request.query + url += "?#{env.request.query}" + end + + begin + COMPANION_POOL.client do |wrapper| + wrapper.client.post(url, env.request.headers, env.request.body) do |resp| + return self.proxy_companion(env, resp) + end + end + rescue ex + end + end + + def self.options_companion(env) url = env.request.path if env.request.query diff --git a/src/invidious/routing.cr b/src/invidious/routing.cr index a51bb4b6..c03f7ef2 100644 --- a/src/invidious/routing.cr +++ b/src/invidious/routing.cr @@ -227,6 +227,7 @@ module Invidious::Routing def register_companion_routes if CONFIG.invidious_companion.present? get "/companion/*", Routes::Companion, :get_companion + post "/companion/*", Routes::Companion, :post_companion options "/companion/*", Routes::Companion, :options_companion end end @@ -252,7 +253,7 @@ module Invidious::Routing get "/api/v1/trending", {{namespace}}::Feeds, :trending get "/api/v1/popular", {{namespace}}::Feeds, :popular - # Channels + # Channel get "/api/v1/channels/:ucid", {{namespace}}::Channels, :home get "/api/v1/channels/:ucid/latest", {{namespace}}::Channels, :latest get "/api/v1/channels/:ucid/videos", {{namespace}}::Channels, :videos