summaryrefslogtreecommitdiffstats
path: root/src/invidious.cr
diff options
context:
space:
mode:
Diffstat (limited to 'src/invidious.cr')
-rw-r--r--src/invidious.cr13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/invidious.cr b/src/invidious.cr
index 0913a137..ce818b69 100644
--- a/src/invidious.cr
+++ b/src/invidious.cr
@@ -215,6 +215,13 @@ get "/watch" do |env|
audio_streams = video.audio_streams(adaptive_fmts)
captions = video.captions
+ if preferences
+ preferred_captions = captions.select { |caption| preferences.captions.includes? caption["name"]["simpleText"] }
+ preferred_captions.sort_by! { |caption| preferences.captions.index(caption["name"]["simpleText"]).not_nil! }
+
+ captions = captions - preferred_captions
+ end
+ preferred_captions ||= [] of JSON::Any
video.description = fill_links(video.description, "https", "www.youtube.com")
video.description = add_alt_links(video.description)
@@ -713,6 +720,11 @@ post "/preferences" do |env|
comments = env.params.body["comments"]?
comments ||= "youtube"
+ captions_0 = env.params.body["captions_0"]?.try &.as(String) || ""
+ captions_1 = env.params.body["captions_1"]?.try &.as(String) || ""
+ captions_2 = env.params.body["captions_2"]?.try &.as(String) || ""
+ captions = [captions_0, captions_1, captions_2]
+
redirect_feed = env.params.body["redirect_feed"]?.try &.as(String)
redirect_feed ||= "off"
redirect_feed = redirect_feed == "on"
@@ -750,6 +762,7 @@ post "/preferences" do |env|
"quality" => quality,
"volume" => volume,
"comments" => comments,
+ "captions" => captions,
"redirect_feed" => redirect_feed,
"dark_mode" => dark_mode,
"thin_mode" => thin_mode,