summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--locales/ar.json10
-rw-r--r--locales/de.json8
-rw-r--r--locales/en-US.json10
-rw-r--r--locales/eo.json13
-rw-r--r--locales/es.json10
-rw-r--r--locales/eu.json12
-rw-r--r--locales/fr.json10
-rw-r--r--locales/it.json10
-rw-r--r--locales/nb_NO.json10
-rw-r--r--locales/nl.json10
-rw-r--r--locales/pl.json10
-rw-r--r--locales/ru.json8
-rw-r--r--locales/uk.json13
-rw-r--r--src/invidious.cr9
-rw-r--r--src/invidious/helpers/helpers.cr1
-rw-r--r--src/invidious/users.cr1
-rw-r--r--src/invidious/videos.cr5
-rw-r--r--src/invidious/views/components/player.ecr8
-rw-r--r--src/invidious/views/embed.ecr16
-rw-r--r--src/invidious/views/preferences.ecr7
-rw-r--r--src/invidious/views/watch.ecr24
21 files changed, 174 insertions, 31 deletions
diff --git a/locales/ar.json b/locales/ar.json
index 6221862e..6888496e 100644
--- a/locales/ar.json
+++ b/locales/ar.json
@@ -13,6 +13,8 @@
"Next page": "الصفحة الثانية",
"Previous page": "الصفحة السابقة",
"Clear watch history?": "مسح السجل ؟",
+ "Authorize token?": "",
+ "Authorize token for `x`?": "",
"Yes": "نعم",
"No": "لا",
"Import and Export Data": "استخراج و إضافة البيانات",
@@ -47,6 +49,7 @@
"Player preferences": "التفضيلات المشغل",
"Always loop: ": "كرر الفيديو دائما: ",
"Autoplay: ": "تشغيل تلقائى: ",
+ "Play next by default: ": "",
"Autoplay next video: ": "شغل الفيديو التالى تلقائى: ",
"Listen by default: ": "تشغيل النسخة السمعية تلقائى: ",
"Proxy videos? ": "عرض الفيديوهات عن طريق الوكيل(proxy) ؟",
@@ -80,6 +83,7 @@
"Clear watch history": "حذف سجل المشاهدة",
"Import/Export data": "إضافة\\إستخراج البيانات",
"Manage subscriptions": "إدارة المشتركين",
+ "Manage tokens": "",
"Watch history": "سجل المشاهدة",
"Delete account": "حذف الحساب",
"Administrator preferences": "إعدادات المدير",
@@ -92,9 +96,13 @@
"Report statistics? ": "إبلاغ الإحصائيات",
"Save preferences": "حفظ التفضيلات",
"Subscription manager": "مدير الإشتراكات",
+ "Token manager": "",
+ "Token": "",
"`x` subscriptions": "`x` مشتركين",
+ "`x` tokens": "",
"Import/Export": "إضافة\\إستخراج",
"unsubscribe": "إلغاء الإشتراك",
+ "revoke": "",
"Subscriptions": "الإشتراكات",
"`x` unseen notifications": "`x` إشعارات لم تشاهدها بعد ",
"search": "بحث",
@@ -284,8 +292,8 @@
"Gaming": "الألعاب",
"News": "الأخبار",
"Movies": "الأفلام",
- "Download as: ": "تحميل كـ",
"Download": "تحميل",
+ "Download as: ": "تحميل كـ",
"%A %B %-d, %Y": "",
"(edited)": "(تم تعديلة)",
"Youtube permalink of the comment": "رابط التعليق على اليوتيوب",
diff --git a/locales/de.json b/locales/de.json
index fd8c40f6..099ba6ba 100644
--- a/locales/de.json
+++ b/locales/de.json
@@ -13,6 +13,8 @@
"Next page": "Nächste Seite",
"Previous page": "Vorherige Seite",
"Clear watch history?": "Verlauf löschen?",
+ "Authorize token?": "",
+ "Authorize token for `x`?": "",
"Yes": "Ja",
"No": "Nein",
"Import and Export Data": "Import und Export Daten",
@@ -47,6 +49,7 @@
"Player preferences": "Playereinstellungen",
"Always loop: ": "Immer wiederholen: ",
"Autoplay: ": "Automatisch abspielen: ",
+ "Play next by default: ": "",
"Autoplay next video: ": "nächstes Video automatisch abspielen: ",
"Listen by default: ": "Nur Ton als Standard: ",
"Proxy videos? ": "",
@@ -80,6 +83,7 @@
"Clear watch history": "Verlauf löschen",
"Import/Export data": "Daten im- exportieren",
"Manage subscriptions": "Abonnements verwalten",
+ "Manage tokens": "",
"Watch history": "Verlauf",
"Delete account": "Account löschen",
"Administrator preferences": "",
@@ -92,9 +96,13 @@
"Report statistics? ": "",
"Save preferences": "Einstellungen speichern",
"Subscription manager": "Abonnementverwaltung",
+ "Token manager": "",
+ "Token": "",
"`x` subscriptions": "`x` Abonnements",
+ "`x` tokens": "",
"Import/Export": "Importieren/Exportieren",
"unsubscribe": "abbestellen",
+ "revoke": "",
"Subscriptions": "Abonnements",
"`x` unseen notifications": "`x` ungesehene Benachrichtigungen",
"search": "Suchen",
diff --git a/locales/en-US.json b/locales/en-US.json
index 4fbdbcc9..265acb60 100644
--- a/locales/en-US.json
+++ b/locales/en-US.json
@@ -13,6 +13,8 @@
"Next page": "Next page",
"Previous page": "Previous page",
"Clear watch history?": "Clear watch history?",
+ "Authorize token?": "Authorize token?",
+ "Authorize token for `x`?": "Authorize token for `x`?",
"Yes": "Yes",
"No": "No",
"Import and Export Data": "Import and Export Data",
@@ -47,6 +49,7 @@
"Player preferences": "Player preferences",
"Always loop: ": "Always loop: ",
"Autoplay: ": "Autoplay: ",
+ "Play next by default: ": "Play next by default: ",
"Autoplay next video: ": "Autoplay next video: ",
"Listen by default: ": "Listen by default: ",
"Proxy videos? ": "Proxy videos? ",
@@ -54,6 +57,8 @@
"Preferred video quality: ": "Preferred video quality: ",
"Player volume: ": "Player volume: ",
"Default comments: ": "Default comments: ",
+ "youtube": "youtube",
+ "reddit": "reddit",
"Default captions: ": "Default captions: ",
"Fallback captions: ": "Fallback captions: ",
"Show related videos? ": "Show related videos? ",
@@ -78,6 +83,7 @@
"Clear watch history": "Clear watch history",
"Import/Export data": "Import/Export data",
"Manage subscriptions": "Manage subscriptions",
+ "Manage tokens": "Manage tokens",
"Watch history": "Watch history",
"Delete account": "Delete account",
"Administrator preferences": "Administrator preferences",
@@ -90,9 +96,13 @@
"Report statistics? ": "Report statistics? ",
"Save preferences": "Save preferences",
"Subscription manager": "Subscription manager",
+ "Token manager": "Token manager",
+ "Token": "Token",
"`x` subscriptions": "`x` subscriptions",
+ "`x` tokens": "`x` tokens",
"Import/Export": "Import/Export",
"unsubscribe": "unsubscribe",
+ "revoke": "revoke",
"Subscriptions": "Subscriptions",
"`x` unseen notifications": "`x` unseen notifications",
"search": "search",
diff --git a/locales/eo.json b/locales/eo.json
index a6a83f28..859a3036 100644
--- a/locales/eo.json
+++ b/locales/eo.json
@@ -5,7 +5,6 @@
"Shared `x` ago": "Konigita antaŭ `x`",
"Unsubscribe": "Malaboni",
"Subscribe": "Aboni",
- "Login to subscribe to `x`": "Ensaluti por aboni je `x`",
"View channel on YouTube": "Vidi kanalon en YouTube",
"newest": "pli novaj",
"oldest": "pli malnovaj",
@@ -14,6 +13,8 @@
"Next page": "Sekva paĝo",
"Previous page": "Antaŭa paĝo",
"Clear watch history?": "Ĉu forigi vidohistorion?",
+ "Authorize token?": "",
+ "Authorize token for `x`?": "",
"Yes": "Jes",
"No": "Ne",
"Import and Export Data": "Importi kaj Eksporti Datumojn",
@@ -48,6 +49,7 @@
"Player preferences": "Spektilaj agordoj",
"Always loop: ": "Ĉiam ripeti: ",
"Autoplay: ": "Aŭtomate ludi: ",
+ "Play next by default: ": "",
"Autoplay next video: ": "Aŭtomate ludi sekvan videon: ",
"Listen by default: ": "Aŭskulti defaŭlte: ",
"Proxy videos? ": "Ĉu uzi prokuran servilon por videoj? ",
@@ -55,6 +57,8 @@
"Preferred video quality: ": "Preferita videkvalito: ",
"Player volume: ": "Ludila sonforteco: ",
"Default comments: ": "Defaŭltaj komentoj: ",
+ "youtube": "",
+ "reddit": "",
"Default captions: ": "Defaŭltaj subtekstoj: ",
"Fallback captions: ": "Retrodefaŭltaj subtekstoj: ",
"Show related videos? ": "Ĉu montri rilatajn videojn? ",
@@ -79,6 +83,7 @@
"Clear watch history": "Forigi vidohistorion",
"Import/Export data": "Importi/Eksporti datumojn",
"Manage subscriptions": "Administri abonojn",
+ "Manage tokens": "",
"Watch history": "Vidohistorio",
"Delete account": "Forigi konton",
"Administrator preferences": "Agordoj de administranto",
@@ -91,9 +96,13 @@
"Report statistics? ": "Ĉu raporti statistikojn? ",
"Save preferences": "Konservi agordojn",
"Subscription manager": "Administrilo de abonoj",
+ "Token manager": "",
+ "Token": "",
"`x` subscriptions": "`x` abonoj",
+ "`x` tokens": "",
"Import/Export": "Importi/Eksporti",
"unsubscribe": "malaboni",
+ "revoke": "",
"Subscriptions": "Abonoj",
"`x` unseen notifications": "`x` neviditaj sciigoj",
"search": "serĉi",
@@ -113,6 +122,7 @@
"Whitelisted regions: ": "Regionoj listigitaj en blanka listo: ",
"Blacklisted regions: ": "Regionoj listigitaj en nigra listo: ",
"Shared `x`": "Konigita `x`",
+ "`x` views": "",
"Premieres in `x`": "Premieras en `x`",
"Hi! Looks like you have JavaScript disabled. Click here to view comments, keep in mind it may take a bit longer to load.": "Saluton! Ŝajnas, ke vi havas Ĝavoskripton malebligitan. Klaku ĉi tie por vidi komentojn, memoru, ke la ŝargado povus daŭri iom pli.",
"View YouTube comments": "Vidi komentojn de YouTube",
@@ -276,6 +286,7 @@
"About": "Pri",
"Rating: ": "Takso: ",
"Language: ": "Lingvo: ",
+ "View as playlist": "",
"Default": "Defaŭlte",
"Music": "Musiko",
"Gaming": "Komputiloludoj",
diff --git a/locales/es.json b/locales/es.json
index 1f248e5f..845b5e5b 100644
--- a/locales/es.json
+++ b/locales/es.json
@@ -13,6 +13,8 @@
"Next page": "Página siguiente",
"Previous page": "Página anterior",
"Clear watch history?": "¿Quiere borrar el historial de reproducción?",
+ "Authorize token?": "",
+ "Authorize token for `x`?": "",
"Yes": "Sí",
"No": "No",
"Import and Export Data": "Importación y exportación de datos",
@@ -47,6 +49,7 @@
"Player preferences": "Preferencias del reproductor",
"Always loop: ": "Repetir siempre: ",
"Autoplay: ": "Reproducción automática: ",
+ "Play next by default: ": "",
"Autoplay next video: ": "Reproducir automáticamente el vídeo siguiente: ",
"Listen by default: ": "Activar el sonido por defecto: ",
"Proxy videos? ": "¿Usar un proxy para los vídeos? ",
@@ -54,6 +57,8 @@
"Preferred video quality: ": "Calidad de vídeo preferida: ",
"Player volume: ": "Volumen del reproductor: ",
"Default comments: ": "Comentarios por defecto: ",
+ "youtube": "",
+ "reddit": "",
"Default captions: ": "Subtítulos por defecto: ",
"Fallback captions: ": "Subtítulos alternativos: ",
"Show related videos? ": "¿Mostrar vídeos relacionados? ",
@@ -78,6 +83,7 @@
"Clear watch history": "Borrar el historial de reproducción",
"Import/Export data": "Importar/Exportar datos",
"Manage subscriptions": "Gestionar las suscripciones",
+ "Manage tokens": "",
"Watch history": "Historial de reproducción",
"Delete account": "Borrar cuenta",
"Administrator preferences": "Preferencias de administrador",
@@ -90,9 +96,13 @@
"Report statistics? ": "¿Enviar estadísticas? ",
"Save preferences": "Guardar las preferencias",
"Subscription manager": "Gestor de suscripciones",
+ "Token manager": "",
+ "Token": "",
"`x` subscriptions": "`x` suscripciones",
+ "`x` tokens": "",
"Import/Export": "Importar/Exportar",
"unsubscribe": "Desuscribirse",
+ "revoke": "",
"Subscriptions": "Suscripciones",
"`x` unseen notifications": "`x` notificaciones sin ver",
"search": "buscar",
diff --git a/locales/eu.json b/locales/eu.json
index 667c6df3..96e29b46 100644
--- a/locales/eu.json
+++ b/locales/eu.json
@@ -13,6 +13,8 @@
"Next page": "Hurrengo orria",
"Previous page": "Aurreko orria",
"Clear watch history?": "Garbitu ikusitakoen historia?",
+ "Authorize token?": "",
+ "Authorize token for `x`?": "",
"Yes": "Bai",
"No": "Ez",
"Import and Export Data": "Datuak inportatu eta esportatu",
@@ -47,6 +49,7 @@
"Player preferences": "",
"Always loop: ": "",
"Autoplay: ": "",
+ "Play next by default: ": "",
"Autoplay next video: ": "",
"Listen by default: ": "",
"Proxy videos? ": "",
@@ -54,6 +57,8 @@
"Preferred video quality: ": "",
"Player volume: ": "",
"Default comments: ": "",
+ "youtube": "",
+ "reddit": "",
"Default captions: ": "",
"Fallback captions: ": "",
"Show related videos? ": "",
@@ -78,6 +83,7 @@
"Clear watch history": "",
"Import/Export data": "",
"Manage subscriptions": "",
+ "Manage tokens": "",
"Watch history": "",
"Delete account": "",
"Administrator preferences": "",
@@ -90,9 +96,13 @@
"Report statistics? ": "",
"Save preferences": "",
"Subscription manager": "",
+ "Token manager": "",
+ "Token": "",
"`x` subscriptions": "",
+ "`x` tokens": "",
"Import/Export": "",
"unsubscribe": "",
+ "revoke": "",
"Subscriptions": "",
"`x` unseen notifications": "",
"search": "",
@@ -101,8 +111,8 @@
"Source available here.": "",
"View JavaScript license information.": "",
"View privacy policy.": "",
- "Unlisted": "",
"Trending": "",
+ "Unlisted": "",
"Watch video on Youtube": "",
"Genre: ": "",
"License: ": "",
diff --git a/locales/fr.json b/locales/fr.json
index ed5dea9b..bd6beac8 100644
--- a/locales/fr.json
+++ b/locales/fr.json
@@ -13,6 +13,8 @@
"Next page": "Page suivante",
"Previous page": "Page précédente",
"Clear watch history?": "Êtes-vous sûr de vouloir supprimer l'historique des vidéos regardées ?",
+ "Authorize token?": "",
+ "Authorize token for `x`?": "",
"Yes": "Oui",
"No": "Non",
"Import and Export Data": "Importer et exporter des données",
@@ -47,6 +49,7 @@
"Player preferences": "Préférences du lecteur",
"Always loop: ": "Lire en boucle : ",
"Autoplay: ": "Lire automatiquement : ",
+ "Play next by default: ": "",
"Autoplay next video: ": "Lire automatiquement la vidéo suivante : ",
"Listen by default: ": "Audio uniquement : ",
"Proxy videos? ": "Charger les vidéos à travers un proxy ? ",
@@ -54,6 +57,8 @@
"Preferred video quality: ": "Qualité vidéo souhaitée : ",
"Player volume: ": "Volume du lecteur : ",
"Default comments: ": "Source des commentaires : ",
+ "youtube": "",
+ "reddit": "",
"Default captions: ": "Sous-titres par défaut : ",
"Fallback captions: ": "Sous-titres par défaut : ",
"Show related videos? ": "Voir les vidéos liées ? ",
@@ -78,6 +83,7 @@
"Clear watch history": "Supprimer l'historique des vidéos regardées",
"Import/Export data": "Importer/exporter les données",
"Manage subscriptions": "Gérer les abonnements",
+ "Manage tokens": "",
"Watch history": "Historique de visionnage",
"Delete account": "Supprimer votre compte",
"Administrator preferences": "Préferences d'Administrateur",
@@ -90,9 +96,13 @@
"Report statistics? ": "Télémétrie activé ? ",
"Save preferences": "Enregistrer les préférences",
"Subscription manager": "Gestionnaire d'abonnement",
+ "Token manager": "",
+ "Token": "",
"`x` subscriptions": "`x` abonnements",
+ "`x` tokens": "",
"Import/Export": "Importer/Exporter",
"unsubscribe": "se désabonner",
+ "revoke": "",
"Subscriptions": "Abonnements",
"`x` unseen notifications": "`x` notifications non vues",
"search": "Rechercher",
diff --git a/locales/it.json b/locales/it.json
index 97b7c8a4..66939bd1 100644
--- a/locales/it.json
+++ b/locales/it.json
@@ -13,6 +13,8 @@
"Next page": "Pagina successiva",
"Previous page": "Pagina precedente",
"Clear watch history?": "Sei sicuro di voler cancellare la cronologia dei video guardati?",
+ "Authorize token?": "",
+ "Authorize token for `x`?": "",
"Yes": "Si",
"No": "No",
"Import and Export Data": "Importazione ed esportazione dati",
@@ -47,6 +49,7 @@
"Player preferences": "Preferenze del riproduttore",
"Always loop: ": "Ripeti sempre: ",
"Autoplay: ": "Riproduzione automatica: ",
+ "Play next by default: ": "",
"Autoplay next video: ": "Riproduci automaticamente il prossimo video: ",
"Listen by default: ": "Modalità solo audio come predefinita: ",
"Proxy videos? ": "",
@@ -54,6 +57,8 @@
"Preferred video quality: ": "Preferenza sulla qualità video: ",
"Player volume: ": "Volume di riproduzione: ",
"Default comments: ": "Origine dei commenti: ",
+ "youtube": "",
+ "reddit": "",
"Default captions: ": "Sottotitoli predefiniti: ",
"Fallback captions: ": "Sottotitoli alternativi: ",
"Show related videos? ": "Mostra video correlati? ",
@@ -78,6 +83,7 @@
"Clear watch history": "Cancella la cronologia dei video guardati",
"Import/Export data": "Importazione/esportazione dati",
"Manage subscriptions": "Gestisci le iscrizioni",
+ "Manage tokens": "",
"Watch history": "Cronologia dei video",
"Delete account": "Elimina l'account",
"Administrator preferences": "",
@@ -90,9 +96,13 @@
"Report statistics? ": "",
"Save preferences": "Salva le preferenze",
"Subscription manager": "Gestisci le iscrizioni",
+ "Token manager": "",
+ "Token": "",
"`x` subscriptions": "`x` iscrizioni",
+ "`x` tokens": "",
"Import/Export": "Importa/esporta",
"unsubscribe": "disiscriviti",
+ "revoke": "",
"Subscriptions": "Iscrizioni",
"`x` unseen notifications": "`x` notifiche non visualizzate",
"search": "Cerca",
diff --git a/locales/nb_NO.json b/locales/nb_NO.json
index 445b53e7..99f1b4bc 100644
--- a/locales/nb_NO.json
+++ b/locales/nb_NO.json
@@ -13,6 +13,8 @@
"Next page": "Neste side",
"Previous page": "Forrige side",
"Clear watch history?": "Tøm visningshistorikk?",
+ "Authorize token?": "",
+ "Authorize token for `x`?": "",
"Yes": "Ja",
"No": "Nei",
"Import and Export Data": "Importer- og eksporter data",
@@ -47,6 +49,7 @@
"Player preferences": "Avspillerinnstillinger",
"Always loop: ": "Alltid gjenta: ",
"Autoplay: ": "Autoavspilling: ",
+ "Play next by default: ": "",
"Autoplay next video: ": "Autospill neste video: ",
"Listen by default: ": "Lytt som forvalg: ",
"Proxy videos? ": "Mellomtjen videoer? ",
@@ -54,6 +57,8 @@
"Preferred video quality: ": "Foretrukket videokvalitet: ",
"Player volume: ": "Avspillerlydstyrke: ",
"Default comments: ": "Forvalgte kommentarer: ",
+ "youtube": "",
+ "reddit": "",
"Default captions: ": "Forvalgte undertitler: ",
"Fallback captions: ": "Tilbakefallsundertitler: ",
"Show related videos? ": "Vis relaterte videoer? ",
@@ -78,6 +83,7 @@
"Clear watch history": "Tøm visningshistorikk",
"Import/Export data": "Importer/eksporter data",
"Manage subscriptions": "Behandle abonnementer",
+ "Manage tokens": "",
"Watch history": "Visningshistorikk",
"Delete account": "Slett konto",
"Administrator preferences": "Administratorinnstillinger",
@@ -90,9 +96,13 @@
"Report statistics? ": "Innrapporter statistikk? ",
"Save preferences": "Lagre innstillinger",
"Subscription manager": "Abonnementsbehandler",
+ "Token manager": "",
+ "Token": "",
"`x` subscriptions": "`x` abonnementer",
+ "`x` tokens": "",
"Import/Export": "Importer/eksporter",
"unsubscribe": "opphev abonnement",
+ "revoke": "",
"Subscriptions": "Abonnement",
"`x` unseen notifications": "`x` usette merknader",
"search": "søk",
diff --git a/locales/nl.json b/locales/nl.json
index 05708939..51ece697 100644
--- a/locales/nl.json
+++ b/locales/nl.json
@@ -13,6 +13,8 @@
"Next page": "Volgende pagina",
"Previous page": "Vorige pagina",
"Clear watch history?": "Kijk geschiedenis wissen?",
+ "Authorize token?": "",
+ "Authorize token for `x`?": "",
"Yes": "Ja",
"No": "Nee",
"Import and Export Data": "Importeer en Exporteer Gegevens",
@@ -47,6 +49,7 @@
"Player preferences": "Afspeler voorkeuren",
"Always loop: ": "Altijd herhalen: ",
"Autoplay: ": "Automatisch afspelen: ",
+ "Play next by default: ": "",
"Autoplay next video: ": "Automatisch volgende video afspelen: ",
"Listen by default: ": "Standaard luisteren: ",
"Proxy videos? ": "",
@@ -54,6 +57,8 @@
"Preferred video quality: ": "Video kwaliteit voorkeur: ",
"Player volume: ": "Afspeler volume: ",
"Default comments: ": "Standaard reacties: ",
+ "youtube": "",
+ "reddit": "",
"Default captions: ": "Standaard ondertitels: ",
"Fallback captions: ": "Alternatieve ondertitels: ",
"Show related videos? ": "Laat gerelateerde videos zien? ",
@@ -78,6 +83,7 @@
"Clear watch history": "Kijkgeschiedenis wissen",
"Import/Export data": "Importeer/Exporteer gegevens",
"Manage subscriptions": "Abonnees beheren",
+ "Manage tokens": "",
"Watch history": "Kijkgeschiedenis",
"Delete account": "Account verwijderen",
"Administrator preferences": "",
@@ -90,9 +96,13 @@
"Report statistics? ": "",
"Save preferences": "Opslaan voorkeuren",
"Subscription manager": "Abonnees beheerder",
+ "Token manager": "",
+ "Token": "",
"`x` subscriptions": "`x` abonnees",
+ "`x` tokens": "",
"Import/Export": "Importeer/Exporteer",
"unsubscribe": "abonnement opzeggen",
+ "revoke": "",
"Subscriptions": "Abonnees",
"`x` unseen notifications": "`x` onbekeken notificaties",
"search": "zoeken",
diff --git a/locales/pl.json b/locales/pl.json
index e1e7f5d6..618fa312 100644
--- a/locales/pl.json
+++ b/locales/pl.json
@@ -13,6 +13,8 @@
"Next page": "Następna strona",
"Previous page": "Poprzednia strona",
"Clear watch history?": "Wyczyścić historię?",
+ "Authorize token?": "",
+ "Authorize token for `x`?": "",
"Yes": "Tak",
"No": "Nie",
"Import and Export Data": "Import i eksport danych",
@@ -47,6 +49,7 @@
"Player preferences": "Ustawienia odtwarzacza",
"Always loop: ": "Zawsze zapętlaj: ",
"Autoplay: ": "Autoodtwarzanie: ",
+ "Play next by default: ": "",
"Autoplay next video: ": "Odtwórz następny film: ",
"Listen by default: ": "Tryb dźwiękowy: ",
"Proxy videos? ": "Filmy przez proxy? ",
@@ -54,6 +57,8 @@
"Preferred video quality: ": "Preferowana jakość filmów: ",
"Player volume: ": "Głośność odtwarzacza: ",
"Default comments: ": "Domyślne komentarze: ",
+ "youtube": "",
+ "reddit": "",
"Default captions: ": "Domyślne napisy: ",
"Fallback captions: ": "Zastępcze napisy: ",
"Show related videos? ": "Pokaż powiązane filmy? ",
@@ -78,6 +83,7 @@
"Clear watch history": "Wyczyść historię",
"Import/Export data": "Import/Eksport danych",
"Manage subscriptions": "Organizuj subskrybcje",
+ "Manage tokens": "",
"Watch history": "Historia",
"Delete account": "Usuń konto",
"Administrator preferences": "Preferencje administratora",
@@ -90,9 +96,13 @@
"Report statistics? ": "Raportować statystyki? ",
"Save preferences": "Zapisz preferencje",
"Subscription manager": "Manager subskrybcji",
+ "Token manager": "",
+ "Token": "",
"`x` subscriptions": "`x` subskrybcji",
+ "`x` tokens": "",
"Import/Export": "Import/Eksport",
"unsubscribe": "odsubskrybuj",
+ "revoke": "",
"Subscriptions": "Subskrybcje",
"`x` unseen notifications": "`x` nowych powiadomień",
"search": "szukaj",
diff --git a/locales/ru.json b/locales/ru.json
index 14bf8e63..f64578af 100644
--- a/locales/ru.json
+++ b/locales/ru.json
@@ -13,6 +13,8 @@
"Next page": "Следующая страница",
"Previous page": "Предыдущая страница",
"Clear watch history?": "Очистить историю просмотров?",
+ "Authorize token?": "",
+ "Authorize token for `x`?": "",
"Yes": "Да",
"No": "Нет",
"Import and Export Data": "Импорт и экспорт данных",
@@ -47,6 +49,7 @@
"Player preferences": "Настройки проигрывателя",
"Always loop: ": "Всегда повторять: ",
"Autoplay: ": "Автовоспроизведение: ",
+ "Play next by default: ": "",
"Autoplay next video: ": "Автовоспроизведение следующего видео: ",
"Listen by default: ": "Режим \"только аудио\" по-умолчанию: ",
"Proxy videos? ": "Проксировать видео? ",
@@ -80,6 +83,7 @@
"Clear watch history": "Очистить историю просмотра",
"Import/Export data": "Импорт/Экспорт данных",
"Manage subscriptions": "Управление подписками",
+ "Manage tokens": "",
"Watch history": "История просмотров",
"Delete account": "Удалить аккаунт",
"Administrator preferences": "Настройки администратора",
@@ -92,9 +96,13 @@
"Report statistics? ": "Отображать статистику? ",
"Save preferences": "Сохранить настройки",
"Subscription manager": "Менеджер подписок",
+ "Token manager": "",
+ "Token": "",
"`x` subscriptions": "`x` подписок",
+ "`x` tokens": "",
"Import/Export": "Импорт/Экспорт",
"unsubscribe": "отписаться",
+ "revoke": "",
"Subscriptions": "Подписки",
"`x` unseen notifications": "`x` новых оповещений",
"search": "поиск",
diff --git a/locales/uk.json b/locales/uk.json
index d7bb5374..54bb9a55 100644
--- a/locales/uk.json
+++ b/locales/uk.json
@@ -5,7 +5,6 @@
"Shared `x` ago": "Розміщено `x` назад",
"Unsubscribe": "Відписатися",
"Subscribe": "Підписатися",
- "Login to subscribe to `x`": "Увійдіть, щоб підписатися на `x`",
"View channel on YouTube": "Подивитися канал на YouTube",
"newest": "найновіше",
"oldest": "найстаріше",
@@ -14,6 +13,8 @@
"Next page": "Наступна сторінка",
"Previous page": "Попередня сторінка",
"Clear watch history?": "Очистити історію переглядів?",
+ "Authorize token?": "",
+ "Authorize token for `x`?": "",
"Yes": "Так",
"No": "Ні",
"Import and Export Data": "Імпорт і експорт даних",
@@ -48,6 +49,7 @@
"Player preferences": "Налаштування програвача",
"Always loop: ": "Завжди повторювати: ",
"Autoplay: ": "Автовідтворення: ",
+ "Play next by default: ": "",
"Autoplay next video: ": "Автовідтворення наступного відео: ",
"Listen by default: ": "Режим «тільки звук» як усталений: ",
"Proxy videos? ": "Програвати відео через проксі? ",
@@ -55,6 +57,8 @@
"Preferred video quality: ": "Пріорітетна якість відео: ",
"Player volume: ": "Гучність відео: ",
"Default comments: ": "Джерело коментарів: ",
+ "youtube": "",
+ "reddit": "",
"Default captions: ": "Основна мова субтитрів: ",
"Fallback captions: ": "Запасна мова субтитрів: ",
"Show related videos? ": "Показувати схожі відео? ",
@@ -79,6 +83,7 @@
"Clear watch history": "Очистити історію переглядів",
"Import/Export data": "Імпорт і експорт даних",
"Manage subscriptions": "Керування підписками",
+ "Manage tokens": "",
"Watch history": "Історія переглядів",
"Delete account": "Видалити обліківку",
"Administrator preferences": "Адміністраторські налаштування",
@@ -91,9 +96,13 @@
"Report statistics? ": "Повідомляти статистику? ",
"Save preferences": "Зберегти налаштування",
"Subscription manager": "Менеджер підписок",
+ "Token manager": "",
+ "Token": "",
"`x` subscriptions": "`x` підписка / підписок / підписки",
+ "`x` tokens": "",
"Import/Export": "Імпорт і експорт",
"unsubscribe": "відписатися",
+ "revoke": "",
"Subscriptions": "Підписки",
"`x` unseen notifications": "`x` непереглянуте сповіщення / непереглянутих сповіщень / непереглянутих сповіщення",
"search": "пошук",
@@ -113,6 +122,7 @@
"Whitelisted regions: ": "Доступно у регіонах: ",
"Blacklisted regions: ": "Недоступно у регіонах: ",
"Shared `x`": "Розміщено `x`",
+ "`x` views": "",
"Premieres in `x`": "Прем’єра через `x`",
"Hi! Looks like you have JavaScript disabled. Click here to view comments, keep in mind it may take a bit longer to load.": "Схоже, у вас відключений JavaScript. Щоб побачити коментарі, натисніть сюда, але майте на увазі, що вони можуть завантажуватися трохи довше.",
"View YouTube comments": "Переглянути коментарі з YouTube",
@@ -276,6 +286,7 @@
"About": "Про сайт",
"Rating: ": "Рейтинг: ",
"Language: ": "Мова: ",
+ "View as playlist": "",
"Default": "Усталено",
"Music": "Музика",
"Gaming": "Ігри",
diff --git a/src/invidious.cr b/src/invidious.cr
index 4e48fab0..57db7e28 100644
--- a/src/invidious.cr
+++ b/src/invidious.cr
@@ -1150,8 +1150,8 @@ post "/login" do |env|
view_name = "subscriptions_#{sha256(user.email)}"
PG_DB.exec("CREATE MATERIALIZED VIEW #{view_name} AS \
- SELECT * FROM channel_videos WHERE \
- ucid = ANY ((SELECT subscriptions FROM users WHERE email = E'#{user.email.gsub("'", "\\'")}')::text[]) \
+ SELECT * FROM channel_videos WHERE \
+ ucid = ANY ((SELECT subscriptions FROM users WHERE email = E'#{user.email.gsub("'", "\\'")}')::text[]) \
ORDER BY published DESC;")
if Kemal.config.ssl || config.https_only
@@ -1241,6 +1241,10 @@ post "/preferences" do |env|
continue ||= "off"
continue = continue == "on"
+ continue_autoplay = env.params.body["continue_autoplay"]?.try &.as(String)
+ continue_autoplay ||= "off"
+ continue_autoplay = continue_autoplay == "on"
+
listen = env.params.body["listen"]?.try &.as(String)
listen ||= "off"
listen = listen == "on"
@@ -1309,6 +1313,7 @@ post "/preferences" do |env|
"video_loop" => video_loop,
"autoplay" => autoplay,
"continue" => continue,
+ "continue_autoplay" => continue_autoplay,
"listen" => listen,
"local" => local,
"speed" => speed,
diff --git a/src/invidious/helpers/helpers.cr b/src/invidious/helpers/helpers.cr
index 9b29210d..14b7719b 100644
--- a/src/invidious/helpers/helpers.cr
+++ b/src/invidious/helpers/helpers.cr
@@ -63,6 +63,7 @@ struct ConfigPreferences
captions: {type: Array(String), default: ["", "", ""], converter: StringToArray},
comments: {type: Array(String), default: ["youtube", ""], converter: StringToArray},
continue: {type: Bool, default: false},
+ continue_autoplay: {type: Bool, default: true},
dark_mode: {type: Bool, default: false},
latest_only: {type: Bool, default: false},
listen: {type: Bool, default: false},
diff --git a/src/invidious/users.cr b/src/invidious/users.cr
index 43a55eac..2e9ec1e5 100644
--- a/src/invidious/users.cr
+++ b/src/invidious/users.cr
@@ -88,6 +88,7 @@ struct Preferences
captions: {type: Array(String), default: CONFIG.default_user_preferences.captions, converter: StringToArray},
comments: {type: Array(String), default: CONFIG.default_user_preferences.comments, converter: StringToArray},
continue: {type: Bool, default: CONFIG.default_user_preferences.continue},
+ continue_autoplay: {type: Bool, default: CONFIG.default_user_preferences.continue_autoplay},
dark_mode: {type: Bool, default: CONFIG.default_user_preferences.dark_mode},
latest_only: {type: Bool, default: CONFIG.default_user_preferences.latest_only},
listen: {type: Bool, default: CONFIG.default_user_preferences.listen},
diff --git a/src/invidious/videos.cr b/src/invidious/videos.cr
index bdd21a48..2ad6cdaa 100644
--- a/src/invidious/videos.cr
+++ b/src/invidious/videos.cr
@@ -1017,6 +1017,7 @@ end
def process_video_params(query, preferences)
autoplay = query["autoplay"]?.try &.to_i?
continue = query["continue"]?.try &.to_i?
+ continue_autoplay = query["continue_autoplay"]?.try &.to_i?
listen = query["listen"]? && (query["listen"] == "true" || query["listen"] == "1").to_unsafe
local = query["local"]? && (query["local"] == "true").to_unsafe
preferred_captions = query["subtitles"]?.try &.split(",").map { |a| a.downcase }
@@ -1031,6 +1032,7 @@ def process_video_params(query, preferences)
# region ||= preferences.region
autoplay ||= preferences.autoplay.to_unsafe
continue ||= preferences.continue.to_unsafe
+ continue_autoplay ||= preferences.continue_autoplay.to_unsafe
listen ||= preferences.listen.to_unsafe
local ||= preferences.local.to_unsafe
preferred_captions ||= preferences.captions
@@ -1043,6 +1045,7 @@ def process_video_params(query, preferences)
autoplay ||= CONFIG.default_user_preferences.autoplay.to_unsafe
continue ||= CONFIG.default_user_preferences.continue.to_unsafe
+ continue_autoplay ||= CONFIG.default_user_preferences.continue_autoplay.to_unsafe
listen ||= CONFIG.default_user_preferences.listen.to_unsafe
local ||= CONFIG.default_user_preferences.local.to_unsafe
preferred_captions ||= CONFIG.default_user_preferences.captions
@@ -1054,6 +1057,7 @@ def process_video_params(query, preferences)
autoplay = autoplay == 1
continue = continue == 1
+ continue_autoplay = continue_autoplay == 1
listen = listen == 1
local = local == 1
related_videos = related_videos == 1
@@ -1087,6 +1091,7 @@ def process_video_params(query, preferences)
params = {
autoplay: autoplay,
continue: continue,
+ continue_autoplay: continue_autoplay,
controls: controls,
listen: listen,
local: local,
diff --git a/src/invidious/views/components/player.ecr b/src/invidious/views/components/player.ecr
index b9158e39..30f5294f 100644
--- a/src/invidious/views/components/player.ecr
+++ b/src/invidious/views/components/player.ecr
@@ -99,7 +99,7 @@ var player = videojs("player", options, function() {
return e.which === 74;
},
handler: function(player, options, e) {
- player.currentTime(player.currentTime() - 5);
+ player.currentTime(player.currentTime() - 10);
}
},
// Go forward 5 seconds
@@ -108,13 +108,13 @@ var player = videojs("player", options, function() {
return e.which === 76;
},
handler: function(player, options, e) {
- player.currentTime(player.currentTime() + 5);
+ player.currentTime(player.currentTime() + 10);
}
},
// Increase speed
increase_speed: {
key: function(e) {
- return e.which === 190;
+ return (e.which === 190 && e.shiftKey);
},
handler: function(player, _, e) {
size = options.playbackRates.length;
@@ -125,7 +125,7 @@ var player = videojs("player", options, function() {
// Decrease speed
decrease_speed: {
key: function(e) {
- return e.which === 188;
+ return (e.which === 188 && e.shiftKey);
},
handler: function(player, _, e) {
size = options.playbackRates.length;
diff --git a/src/invidious/views/embed.ecr b/src/invidious/views/embed.ecr
index ac69512f..8ae46114 100644
--- a/src/invidious/views/embed.ecr
+++ b/src/invidious/views/embed.ecr
@@ -55,13 +55,13 @@ function get_playlist(timeouts = 0) {
location.assign("/embed/"
+ xhr.response.nextVideo
+ "?list=<%= plid %>"
- <% if params[:listen] %>
- + "&listen=1"
+ <% if params[:listen] != preferences.listen %>
+ + "&listen=<%= params[:listen] %>"
<% end %>
- <% if params[:autoplay] %>
+ <% if params[:autoplay] || params[:continue_autoplay] %>
+ "&autoplay=1"
<% end %>
- <% if params[:speed] %>
+ <% if params[:speed] != preferences.speed %>
+ "&speed=<%= params[:speed] %>"
<% end %>
);
@@ -85,13 +85,13 @@ player.on('ended', function() {
<% if !video_series.empty? %>
+ "?playlist=<%= video_series.join(",") %>"
<% end %>
- <% if params[:listen] %>
- + "&listen=1"
+ <% if params[:listen] != preferences.listen %>
+ + "&listen=<%= params[:listen] %>"
<% end %>
- <% if params[:autoplay] %>
+ <% if params[:autoplay] || params[:continue_autoplay] %>
+ "&autoplay=1"
<% end %>
- <% if params[:speed] %>
+ <% if params[:speed] != preferences.speed %>
+ "&speed=<%= params[:speed] %>"
<% end %>
);
diff --git a/src/invidious/views/preferences.ecr b/src/invidious/views/preferences.ecr
index 5dfe779b..3984a4ab 100644
--- a/src/invidious/views/preferences.ecr
+++ b/src/invidious/views/preferences.ecr
@@ -24,11 +24,16 @@ function update_value(element) {
</div>
<div class="pure-control-group">
- <label for="continue"><%= translate(locale, "Autoplay next video: ") %></label>
+ <label for="continue"><%= translate(locale, "Play next by default: ") %></label>
<input name="continue" id="continue" type="checkbox" <% if preferences.continue %>checked<% end %>>
</div>
<div class="pure-control-group">
+ <label for="continue_autoplay"><%= translate(locale, "Autoplay next video: ") %></label>
+ <input name="continue_autoplay" id="continue_autoplay" type="checkbox" <% if preferences.continue_autoplay %>checked<% end %>>
+ </div>
+
+ <div class="pure-control-group">
<label for="local"><%= translate(locale, "Proxy videos? ") %></label>
<input name="local" id="local" type="checkbox" <% if preferences.local %>checked<% end %>>
</div>
diff --git a/src/invidious/views/watch.ecr b/src/invidious/views/watch.ecr
index c5f4e2ba..accbca52 100644
--- a/src/invidious/views/watch.ecr
+++ b/src/invidious/views/watch.ecr
@@ -202,13 +202,13 @@ player.on('ended', function() {
location.assign("/watch?v="
+ "<%= rvs.select { |rv| rv["id"]? }[0]?.try &.["id"] %>"
+ "&continue=1"
- <% if params[:listen] %>
- + "&listen=1"
+ <% if params[:listen] != preferences.listen %>
+ + "&listen=<%= params[:listen] %>"
<% end %>
- <% if params[:autoplay] %>
+ <% if params[:autoplay] || params[:continue_autoplay] %>
+ "&autoplay=1"
<% end %>
- <% if params[:speed] %>
+ <% if params[:speed] != preferences.speed %>
+ "&speed=<%= params[:speed] %>"
<% end %>
);
@@ -221,13 +221,13 @@ function continue_autoplay(target) {
location.assign("/watch?v="
+ "<%= rvs.select { |rv| rv["id"]? }[0]?.try &.["id"] %>"
+ "&continue=1"
- <% if params[:listen] %>
- + "&listen=1"
+ <% if params[:listen] != preferences.listen %>
+ + "&listen=<%= params[:listen] %>"
<% end %>
- <% if params[:autoplay] %>
+ <% if params[:autoplay] || params[:continue_autoplay] %>
+ "&autoplay=1"
<% end %>
- <% if params[:speed] %>
+ <% if params[:speed] != preferences.speed %>
+ "&speed=<%= params[:speed] %>"
<% end %>
);
@@ -287,13 +287,13 @@ function get_playlist(timeouts = 0) {
location.assign("/watch?v="
+ xhr.response.nextVideo
+ "&list=<%= plid %>"
- <% if params[:listen] %>
- + "&listen=1"
+ <% if params[:listen] != preferences.listen %>
+ + "&listen=<%= params[:listen] %>"
<% end %>
- <% if params[:autoplay] %>
+ <% if params[:autoplay] || params[:continue_autoplay] %>
+ "&autoplay=1"
<% end %>
- <% if params[:speed] %>
+ <% if params[:speed] != preferences.speed %>
+ "&speed=<%= params[:speed] %>"
<% end %>
);