From a12690cbfd11630129cf400887f8ddc1f69fe4e8 Mon Sep 17 00:00:00 2001 From: Omar Roth Date: Thu, 2 Aug 2018 17:08:33 -0500 Subject: [PATCH] Add captions to embedded videos --- src/invidious.cr | 6 ++++++ src/invidious/helpers.cr | 2 +- src/invidious/views/embed.ecr | 22 +++++++++++++--------- 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/src/invidious.cr b/src/invidious.cr index 78b05d46..9e95121a 100644 --- a/src/invidious.cr +++ b/src/invidious.cr @@ -1440,6 +1440,12 @@ get "/embed/:id" do |env| next templated "error" end + player_response = JSON.parse(video.info["player_response"]) + if player_response["captions"]? + captions = player_response["captions"]["playerCaptionsTracklistRenderer"]["captionTracks"]?.try &.as_a + end + captions ||= [] of JSON::Any + if video.info["hlsvp"]? hlsvp = video.info["hlsvp"] diff --git a/src/invidious/helpers.cr b/src/invidious/helpers.cr index 3d8fc7d0..5bb30c07 100644 --- a/src/invidious/helpers.cr +++ b/src/invidious/helpers.cr @@ -728,7 +728,7 @@ def fill_links(html, scheme, host) end end - html = html.to_xml + html = html.xpath_node(%q(//p[@id="eow-description"])).not_nil!.to_xml end def login_req(login_form, f_req) diff --git a/src/invidious/views/embed.ecr b/src/invidious/views/embed.ecr index 669fc864..d3c9719b 100644 --- a/src/invidious/views/embed.ecr +++ b/src/invidious/views/embed.ecr @@ -54,10 +54,14 @@ video, #my_video, .video-js, .vjs-default-skin " type='<%= fmt["type"] %>' label="<%= fmt["label"] %>" selected="<%= quality == fmt["label"].split(" - ")[0] %>"> <% else %> " type='<%= fmt["type"] %>' label="<%= fmt["label"] %>" selected="<%= i == 0 ? true : false %>"> - <% end %> - <% end %> + <% end %> + <% captions.each do |caption| %> + " + srclang="<%= caption["languageCode"] %>" label="<%= caption["name"]["simpleText"]%> "> + <% end %> <% end %> <% end %> +<% end %>