mirror of
https://github.com/iv-org/invidious.git
synced 2026-06-15 11:26:45 -05:00
fix: Do not append query params quality=medium to videos that are about to premiere (#5755)
* fix: Do not append query params `quality=medium` to videos that are about to premiere Video premieres do not have `audio_streams` and they aren't `video.live_now == true` either, therefore we skip the checks that are made for older videos (`if audio_streams.empty? && !video.live_now` closure) if the video is a premiere. This commit also adds the `microformat` field to the `info` instance variable of the `Video` struct, since it's needed for the function `Video#premiere_timestamp : Time?`. This is more like a quick fix than a proper fix because in `Invidious::Videos::Parser#parse_video_info`, `premiere_timestamp` is gathered from the `microformat` JSON Object but is used to set the `published` hash key for the `params` variable. The parsers and structs really need a rework :/ * Revert "fix: Do not append query params `quality=medium` to videos that are about to premiere" This reverts commit 5cfc8dace82590ea6a41c849c9c39b1b7ba95fe7. * chore: build premiere_timestamp using video_type and published time
This commit is contained in:
parent
1a5a71b086
commit
e96ad036ca
@ -129,6 +129,8 @@ module Invidious::Routes::Watch
|
|||||||
video_streams = video.video_streams
|
video_streams = video.video_streams
|
||||||
audio_streams = video.audio_streams
|
audio_streams = video.audio_streams
|
||||||
|
|
||||||
|
# Videos that are a premiere do not have audio streams.
|
||||||
|
if video.premiere_timestamp.nil?
|
||||||
# Older videos may not have audio sources available.
|
# Older videos may not have audio sources available.
|
||||||
# We redirect here so they're not unplayable
|
# We redirect here so they're not unplayable
|
||||||
if audio_streams.empty? && !video.live_now
|
if audio_streams.empty? && !video.live_now
|
||||||
@ -142,6 +144,7 @@ module Invidious::Routes::Watch
|
|||||||
return env.redirect "/watch?#{env.params.query}"
|
return env.redirect "/watch?#{env.params.query}"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
captions = video.captions
|
captions = video.captions
|
||||||
|
|
||||||
|
|||||||
@ -81,10 +81,11 @@ struct Video
|
|||||||
end
|
end
|
||||||
|
|
||||||
def premiere_timestamp : Time?
|
def premiere_timestamp : Time?
|
||||||
info
|
if self.video_type == VideoType::Scheduled
|
||||||
.dig?("microformat", "playerMicroformatRenderer", "liveBroadcastDetails", "startTimestamp")
|
return info["published"]?
|
||||||
.try { |t| Time.parse_rfc3339(t.as_s) }
|
.try { |t| Time.parse_rfc3339(t.as_s) }
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def related_videos
|
def related_videos
|
||||||
info["relatedVideos"]?.try &.as_a.map { |h| h.as_h.transform_values &.as_s } || [] of Hash(String, String)
|
info["relatedVideos"]?.try &.as_a.map { |h| h.as_h.transform_values &.as_s } || [] of Hash(String, String)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user