Add subtitles to download widget

This commit is contained in:
Omar Roth 2019-04-11 12:08:43 -05:00
parent 611555514c
commit 5e141e869d
2 changed files with 18 additions and 1 deletions

View file

@ -2722,6 +2722,11 @@ get "/api/v1/captions/:id" do |env|
END_CUE
end
if title = env.params.query["title"]?
# https://blog.fastmail.com/2011/06/24/download-non-english-filenames/
env.response.headers["Content-Disposition"] = "attachment; filename=\"#{URI.escape(title)}\"; filename*=UTF-8''#{URI.escape(title)}"
end
webvtt
end
@ -4214,11 +4219,18 @@ end
get "/latest_version" do |env|
if env.params.query["download_widget"]?
download_widget = JSON.parse(env.params.query["download_widget"])
id = download_widget["id"].as_s
itag = download_widget["itag"].as_s
title = download_widget["title"].as_s
if label = download_widget["label"]?
env.redirect "/api/v1/captions/#{id}?label=#{label}&title=#{title}"
next
else
itag = download_widget["itag"].as_s
local = "true"
end
end
id ||= env.params.query["id"]?
itag ||= env.params.query["itag"]?

View file

@ -79,6 +79,11 @@
<%= itag_to_metadata?(option["itag"]).try &.["height"]? || "~240" %>p - <%= option["type"].split(";")[0] %>
</option>
<% end %>
<% captions.each do |caption| %>
<option value='{"id":"<%= video.id %>","label":"<%= caption.name.simpleText %>","title":"<%= URI.escape(video.title) %>-<%= video.id %>.<%= caption.languageCode %>.vtt"}'>
<%= translate(locale, "Subtitles - `x` (.vtt)", caption.name.simpleText) %>
</option>
<% end %>
</select>
</div>