forked from midou/invidious
Videos: Append '&mpd_version=5' to DASH manifest URL
This makes Youtube return a MPD manifest with templates rather than lengthy <SegmentList>. The returned manifest is about 44 times smaller.
This commit is contained in:
parent
2414e7db41
commit
07de1e236f
@ -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?
|
||||
|
Loading…
Reference in New Issue
Block a user