diff options
| author | Samantaz Fox <coding@samantaz.fr> | 2023-12-06 18:20:26 +0100 |
|---|---|---|
| committer | Samantaz Fox <coding@samantaz.fr> | 2023-12-06 18:20:26 +0100 |
| commit | e8a14446af720a67000c6f25a5c611cda30a1594 (patch) | |
| tree | 0e87af0fb7f1d663f91935b0e4600b3d8117a9eb /src | |
| parent | 813dc6de1ca708f9babe7db9c4451c585e0dd20f (diff) | |
| parent | 07de1e236f9225ccbebbccedb76036a340837430 (diff) | |
| download | invidious-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.cr | 18 |
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? |
