summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/invidious/comments.cr10
-rw-r--r--src/invidious/videos.cr3
-rw-r--r--src/invidious/views/components/player.ecr7
-rw-r--r--src/invidious/views/watch.ecr4
4 files changed, 18 insertions, 6 deletions
diff --git a/src/invidious/comments.cr b/src/invidious/comments.cr
index a8bbf74b..13ebbd73 100644
--- a/src/invidious/comments.cr
+++ b/src/invidious/comments.cr
@@ -195,8 +195,14 @@ def fetch_youtube_comments(id, db, cursor, format, locale, thin_mode, region, so
end
if node_replies && !response["commentRepliesContinuation"]?
- reply_count = (node_replies["moreText"]["simpleText"]? || node_replies["moreText"]["runs"]?.try &.[0]?.try &.["text"]?)
- .try &.as_s.gsub(/\D/, "").to_i? || 1
+ if node_replies["moreText"]?
+ reply_count = (node_replies["moreText"]["simpleText"]? || node_replies["moreText"]["runs"]?.try &.[0]?.try &.["text"]?)
+ .try &.as_s.gsub(/\D/, "").to_i? || 1
+ elsif node_replies["viewReplies"]?
+ reply_count = node_replies["viewReplies"]["buttonRenderer"]["text"]?.try &.["runs"][1]?.try &.["text"]?.try &.as_s.to_i? || 1
+ else
+ reply_count = 1
+ end
continuation = node_replies["continuations"]?.try &.as_a[0]["nextContinuationData"]["continuation"].as_s
continuation ||= ""
diff --git a/src/invidious/videos.cr b/src/invidious/videos.cr
index b96f4288..95d9a80c 100644
--- a/src/invidious/videos.cr
+++ b/src/invidious/videos.cr
@@ -534,7 +534,8 @@ struct Video
end
def live_now
- info["videoDetails"]["isLiveContent"]?.try &.as_bool || false
+ info["microformat"]?.try &.["playerMicroformatRenderer"]?
+ .try &.["liveBroadcastDetails"]?.try &.["isLiveNow"]?.try &.as_bool || false
end
def is_listed
diff --git a/src/invidious/views/components/player.ecr b/src/invidious/views/components/player.ecr
index a898a41f..cff3e60a 100644
--- a/src/invidious/views/components/player.ecr
+++ b/src/invidious/views/components/player.ecr
@@ -24,9 +24,9 @@
<% end %>
<% end %>
- <% preferred_captions.each_with_index do |caption, i| %>
+ <% preferred_captions.each do |caption| %>
<track kind="captions" src="/api/v1/captions/<%= video.id %>?label=<%= caption.name.simpleText %>&hl=<%= env.get("preferences").as(Preferences).locale %>"
- label="<%= caption.name.simpleText %>" <% if i == 0 %>default<% end %>>
+ label="<%= caption.name.simpleText %>">
<% end %>
<% captions.each do |caption| %>
@@ -42,7 +42,8 @@
"aspect_ratio" => aspect_ratio,
"title" => video.title,
"description" => HTML.escape(video.short_description),
- "thumbnail" => thumbnail
+ "thumbnail" => thumbnail,
+ "preferred_caption_found" => !preferred_captions.empty?
}.to_pretty_json
%>
</script>
diff --git a/src/invidious/views/watch.ecr b/src/invidious/views/watch.ecr
index 924914a5..a86e23b2 100644
--- a/src/invidious/views/watch.ecr
+++ b/src/invidious/views/watch.ecr
@@ -81,6 +81,10 @@
<h3>
<%= video.premiere_timestamp.try { |t| translate(locale, "Premieres in `x`", recode_date((t - Time.utc).ago, locale)) } %>
</h3>
+ <% elsif video.live_now %>
+ <h3>
+ <%= video.premiere_timestamp.try { |t| translate(locale, "Started streaming `x` ago", recode_date((Time.utc - t).ago, locale)) } %>
+ </h3>
<% end %>
</div>