diff --git a/assets/css/default.css b/assets/css/default.css index 8ff2afc3..454dc92d 100644 --- a/assets/css/default.css +++ b/assets/css/default.css @@ -173,6 +173,7 @@ body a.pure-button-primary, .pure-button-primary, .pure-button-secondary { + white-space: normal; border: 1px solid #a0a0a0; border-radius: 3px; margin: 0 .4em; diff --git a/assets/js/player.js b/assets/js/player.js index 6a99c3b8..ecb46e2d 100644 --- a/assets/js/player.js +++ b/assets/js/player.js @@ -147,16 +147,18 @@ player.on('timeupdate', function () { // YouTube links - let elem_yt_watch = document.getElementById('link-yt-watch'); - if (elem_yt_watch) { - let base_url_yt_watch = elem_yt_watch.getAttribute('data-base-url'); - elem_yt_watch.href = addCurrentTimeToURL(base_url_yt_watch); - } - - let elem_yt_embed = document.getElementById('link-yt-embed'); - if (elem_yt_embed) { - let base_url_yt_embed = elem_yt_embed.getAttribute('data-base-url'); - elem_yt_embed.href = addCurrentTimeToURL(base_url_yt_embed); + if (!video_data.live_now) { + let elem_yt_watch = document.getElementById('link-yt-watch'); + if (elem_yt_watch) { + let base_url_yt_watch = elem_yt_watch.getAttribute('data-base-url'); + elem_yt_watch.href = addCurrentTimeToURL(base_url_yt_watch); + } + + let elem_yt_embed = document.getElementById('link-yt-embed'); + if (elem_yt_embed) { + let base_url_yt_embed = elem_yt_embed.getAttribute('data-base-url'); + elem_yt_embed.href = addCurrentTimeToURL(base_url_yt_embed); + } } // Invidious links diff --git a/locales/en-US.json b/locales/en-US.json index 521fb78a..0618f8c4 100644 --- a/locales/en-US.json +++ b/locales/en-US.json @@ -416,6 +416,7 @@ "Default": "Default", "Music": "Music", "Gaming": "Gaming", + "Livestreams": "Livestreams", "News": "News", "Movies": "Movies", "Download": "Download", diff --git a/src/invidious/routes/feeds.cr b/src/invidious/routes/feeds.cr index 247992a4..b011b480 100644 --- a/src/invidious/routes/feeds.cr +++ b/src/invidious/routes/feeds.cr @@ -6,6 +6,7 @@ module Invidious::Routes::Feeds Music Gaming Movies + Livestreams end def self.view_all_playlists_redirect(env) diff --git a/src/invidious/trending.cr b/src/invidious/trending.cr index d14cde5d..e289ed5b 100644 --- a/src/invidious/trending.cr +++ b/src/invidious/trending.cr @@ -4,6 +4,8 @@ def fetch_trending(trending_type, region, locale) plid = nil + browse_id = "FEtrending" + case trending_type.try &.downcase when "music" params = "4gINGgt5dG1hX2NoYXJ0cw%3D%3D" @@ -11,12 +13,15 @@ def fetch_trending(trending_type, region, locale) params = "4gIcGhpnYW1pbmdfY29ycHVzX21vc3RfcG9wdWxhcg%3D%3D" when "movies" params = "4gIKGgh0cmFpbGVycw%3D%3D" + when "livestreams" + browse_id = "UC4R8DWoMoI7CAwX8_LjQHig" + params = "EgdsaXZldGFikgEDCKEK" else # Default params = "" end client_config = YoutubeAPI::ClientConfig.new(region: region) - initial_data = YoutubeAPI.browse("FEtrending", params: params, client_config: client_config) + initial_data = YoutubeAPI.browse(browse_id, params: params, client_config: client_config) items, _ = extract_items(initial_data) diff --git a/src/invidious/views/watch.ecr b/src/invidious/views/watch.ecr index a468a56f..34a70200 100644 --- a/src/invidious/views/watch.ecr +++ b/src/invidious/views/watch.ecr @@ -78,7 +78,8 @@ we're going to need to do it here in order to allow for translations. "comments_enabled" => video.comments?, "projection_type" => video.projection_type, "local_disabled" => CONFIG.disabled?("local"), - "support_reddit" => true + "support_reddit" => true, + "live_now" => video.live_now }.to_pretty_json %>