Add support for '/embed/live_stream'
This commit is contained in:
parent
6215259565
commit
607d6125fc
@ -559,7 +559,8 @@ get "/embed/:id" do |env|
|
|||||||
|
|
||||||
# YouTube embed supports `videoseries` with either `list=PLID`
|
# YouTube embed supports `videoseries` with either `list=PLID`
|
||||||
# or `playlist=VIDEO_ID,VIDEO_ID`
|
# or `playlist=VIDEO_ID,VIDEO_ID`
|
||||||
if id == "videoseries"
|
case id
|
||||||
|
when "videoseries"
|
||||||
url = ""
|
url = ""
|
||||||
|
|
||||||
if plid
|
if plid
|
||||||
@ -584,7 +585,26 @@ get "/embed/:id" do |env|
|
|||||||
end
|
end
|
||||||
|
|
||||||
next env.redirect url
|
next env.redirect url
|
||||||
elsif id.size > 11
|
when "live_stream"
|
||||||
|
client = make_client(YT_URL)
|
||||||
|
response = client.get("/embed/live_stream?channel=#{env.params.query["channel"]? || ""}")
|
||||||
|
video_id = response.body.match(/"video_id":"(?<video_id>[a-zA-Z0-9_-]{11})"/).try &.["video_id"]
|
||||||
|
|
||||||
|
env.params.query.delete_all("channel")
|
||||||
|
|
||||||
|
if !video_id || video_id == "live_stream"
|
||||||
|
error_message = "Video is unavailable."
|
||||||
|
next templated "error"
|
||||||
|
end
|
||||||
|
|
||||||
|
url = "/embed/#{video_id}"
|
||||||
|
|
||||||
|
if env.params.query.size > 0
|
||||||
|
url += "?#{env.params.query}"
|
||||||
|
end
|
||||||
|
|
||||||
|
next env.redirect url
|
||||||
|
when id.size > 11
|
||||||
url = "/embed/#{id[0, 11]}"
|
url = "/embed/#{id[0, 11]}"
|
||||||
|
|
||||||
if env.params.query.size > 0
|
if env.params.query.size > 0
|
||||||
|
Loading…
Reference in New Issue
Block a user