From edb3a0fc360914c705bb749f27d05f2323b7782e Mon Sep 17 00:00:00 2001 From: Fijxu Date: Tue, 26 May 2026 18:13:51 -0400 Subject: [PATCH] Add support for `/pl_c` and `/tvfilm_banner` paths (thumbnails used in some playlists) (#5742) * feat: add support for /pl_c/ images This path can be found on Podcast images. * add support for /pl_c and /tvfilm_banner paths * add support for /pl_c and /tvfilm_banner paths 2 * remove leftover comment --- src/invidious/routes/images.cr | 14 ++++++++++++-- src/invidious/routing.cr | 2 ++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/invidious/routes/images.cr b/src/invidious/routes/images.cr index c06955c0..d76bcc58 100644 --- a/src/invidious/routes/images.cr +++ b/src/invidious/routes/images.cr @@ -51,7 +51,7 @@ module Invidious::Routes::Images end # ??? maybe also for storyboards? - def self.s_p_image(env) + def self.s_p_image(env, authority = "i9") id = env.params.url["id"] name = env.params.url["name"] url = env.request.resource @@ -65,13 +65,23 @@ module Invidious::Routes::Images end begin - get_ytimg_pool("i9").client &.get(url, headers) do |resp| + get_ytimg_pool(authority).client &.get(url, headers) do |resp| return self.proxy_image(env, resp) end rescue ex end end + # Both pl_c and tvfilm_banner use the same logic used in s_p_image(env) + # just with a different authority ("i"). + def self.pl_c_image(env) + self.s_p_image(env, "i") + end + + def self.tvfilm_banner_image(env) + self.s_p_image(env, "i") + end + def self.yts_image(env) headers = HTTP::Headers.new REQUEST_HEADERS_WHITELIST.each do |header| diff --git a/src/invidious/routing.cr b/src/invidious/routing.cr index 32e8554c..a4ed1f57 100644 --- a/src/invidious/routing.cr +++ b/src/invidious/routing.cr @@ -222,6 +222,8 @@ module Invidious::Routing get "/s_p/:id/:name", Routes::Images, :s_p_image get "/yts/img/:name", Routes::Images, :yts_image get "/vi/:id/:name", Routes::Images, :thumbnails + get "/pl_c/:id/:name", Routes::Images, :pl_c_image + get "/tvfilm_banner/:id/:name", Routes::Images, :tvfilm_banner_image end def register_companion_routes