From 46344653688f733c720fe87b7a17d6b56bb25554 Mon Sep 17 00:00:00 2001 From: Daniil Hikkamorii Date: Thu, 23 Nov 2023 19:35:21 +0200 Subject: [PATCH] Provide enchanced audio selection for user With this change, instdead of showing bitrate in bps to the user, user will see pure bitrate in kbps or codec and bitrate for when listening mode is used. --- src/invidious/routes/api/manifest.cr | 4 +++- src/invidious/views/components/player.ecr | 8 ++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/invidious/routes/api/manifest.cr b/src/invidious/routes/api/manifest.cr index 662d1002..9e8ee4fd 100644 --- a/src/invidious/routes/api/manifest.cr +++ b/src/invidious/routes/api/manifest.cr @@ -68,7 +68,9 @@ module Invidious::Routes::API::Manifest # However, most players don't support auto quality switching, so we have to trick them # into providing a quality selector. # See https://github.com/iv-org/invidious/issues/3074 for more details. - xml.element("AdaptationSet", id: i, mimeType: mime_type, startWithSAP: 1, subsegmentAlignment: true, label: fmt["bitrate"].to_s + "k") do + bitrate = ( fmt["bitrate"].as_i / 1000 ).round(0).to_i.to_s + "k" + + xml.element("AdaptationSet", id: i, mimeType: mime_type, startWithSAP: 1, subsegmentAlignment: true, label: bitrate) do codecs = fmt["mimeType"].as_s.split("codecs=")[1].strip('"') bandwidth = fmt["bitrate"].as_i itag = fmt["itag"].as_i diff --git a/src/invidious/views/components/player.ecr b/src/invidious/views/components/player.ecr index c3c02df0..7348ebd2 100644 --- a/src/invidious/views/components/player.ecr +++ b/src/invidious/views/components/player.ecr @@ -22,12 +22,16 @@ src_url = "/latest_version?id=#{video.id}&itag=#{fmt["itag"]}" src_url += "&local=true" if params.local - bitrate = fmt["bitrate"] + codec = fmt["mimeType"].as_s.split(";")[0].split("/")[1] + codec = codec == "webm" ? "opus" : codec + + bitrate = ( fmt["bitrate"].as_i / 1000 ).round(0).to_i.to_s + quality_audio = "#{codec} @ #{bitrate}k" mimetype = HTML.escape(fmt["mimeType"].as_s) selected = (i == best_m4a_stream_index) %> - + <% if !params.local && !CONFIG.disabled?("local") %> <% end %>