Force redirect for videos without audio

This commit is contained in:
Omar Roth 2019-08-08 22:09:34 -05:00
parent 66b949bed1
commit 2d955dae48
No known key found for this signature in database
GPG key ID: B8254FB7EC3D37F2

View file

@ -463,8 +463,16 @@ get "/watch" do |env|
# Older videos may not have audio sources available. # Older videos may not have audio sources available.
# We redirect here so they're not unplayable # We redirect here so they're not unplayable
if params.listen && audio_streams.empty? if audio_streams.empty?
next env.redirect "/watch?#{env.params.query}&listen=0" if params.quality == "dash"
env.params.query.delete_all("quality")
env.params.query["quality"] = "medium"
next env.redirect "/watch?#{env.params.query}"
elsif params.listen
env.params.query.delete_all("listen")
env.params.query["listen"] = "0"
next env.redirect "/watch?#{env.params.query}"
end
end end
captions = video.captions captions = video.captions
@ -689,6 +697,17 @@ get "/embed/:id" do |env|
video_streams = video.video_streams(adaptive_fmts) video_streams = video.video_streams(adaptive_fmts)
audio_streams = video.audio_streams(adaptive_fmts) audio_streams = video.audio_streams(adaptive_fmts)
if audio_streams.empty?
if params.quality == "dash"
env.params.query.delete_all("quality")
next env.redirect "/embed/#{video_id}?#{env.params.query}"
elsif params.listen
env.params.query.delete_all("listen")
env.params.query["listen"] = "0"
next env.redirect "/embed/#{video_id}?#{env.params.query}"
end
end
captions = video.captions captions = video.captions
preferred_captions = captions.select { |caption| preferred_captions = captions.select { |caption|