Add 'raw' and 'quality' options to embedded videos

This commit is contained in:
Omar Roth 2018-07-19 11:04:29 -05:00
parent b965c8a7a4
commit ac8fb9d8c8
2 changed files with 23 additions and 0 deletions

View file

@ -422,6 +422,13 @@ get "/embed/:id" do |env|
end end
listen ||= false listen ||= false
raw = env.params.query["raw"]? && env.params.query["raw"].to_i
raw ||= 0
raw = raw == 1
quality = env.params.query["quality"]? && env.params.query["quality"]
quality ||= "hd720"
autoplay = env.params.query["autoplay"]?.try &.to_i autoplay = env.params.query["autoplay"]?.try &.to_i
autoplay ||= 0 autoplay ||= 0
@ -472,6 +479,18 @@ get "/embed/:id" do |env|
stream["bitrate"] = (stream["bitrate"].to_f64/1000).to_i.to_s stream["bitrate"] = (stream["bitrate"].to_f64/1000).to_i.to_s
end end
if raw
url = fmt_stream[0]["url"]
fmt_stream.each do |fmt|
if fmt["label"].split(" - ")[0] == quality
url = fmt["url"]
end
end
next env.redirect url
end
thumbnail = "https://i.ytimg.com/vi/#{id}/mqdefault.jpg" thumbnail = "https://i.ytimg.com/vi/#{id}/mqdefault.jpg"
rendered "embed" rendered "embed"

View file

@ -40,7 +40,11 @@ video, #my_video, .video-js, .vjs-default-skin
<% end %> <% end %>
<% else %> <% else %>
<% fmt_stream.each_with_index do |fmt, i| %> <% fmt_stream.each_with_index do |fmt, i| %>
<% if quality != "hd720" %>
<source src="<%= fmt["url"] %>" type='<%= fmt["type"] %>' label="<%= fmt["label"] %>" selected="<%= quality == fmt["label"].split(" - ")[0] %>">
<% else %>
<source src="<%= fmt["url"] %>" type='<%= fmt["type"] %>' label="<%= fmt["label"] %>" selected="<%= i == 0 ? true : false %>"> <source src="<%= fmt["url"] %>" type='<%= fmt["type"] %>' label="<%= fmt["label"] %>" selected="<%= i == 0 ? true : false %>">
<% end %>
<% end %> <% end %>
<% end %> <% end %>
</video> </video>