diff --git a/src/invidious/routes/watch.cr b/src/invidious/routes/watch.cr index 7a68a145..dcf302a5 100644 --- a/src/invidious/routes/watch.cr +++ b/src/invidious/routes/watch.cr @@ -167,9 +167,13 @@ module Invidious::Routes::Watch url = audio_streams[0]["url"].as_s if params.quality.ends_with? "k" + requested_audio_bitrate = params.quality.rchop("k").to_i? audio_streams.each do |fmt| - if fmt["bitrate"].as_i == params.quality.rchop("k").to_i - url = fmt["url"].as_s + if requested_audio_bitrate + bitrate = fmt["bitrate"].as_i + if (bitrate / 1000).round.to_i == requested_audio_bitrate || bitrate == requested_audio_bitrate + url = fmt["url"].as_s + end end end end diff --git a/src/invidious/views/components/player.ecr b/src/invidious/views/components/player.ecr index fbd472e0..e28788b1 100644 --- a/src/invidious/views/components/player.ecr +++ b/src/invidious/views/components/player.ecr @@ -14,12 +14,18 @@ <% # default to 128k m4a stream best_m4a_stream_index = 0 best_m4a_stream_bitrate = 0 + requested_audio_bitrate = params.quality.ends_with?("k") ? params.quality.rchop("k").to_i? : nil audio_streams.each_with_index do |fmt, i| bandwidth = fmt["bitrate"].as_i if (fmt["mimeType"].as_s.starts_with?("audio/mp4") && bandwidth > best_m4a_stream_bitrate) best_m4a_stream_bitrate = bandwidth best_m4a_stream_index = i end + if requested_audio_bitrate + if (bandwidth / 1000).round.to_i == requested_audio_bitrate || bandwidth == requested_audio_bitrate + best_m4a_stream_index = i + end + end end audio_streams.each_with_index do |fmt, i| @@ -28,7 +34,7 @@ src_url = invidious_companion.public_url.to_s + src_url + "&check=#{invidious_companion_check_id}" if (invidious_companion) - bitrate = fmt["bitrate"] + bitrate = (fmt["bitrate"].as_i / 1000).round.to_i mimetype = HTML.escape(fmt["mimeType"].as_s) selected = (i == best_m4a_stream_index)