summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSamantaz Fox <coding@samantaz.fr>2023-12-06 18:20:26 +0100
committerSamantaz Fox <coding@samantaz.fr>2023-12-06 18:20:26 +0100
commite8a14446af720a67000c6f25a5c611cda30a1594 (patch)
tree0e87af0fb7f1d663f91935b0e4600b3d8117a9eb /src
parent813dc6de1ca708f9babe7db9c4451c585e0dd20f (diff)
parent07de1e236f9225ccbebbccedb76036a340837430 (diff)
downloadinvidious-e8a14446af720a67000c6f25a5c611cda30a1594.tar.gz
invidious-e8a14446af720a67000c6f25a5c611cda30a1594.tar.bz2
invidious-e8a14446af720a67000c6f25a5c611cda30a1594.zip
Videos: Append '&mpd_version=5' to DASH manifest URL (#4196)
Diffstat (limited to 'src')
-rw-r--r--src/invidious/videos.cr18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/invidious/videos.cr b/src/invidious/videos.cr
index 9fbd1374..a8f02056 100644
--- a/src/invidious/videos.cr
+++ b/src/invidious/videos.cr
@@ -227,8 +227,22 @@ struct Video
info.dig?("streamingData", "hlsManifestUrl").try &.as_s
end
- def dash_manifest_url
- info.dig?("streamingData", "dashManifestUrl").try &.as_s
+ def dash_manifest_url : String?
+ raw_dash_url = info.dig?("streamingData", "dashManifestUrl").try &.as_s
+ return nil if raw_dash_url.nil?
+
+ # Use manifest v5 parameter to reduce file size
+ # See https://github.com/iv-org/invidious/issues/4186
+ dash_url = URI.parse(raw_dash_url)
+ dash_query = dash_url.query || ""
+
+ if dash_query.empty?
+ dash_url.path = "#{dash_url.path}/mpd_version/5"
+ else
+ dash_url.query = "#{dash_query}&mpd_version=5"
+ end
+
+ return dash_url.to_s
end
def genre_url : String?