Add 'local=true' to hlsUrl

This commit is contained in:
Omar Roth 2019-04-25 12:41:35 -05:00
parent f15b7cebac
commit 8c2958b86d
2 changed files with 25 additions and 8 deletions

View file

@ -4602,13 +4602,21 @@ get "/api/manifest/hls_variant/*" do |env|
next next
end end
local = env.params.query["local"]?.try &.== "true"
env.response.content_type = "application/x-mpegURL" env.response.content_type = "application/x-mpegURL"
env.response.headers.add("Access-Control-Allow-Origin", "*") env.response.headers.add("Access-Control-Allow-Origin", "*")
host_url = make_host_url(config, Kemal.config) host_url = make_host_url(config, Kemal.config)
manifest = manifest.body manifest = manifest.body
manifest.gsub("https://www.youtube.com", host_url)
if local
manifest = manifest.gsub("https://www.youtube.com", host_url)
manifest = manifest.gsub("index.m3u8", "index.m3u8?local=true")
end
manifest
end end
get "/api/manifest/hls_playlist/*" do |env| get "/api/manifest/hls_playlist/*" do |env|
@ -4620,15 +4628,24 @@ get "/api/manifest/hls_playlist/*" do |env|
next next
end end
host_url = make_host_url(config, Kemal.config) local = env.params.query["local"]?.try &.== "true"
manifest = manifest.body.gsub("https://www.youtube.com", host_url)
manifest = manifest.gsub(/https:\/\/r\d---.{11}\.c\.youtube\.com/, host_url)
fvip = manifest.match(/hls_chunk_host\/r(?<fvip>\d)---/).not_nil!["fvip"]
manifest = manifest.gsub("seg.ts", "seg.ts/fvip/#{fvip}")
env.response.content_type = "application/x-mpegURL" env.response.content_type = "application/x-mpegURL"
env.response.headers.add("Access-Control-Allow-Origin", "*") env.response.headers.add("Access-Control-Allow-Origin", "*")
host_url = make_host_url(config, Kemal.config)
manifest = manifest.body
if local
manifest = manifest.gsub("https://www.youtube.com", host_url)
manifest = manifest.gsub(/https:\/\/r\d---.{11}\.c\.youtube\.com/, host_url)
manifest = manifest.gsub("seg.ts", "seg.ts?local=true")
end
fvip = manifest.match(/hls_chunk_host\/r(?<fvip>\d+)---/).not_nil!["fvip"]
manifest = manifest.gsub("seg.ts", "seg.ts/fvip/#{fvip}")
manifest manifest
end end

View file

@ -7,7 +7,7 @@
<% if params[:video_loop] %>loop<% end %> <% if params[:video_loop] %>loop<% end %>
<% if params[:controls] %>controls<% end %>> <% if params[:controls] %>controls<% end %>>
<% if hlsvp %> <% if hlsvp %>
<source src="<%= hlsvp %>" type="application/x-mpegURL" label="livestream"> <source src="<%= hlsvp %>?local=true" type="application/x-mpegURL" label="livestream">
<% else %> <% else %>
<% if params[:listen] %> <% if params[:listen] %>
<% audio_streams.each_with_index do |fmt, i| %> <% audio_streams.each_with_index do |fmt, i| %>