diff options
| -rw-r--r-- | README.md | 8 | ||||
| -rw-r--r-- | assets/js/player.js | 4 | ||||
| -rw-r--r-- | docker-compose.yml | 2 | ||||
| -rw-r--r-- | locales/fi.json | 4 | ||||
| -rw-r--r-- | locales/it.json | 4 | ||||
| -rw-r--r-- | locales/nb-NO.json | 32 | ||||
| -rw-r--r-- | src/invidious/videos.cr | 4 | ||||
| -rw-r--r-- | src/invidious/yt_backend/youtube_api.cr | 7 |
8 files changed, 48 insertions, 17 deletions
@@ -31,7 +31,7 @@ • <a href="https://instances.invidious.io/">Instances list</a> • - <a href="https://docs.invidious.io/FAQ/">FAQ</a> + <a href="https://docs.invidious.io/faq/">FAQ</a> • <a href="https://docs.invidious.io/">Documentation</a> • @@ -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", + }, } #################################################################### |
