summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md8
-rw-r--r--assets/js/player.js4
-rw-r--r--docker-compose.yml2
-rw-r--r--locales/fi.json4
-rw-r--r--locales/it.json4
-rw-r--r--locales/nb-NO.json32
-rw-r--r--src/invidious/videos.cr4
-rw-r--r--src/invidious/yt_backend/youtube_api.cr7
8 files changed, 48 insertions, 17 deletions
diff --git a/README.md b/README.md
index d62e961e..2d7bba93 100644
--- a/README.md
+++ b/README.md
@@ -31,7 +31,7 @@
 • 
<a href="https://instances.invidious.io/">Instances list</a>
&nbsp;•&nbsp;
- <a href="https://docs.invidious.io/FAQ/">FAQ</a>
+ <a href="https://docs.invidious.io/faq/">FAQ</a>
&nbsp;•&nbsp;
<a href="https://docs.invidious.io/">Documentation</a>
&nbsp;•&nbsp;
@@ -88,7 +88,7 @@
**Technical features**
- Embedded video support
-- [Developer API](https://docs.invidious.io/API/)
+- [Developer API](https://docs.invidious.io/api/)
- Does not use official YouTube APIs
- No Contributor License Agreement (CLA)
@@ -101,7 +101,7 @@
**Hosting invidious:**
-- [Follow the installation instructions](https://docs.invidious.io/Installation/)
+- [Follow the installation instructions](https://docs.invidious.io/installation/)
## Documentation
@@ -119,7 +119,7 @@ embedded youtube videos on other websites with invidious.
The documentation contains a list of browser extensions that we recommended to use along with Invidious.
-You can read more here: https://docs.invidious.io/Extensions/
+You can read more here: https://docs.invidious.io/applications/
## Contribute
diff --git a/assets/js/player.js b/assets/js/player.js
index a1a2cd16..74cdd987 100644
--- a/assets/js/player.js
+++ b/assets/js/player.js
@@ -675,8 +675,8 @@ if (player_data.preferred_caption_found) {
if (navigator.vendor == "Apple Computer, Inc." && video_data.params.listen) {
player.on('loadedmetadata', function () {
player.on('timeupdate', function () {
- if (player.remainingTime() < player.duration() / 2) {
- player.currentTime(player.duration() + 1);
+ if (player.remainingTime() < player.duration() / 2 && player.remainingTime() >= 2) {
+ player.currentTime(player.duration() - 1);
}
});
});
diff --git a/docker-compose.yml b/docker-compose.yml
index cd1df4ff..fa14a8e8 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -39,7 +39,7 @@ services:
- invidious-db
invidious-db:
- image: docker.io/library/postgres:14
+ image: docker.io/library/postgres:13
restart: unless-stopped
volumes:
- postgresdata:/var/lib/postgresql/data
diff --git a/locales/fi.json b/locales/fi.json
index 07e772fe..5aa7c8b7 100644
--- a/locales/fi.json
+++ b/locales/fi.json
@@ -440,7 +440,7 @@
"footer_modfied_source_code": "Muokattu lähdekoodi",
"Japanese (auto-generated)": "Japani (automaattisesti luotu)",
"German (auto-generated)": "Saksa (automaattisesti luotu)",
- "Portuguese (auto-generated)": "Portugali (automaattisesti luotu)",
+ "Portuguese (auto-generated)": "portugali (automaattisesti luotu)",
"Russian (auto-generated)": "Venäjä (automaattisesti luotu)",
"preferences_watch_history_label": "Ota katseluhistoria käyttöön: ",
"English (United Kingdom)": "Englanti (Iso-Britannia)",
@@ -456,7 +456,7 @@
"Interlingue": "Interlingue",
"Italian (auto-generated)": "Italia (automaattisesti luotu)",
"Korean (auto-generated)": "Korea (automaattisesti luotu)",
- "Portuguese (Brazil)": "Portugali (Brasilia)",
+ "Portuguese (Brazil)": "portugali (Brasilia)",
"Spanish (auto-generated)": "Espanja (automaattisesti luotu)",
"Spanish (Mexico)": "Espanja (Meksiko)",
"Spanish (Spain)": "Espanja (Espanja)",
diff --git a/locales/it.json b/locales/it.json
index f4614895..ce4843b5 100644
--- a/locales/it.json
+++ b/locales/it.json
@@ -27,7 +27,7 @@
"No": "No",
"Import and Export Data": "Importazione ed esportazione dati",
"Import": "Importa",
- "Import Invidious data": "Importa dati Invidious",
+ "Import Invidious data": "Importa dati Invidious in formato JSON",
"Import YouTube subscriptions": "Importa le iscrizioni da YouTube",
"Import FreeTube subscriptions (.db)": "Importa le iscrizioni da FreeTube (.db)",
"Import NewPipe subscriptions (.json)": "Importa le iscrizioni da NewPipe (.json)",
@@ -35,7 +35,7 @@
"Export": "Esporta",
"Export subscriptions as OPML": "Esporta gli abbonamenti come OPML",
"Export subscriptions as OPML (for NewPipe & FreeTube)": "Esporta gli abbonamenti come OPML (per NewPipe e FreeTube)",
- "Export data as JSON": "Esporta i dati in formato JSON",
+ "Export data as JSON": "Esporta i dati Invidious in formato JSON",
"Delete account?": "Eliminare l'account?",
"History": "Cronologia",
"An alternative front-end to YouTube": "Un'interfaccia alternativa per YouTube",
diff --git a/locales/nb-NO.json b/locales/nb-NO.json
index a0b7c510..2c6006be 100644
--- a/locales/nb-NO.json
+++ b/locales/nb-NO.json
@@ -29,7 +29,7 @@
"Export": "Eksporter",
"Export subscriptions as OPML": "Eksporter abonnementer som OPML",
"Export subscriptions as OPML (for NewPipe & FreeTube)": "Eksporter abonnementer som OPML (for NewPipe og FreeTube)",
- "Export data as JSON": "Eksporter data som JSON",
+ "Export data as JSON": "Eksporter Invidiousdata som JSON",
"Delete account?": "Slett konto?",
"History": "Historikk",
"An alternative front-end to YouTube": "En alternativ grenseflate for YouTube",
@@ -66,7 +66,7 @@
"preferences_related_videos_label": "Vis relaterte videoer? ",
"preferences_annotations_label": "Vis merknader som forvalg? ",
"preferences_extend_desc_label": "Utvid videobeskrivelse automatisk: ",
- "preferences_vr_mode_label": "Interaktive 360-gradersfilmer: ",
+ "preferences_vr_mode_label": "Interaktive 360-gradersfilmer (krever WebGL): ",
"preferences_category_visual": "Visuelle innstillinger",
"preferences_player_style_label": "Avspillerstil: ",
"Dark mode: ": "Mørk drakt: ",
@@ -199,7 +199,7 @@
"No such user": "Ugyldig bruker",
"Token is expired, please try again": "Symbol utløpt, prøv igjen",
"English": "Engelsk",
- "English (auto-generated)": "Engelsk (auto-generert)",
+ "English (auto-generated)": "Engelsk (laget automatisk)",
"Afrikaans": "Afrikansk",
"Albanian": "Albansk",
"Amharic": "Amharisk",
@@ -437,5 +437,29 @@
"crash_page_refresh": "forsøkt å <a href=\"`x`\">laste siden på nytt</a>",
"crash_page_switch_instance": "forsøkt et <a href=\"`x`\">annet eksemplar</a>",
"crash_page_before_reporting": "Før du rapporterer en feil, sikre at du har:",
- "crash_page_report_issue": "Hvis intet av det overnevnte hjalp, <a href=\"`x`\">lag en ny utfordring på Github</a> (fortrinnsvis på engelsk) og ta med følgende tekstbit i meldingen dit (IKKE oversett denne teksten):"
+ "crash_page_report_issue": "Hvis intet av det overnevnte hjalp, <a href=\"`x`\">lag en ny utfordring på Github</a> (fortrinnsvis på engelsk) og ta med følgende tekstbit i meldingen dit (IKKE oversett denne teksten):",
+ "English (United Kingdom)": "Engelsk (Storbritannia)",
+ "English (United States)": "Engelsk (USA)",
+ "Cantonese (Hong Kong)": "Kantonesisk (Hong Kong)",
+ "Portuguese (Brazil)": "Portugisisk (Brasil)",
+ "Spanish (Mexico)": "Spansk (Mexico)",
+ "Spanish (Spain)": "Spansk (Spania)",
+ "Spanish (auto-generated)": "Spansk (laget automatisk)",
+ "Vietnamese (auto-generated)": "Vietnamesisk (laget automatisk)",
+ "preferences_watch_history_label": "Aktiver seerhistorikk: ",
+ "Chinese": "Kinesisk",
+ "Chinese (China)": "Kinesisk (Kina)",
+ "Chinese (Hong Kong)": "Kinesisk (Hong Kong)",
+ "Chinese (Taiwan)": "Kinesisk (Taiwan)",
+ "French (auto-generated)": "Fransk (laget automatisk)",
+ "German (auto-generated)": "Tysk (laget automatisk)",
+ "Indonesian (auto-generated)": "Indonesisk (laget automatisk)",
+ "Interlingue": "Interlingue",
+ "Italian (auto-generated)": "Italiensk (laget automatisk)",
+ "Japanese (auto-generated)": "Japansk (laget automatisk)",
+ "Korean (auto-generated)": "Koreansk (laget automatisk)",
+ "Portuguese (auto-generated)": "Portugisisk (laget automatisk)",
+ "Russian (auto-generated)": "Russisk (laget automatisk)",
+ "Dutch (auto-generated)": "Nederlandsk (laget automatisk)",
+ "Turkish (auto-generated)": "Tyrkisk (laget automatisk)"
}
diff --git a/src/invidious/videos.cr b/src/invidious/videos.cr
index 81fce5b8..b50e7b2c 100644
--- a/src/invidious/videos.cr
+++ b/src/invidious/videos.cr
@@ -585,7 +585,7 @@ struct Video
def allowed_regions
info
- .dig("microformat", "playerMicroformatRenderer", "availableCountries")
+ .dig?("microformat", "playerMicroformatRenderer", "availableCountries")
.try &.as_a.map &.as_s || [] of String
end
@@ -876,7 +876,7 @@ def extract_video_info(video_id : String, proxy_region : String? = nil, context_
client_config = YoutubeAPI::ClientConfig.new(proxy_region: proxy_region)
if context_screen == "embed"
- client_config.client_type = YoutubeAPI::ClientType::WebScreenEmbed
+ client_config.client_type = YoutubeAPI::ClientType::TvHtml5ScreenEmbed
end
player_response = YoutubeAPI.player(video_id: video_id, params: "", client_config: client_config)
diff --git a/src/invidious/yt_backend/youtube_api.cr b/src/invidious/yt_backend/youtube_api.cr
index d1b52a5a..2678ac6c 100644
--- a/src/invidious/yt_backend/youtube_api.cr
+++ b/src/invidious/yt_backend/youtube_api.cr
@@ -14,6 +14,7 @@ module YoutubeAPI
Android
AndroidEmbeddedPlayer
AndroidScreenEmbed
+ TvHtml5ScreenEmbed
end
# List of hard-coded values used by the different clients
@@ -60,6 +61,12 @@ module YoutubeAPI
api_key: "AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8",
screen: "EMBED",
},
+ ClientType::TvHtml5ScreenEmbed => {
+ name: "TVHTML5_SIMPLY_EMBEDDED_PLAYER",
+ version: "2.0",
+ api_key: "AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8",
+ screen: "EMBED",
+ },
}
####################################################################