chore: remove baseurl usage from invidious companion

This commit is contained in:
Emilien 2025-03-08 23:38:05 +01:00
parent 790eba42fb
commit acd5e0cae5
5 changed files with 17 additions and 18 deletions

View File

@ -203,11 +203,12 @@ module Invidious::Routes::Embed
return env.redirect url return env.redirect url
end end
if companion_base_url = video.invidious_companion.try &.["baseUrl"].as_s if CONFIG.invidious_companion.present?
invidious_companion = CONFIG.invidious_companion.sample
env.response.headers["Content-Security-Policy"] = env.response.headers["Content-Security-Policy"] =
env.response.headers["Content-Security-Policy"] env.response.headers["Content-Security-Policy"]
.gsub("media-src", "media-src #{companion_base_url}") .gsub("media-src", "media-src #{invidious_companion.public_url}")
.gsub("connect-src", "connect-src #{companion_base_url}") .gsub("connect-src", "connect-src #{invidious_companion.public_url}")
end end
rendered "embed" rendered "embed"

View File

@ -192,11 +192,12 @@ module Invidious::Routes::Watch
captions: video.captions captions: video.captions
) )
if companion_base_url = video.invidious_companion.try &.["baseUrl"].as_s if CONFIG.invidious_companion.present?
invidious_companion = CONFIG.invidious_companion.sample
env.response.headers["Content-Security-Policy"] = env.response.headers["Content-Security-Policy"] =
env.response.headers["Content-Security-Policy"] env.response.headers["Content-Security-Policy"]
.gsub("media-src", "media-src #{companion_base_url}") .gsub("media-src", "media-src #{invidious_companion.public_url}")
.gsub("connect-src", "connect-src #{companion_base_url}") .gsub("connect-src", "connect-src #{invidious_companion.public_url}")
end end
templated "watch" templated "watch"
@ -329,7 +330,8 @@ module Invidious::Routes::Watch
if (CONFIG.invidious_companion.present?) if (CONFIG.invidious_companion.present?)
video = get_video(video_id) video = get_video(video_id)
return env.redirect "#{video.invidious_companion["baseUrl"].as_s}/latest_version?#{env.params.query}" invidious_companion = CONFIG.invidious_companion.sample
return env.redirect "#{invidious_companion.public_url}/latest_version?#{env.params.query}"
else else
return Invidious::Routes::VideoPlayback.latest_version(env) return Invidious::Routes::VideoPlayback.latest_version(env)
end end

View File

@ -192,10 +192,6 @@ struct Video
} }
end end
def invidious_companion : Hash(String, JSON::Any)?
info["invidiousCompanion"]?.try &.as_h || {} of String => JSON::Any
end
# Macros defining getters/setters for various types of data # Macros defining getters/setters for various types of data
private macro getset_string(name) private macro getset_string(name)

View File

@ -133,7 +133,7 @@ def extract_video_info(video_id : String)
end end
end end
{"captions", "playabilityStatus", "playerConfig", "storyboards", "invidiousCompanion"}.each do |f| {"captions", "playabilityStatus", "playerConfig", "storyboards"}.each do |f|
params[f] = player_response[f] if player_response[f]? params[f] = player_response[f] if player_response[f]?
end end

View File

@ -22,8 +22,8 @@
audio_streams.each_with_index do |fmt, i| audio_streams.each_with_index do |fmt, i|
src_url = "/latest_version?id=#{video.id}&itag=#{fmt["itag"]}" src_url = "/latest_version?id=#{video.id}&itag=#{fmt["itag"]}"
src_url += "&local=true" if params.local src_url += "&local=true" if params.local
src_url = video.invidious_companion["baseUrl"].as_s + src_url + src_url = invidious_companion.public_url.to_s + src_url +
"&check=#{invidious_companion_encrypt(video.id)}" if (CONFIG.invidious_companion.present?) "&check=#{invidious_companion_encrypt(video.id)}" if (invidious_companion)
bitrate = fmt["bitrate"] bitrate = fmt["bitrate"]
mimetype = HTML.escape(fmt["mimeType"].as_s) mimetype = HTML.escape(fmt["mimeType"].as_s)
@ -38,8 +38,8 @@
<% else %> <% else %>
<% if params.quality == "dash" <% if params.quality == "dash"
src_url = "/api/manifest/dash/id/" + video.id + "?local=true&unique_res=1" src_url = "/api/manifest/dash/id/" + video.id + "?local=true&unique_res=1"
src_url = video.invidious_companion["baseUrl"].as_s + src_url + src_url = invidious_companion.public_url.to_s + src_url +
"&check=#{invidious_companion_encrypt(video.id)}" if (CONFIG.invidious_companion.present?) "&check=#{invidious_companion_encrypt(video.id)}" if (invidious_companion)
%> %>
<source src="<%= src_url %>" type='application/dash+xml' label="dash"> <source src="<%= src_url %>" type='application/dash+xml' label="dash">
<% end %> <% end %>
@ -50,8 +50,8 @@
fmt_stream.each_with_index do |fmt, i| fmt_stream.each_with_index do |fmt, i|
src_url = "/latest_version?id=#{video.id}&itag=#{fmt["itag"]}" src_url = "/latest_version?id=#{video.id}&itag=#{fmt["itag"]}"
src_url += "&local=true" if params.local src_url += "&local=true" if params.local
src_url = video.invidious_companion["baseUrl"].as_s + src_url + src_url = invidious_companion.public_url.to_s + src_url +
"&check=#{invidious_companion_encrypt(video.id)}" if (CONFIG.invidious_companion.present?) "&check=#{invidious_companion_encrypt(video.id)}" if (invidious_companion)
quality = fmt["quality"] quality = fmt["quality"]
mimetype = HTML.escape(fmt["mimeType"].as_s) mimetype = HTML.escape(fmt["mimeType"].as_s)