// ==UserScript==
// @name YouTube to Piped Links and Embeds Replacer on all websites
// @description Replaces YouTube links and embeds with Piped.video links in the HTML on all websites.
// @name:af YouTube na Piped skakels en ingebedde vervanger op alle webwerwe
// @description:af Vervang YouTube-skakels en ingebedde met Piped.video-skakels in die HTML op alle webwerwe.
// @name:ar استبدال روابط وتضمينات YouTube بـ Piped على جميع المواقع الإلكترونية
// @description:ar يستبدل روابط YouTube والتضمينات بروابط Piped.video في HTML على جميع المواقع الإلكترونية.
// @name:az Bütün veb saytlarda YouTube bağlantılarını və yerləşdirmələri Piped bağlantıları ilə əvəz edir
// @description:az Bütün veb saytlarda HTML-də YouTube bağlantılarını və yerləşdirmələri Piped.video bağlantıları ilə əvəz edir.
// @name:bg Замяна на YouTube връзки и вградени с Piped връзки на всички уебсайтове
// @description:bg Замества YouTube връзки и вградени с Piped.video връзки в HTML на всички уебсайтове.
// @name:bn সমস্ত ওয়েবসাইটে YouTube লিঙ্ক এবং এমবেড প্রতিস্থাপন Piped লিঙ্ক দিয়ে
// @description:bn সমস্ত ওয়েবসাইটের HTML-এ YouTube লিঙ্ক এবং এমবেডগুলি Piped.video লিঙ্ক দিয়ে প্রতিস্থাপন করে।
// @name:ca Substitució d'enllaços i incrustacions de YouTube per enllaços de Piped a tots els llocs web
// @description:ca Substitueix els enllaços i incrustacions de YouTube per enllaços de Piped.video en el HTML de tots els llocs web.
// @name:cs Nahrazení odkazů a vložení YouTube za odkazy Piped na všech webových stránkách
// @description:cs Nahrazuje odkazy a vložení YouTube za odkazy Piped.video v HTML na všech webových stránkách.
// @name:da Udskiftning af YouTube-links og indlejringer med Piped-links på alle websteder
// @description:da Erstatter YouTube-links og indlejringer med Piped.video-links i HTML på alle websteder.
// @name:de Ersetzen von YouTube-Links und Einbettungen durch Piped-Links auf allen Websites
// @description:de Ersetzt YouTube-Links und Einbettungen durch Piped.video-Links im HTML auf allen Websites.
// @name:el Αντικατάσταση συνδέσμων και ενσωματώσεων YouTube με συνδέσμους Piped σε όλους τους ιστότοπους
// @description:el Αντικαθιστά τους συνδέσμους και τις ενσωματώσεις YouTube με συνδέσμους Piped.video στο HTML σε όλους τους ιστότοπους.
// @name:eo Anstataŭigo de YouTube-ligoj kaj enkorpigoj per Piped-ligoj sur ĉiuj retejoj
// @description:eo Anstataŭigas YouTube-ligojn kaj enkorpigojn per Piped.video-ligoj en la HTML sur ĉiuj retejoj.
// @name:es Reemplazo de enlaces y incrustaciones de YouTube por enlaces de Piped en todos los sitios web
// @description:es Reemplaza los enlaces y las incrustaciones de YouTube por enlaces de Piped.video en el HTML de todos los sitios web.
// @name:fi YouTube-linkkien ja upotusten korvaaminen Piped-linkeillä kaikilla verkkosivustoilla
// @description:fi Korvaa YouTube-linkit ja upotukset Piped.video-linkeillä HTML:ssä kaikilla verkkosivustoilla.
// @name:fr Remplacement des liens et des intégrations YouTube par des liens Piped sur tous les sites web
// @description:fr Remplace les liens et les intégrations YouTube par des liens Piped.video dans le HTML sur tous les sites web.
// @name:gl Substitución de ligazóns e insercións de YouTube por ligazóns de Piped en todos os sitios web
// @description:gl Substitúe as ligazóns e insercións de YouTube por ligazóns de Piped.video no HTML de todos os sitios web.
// @name:he החלפת קישורים והטמעות של YouTube בקישורי Piped בכל האתרים
// @description:he מחליף את קישורי YouTube וההטמעות בקישורי Piped.video ב-HTML בכל האתרים.
// @name:hi सभी वेबसाइटों पर YouTube लिंक और एंबेड को Piped लिंक से बदलें
// @description:hi सभी वेबसाइटों पर HTML में YouTube लिंक और एंबेड को Piped.video लिंक से बदलता है।
// @name:hu YouTube-hivatkozások és beágyazások cseréje Piped-hivatkozásokra minden webhelyen
// @description:hu YouTube-hivatkozások és beágyazások cseréje Piped.video-hivatkozásokra a HTML-ben minden webhelyen.
// @name:id Pengganti tautan dan sematan YouTube dengan tautan Piped di semua situs web
// @description:id Mengganti tautan dan sematan YouTube dengan tautan Piped.video di HTML di semua situs web.
// @name:is Skipta út YouTube tenglum og ívafi með Piped tenglum á öllum vefsíðum
// @description:is Skipta út YouTube tenglum og ívafi með Piped.video tenglum í HTML á öllum vefsíðum.
// @name:it Sostituzione dei collegamenti e incorporamenti di YouTube con collegamenti Piped su tutti i siti web
// @description:it Sostituisce i collegamenti e gli incorporamenti di YouTube con collegamenti Piped.video nell'HTML su tutti i siti web.
// @name:ja すべてのウェブサイトでYouTubeリンクと埋め込みをPipedリンクに置き換えます
// @description:ja すべてのウェブサイトでHTML内のYouTubeリンクと埋め込みをPiped.videoリンクに置き換えます。
// @name:km ប្តូរតំណ និងបង្កប់ YouTube ជា Piped លើគេហទំព័រទាំងអស់
// @description:km ប្តូរតំណ និងបង្កប់ YouTube ជាតំណ Piped.video ក្នុង HTML នៅលើគេហទំព័រទាំងអស់។
// @name:ko 모든 웹사이트에서 YouTube 링크와 임베드를 Piped 링크로 대체
// @description:ko 모든 웹사이트의 HTML에서 YouTube 링크와 임베드를 Piped.video 링크로 대체합니다.
// @name:ms Gantikan pautan dan sematan YouTube dengan pautan Piped di semua laman web
// @description:ms Menggantikan pautan dan sematan YouTube dengan pautan Piped.video dalam HTML di semua laman web.
// @name:mt Sostituzzjoni ta' links u embeds ta' YouTube b'links ta' Piped fuq il-websajts kollha
// @description:mt Jissostitwixxi links u embeds ta' YouTube b'links ta' Piped.video fil-HTML fuq il-websajts kollha.
// @name:nb Erstatte YouTube-lenker og innebygginger med Piped-lenker på alle nettsteder
// @description:nb Erstatter YouTube-lenker og innebygginger med Piped.video-lenker i HTML på alle nettsteder.
// @name:nl Vervang YouTube-links en ingesloten inhoud door Piped-links op alle websites
// @description:nl Vervangt YouTube-links en ingesloten inhoud door Piped.video-links in de HTML op alle websites.
// @name:pl Zamiana linków i osadzonych treści YouTube na linki Piped na wszystkich stronach internetowych
// @description:pl Zamienia linki i osadzone treści YouTube na linki Piped.video w HTML na wszystkich stronach internetowych.
// @name:pt Substituição de links e incorporações do YouTube por links do Piped em todos os sites
// @description:pt Substitui links e incorporações do YouTube por links do Piped.video no HTML em todos os sites.
// @name:ro Înlocuirea linkurilor și încorporărilor YouTube cu linkuri Piped pe toate site-urile web
// @description:ro Înlocuiește linkurile și încorporările YouTube cu linkuri Piped.video în HTML pe toate site-urile web.
// @name:ru Замена ссылок и встраиваний YouTube на ссылки Piped на всех веб-сайтах
// @description:ru Заменяет ссылки и встраивания YouTube на ссылки Piped.video в HTML на всех веб-сайтах.
// @name:sr Замена линкова и уградње YouTube са Piped линковима на свим веб сајтовима
// @description:sr Замењује линкове и уградње YouTube са Piped.video линковима у HTML на свим веб сајтовима.
// @name:sv Ersätt YouTube-länkar och inbäddningar med Piped-länkar på alla webbplatser
// @description:sv Ersätter YouTube-länkar och inbäddningar med Piped.video-länkar i HTML på alla webbplatser.
// @name:th แทนที่ลิงก์และการฝัง YouTube ด้วยลิงก์ Piped บนเว็บไซต์ทั้งหมด
// @description:th แทนที่ลิงก์และการฝัง YouTube ด้วยลิงก์ Piped.video ใน HTML บนเว็บไซต์ทั้งหมด
// @name:tl Palitan ang mga link at embed ng YouTube ng mga link ng Piped sa lahat ng mga website
// @description:tl Pinapalitan ang mga link at embed ng YouTube ng mga link ng Piped.video sa HTML sa lahat ng mga website.
// @name:tr Tüm web sitelerinde YouTube bağlantılarını ve gömme kodlarını Piped bağlantılarıyla değiştirir
// @description:tr Tüm web sitelerinde YouTube bağlantılarını ve gömme kodlarını HTML'de Piped.video bağlantılarıyla değiştirir.
// @name:uk Заміна посилань і вбудовувань YouTube на посилання Piped на всіх веб-сайтах
// @description:uk Заміщує посилання та вбудовування YouTube на посилання Piped.video в HTML на всіх веб-сайтах.
// @name:vi Thay thế các liên kết và nhúng YouTube bằng liên kết Piped trên tất cả các trang web
// @description:vi Thay thế các liên kết và nhúng YouTube bằng liên kết Piped.video trong HTML trên tất cả các trang web.
// @name:zh 将所有网站上的YouTube链接和嵌入替换为Piped链接
// @description:zh 将所有网站上的HTML中的YouTube链接和嵌入替换为Piped.video链接。
// @match *://*/*
// @icon https://gitlab.com/uploads/-/system/project/avatar/59164083/youtube-to-piped.jpg
// @version 1.1.0
// @author BreatFR
// @copyright 2024, BreatFR (https://breat.fr)
// @grant GM_registerMenuCommand
// @grant GM_unregisterMenuCommand
// @grant GM_getValue
// @grant GM_setValue
// @namespace https://gitlab.com/breatfr
// @homepageURL https://gitlab.com/breatfr/youtube-to-piped-links-and-embeds-replacer-on-all-websites
// @supportURL https://discord.gg/Q8KSHzdBxs
// @license AGPL-3.0-or-later; https://www.gnu.org/licenses/agpl-3.0.txt
// ==/UserScript==
(function() {
'use strict';
// Traductions
const translations = {
af: {
activate: '✔️ Aktiveer',
deactivate: '❌ Deaktiveer',
menuSuffix: 'YouTube -> Piped-herleiding in die adresbalk',
},
ar: {
activate: '✔️ تفعيل',
deactivate: '❌ تعطيل',
menuSuffix: 'إعادة توجيه YouTube -> Piped في شريط العناوين',
},
az: {
activate: '✔️ Aktivləşdirin',
deactivate: '❌ Deaktiv edin',
menuSuffix: 'ünvan çubuğunda YouTube -> Piped yönləndirməsi',
},
be: {
activate: '✔️ Актываваць',
deactivate: '❌ Дэзактываваць',
menuSuffix: 'перанакіраванне YouTube -> Piped у радку адрасу',
},
bg: {
activate: '✔️ Активирайте',
deactivate: '❌ Деактивирайте',
menuSuffix: 'пренасочване на YouTube -> Piped в адресната лента',
},
bn: {
activate: '✔️ সক্রিয়',
deactivate: '❌ নিষ্ক্রিয়',
menuSuffix: 'ঠিকানা বারে YouTube -> Piped পুনঃনির্দেশনা',
},
bs: {
activate: '✔️ Aktiviraj',
deactivate: '❌ Deaktiviraj',
menuSuffix: 'preusmjeravanje YouTube -> Piped u adresnoj traci',
},
ca: {
activate: '✔️ Activa',
deactivate: '❌ Desactiva',
menuSuffix: 'redirecció de YouTube -> Piped a la barra d\'adreces',
},
cs: {
activate: '✔️ Aktivovat',
deactivate: '❌ Deaktivovat',
menuSuffix: 'přesměrování YouTube -> Piped v adresním řádku',
},
cy: {
activate: '✔️ Activate',
deactivate: '❌ Deactivate',
menuSuffix: 'ailgyfeirio YouTube -> Piped yn y bar cyfeiriad',
},
da: {
activate: '✔️ Aktiver',
deactivate: '❌ Deaktiver',
menuSuffix: 'omdirigering af YouTube -> Piped i adresselinjen',
},
de: {
activate: '✔️ Aktivieren',
deactivate: '❌ Deaktivieren',
menuSuffix: 'YouTube -> Piped-Weiterleitung in der Adressleiste',
},
el: {
activate: '✔️ Ενεργοποίηση',
deactivate: '❌ Απενεργοποίηση',
menuSuffix: 'ανακατεύθυνση YouTube -> Piped στη γραμμή διευθύνσεων',
},
en: {
activate: '✔️ Activate',
deactivate: '❌ Deactivate',
menuSuffix: 'YouTube -> Piped redirection in the address bar',
},
eo: {
activate: '✔️ Aktivigi',
deactivate: '❌ Malaktivigi',
menuSuffix: 'retadreso de YouTube -> Piped',
},
es: {
activate: '✔️ Activar',
deactivate: '❌ Desactivar',
menuSuffix: 'redirección de YouTube -> Piped en la barra de direcciones',
},
et: {
activate: '✔️ Aktiveeri',
deactivate: '❌ Deaktiveeri',
menuSuffix: 'YouTube -> Piped ümbersuunamine aadressiribal',
},
eu: {
activate: '✔️ Aktibatu',
deactivate: '❌ Desaktibatu',
menuSuffix: 'YouTube -> Piped birbideratzea helbide-barran',
},
fa: {
activate: '✔️ فعال کردن',
deactivate: '❌ غیرفعال کردن',
menuSuffix: 'تغییر مسیر YouTube -> Piped در نوار آدرس',
},
fi: {
activate: '✔️ Aktivoi',
deactivate: '❌ Poista käytöstä',
menuSuffix: 'YouTube -> Piped uudelleenohjaus osoitepalkissa',
},
fr: {
activate: '✔️ Activer',
deactivate: '❌ Désactiver',
menuSuffix: 'la redirection YouTube -> Piped dans la barre d\'adresse',
},
ga: {
activate: '✔️ Gníomhachtaigh',
deactivate: '❌ Díghníomhachtaigh',
menuSuffix: 'atreorú YouTube -> Piped sa bharra seoltaí',
},
gl: {
activate: '✔️ Activar',
deactivate: '❌ Desactivar',
menuSuffix: 'redirección de YouTube -> Piped na barra de enderezos',
},
gu: {
activate: '✔️ સક્રિય',
deactivate: '❌ નિષ્ક્રિય',
menuSuffix: 'સરનામા બારમાં YouTube -> Piped પુનઃદિશામાન',
},
he: {
activate: '✔️ הפעל',
deactivate: '❌ השבת',
menuSuffix: 'הפניה מחדש של YouTube -> Piped בשורת הכתובת',
},
hi: {
activate: '✔️ सक्रिय करें',
deactivate: '❌ निष्क्रिय करें',
menuSuffix: 'पता बार में YouTube -> Piped पुनर्निर्देशन',
},
hr: {
activate: '✔️ Aktiviraj',
deactivate: '❌ Deaktiviraj',
menuSuffix: 'preusmjeravanje YouTube -> Piped u adresnoj traci',
},
hu: {
activate: '✔️ Aktiválja',
deactivate: '❌ Deaktiválja',
menuSuffix: 'YouTube -> Piped átirányítás a címsorban',
},
hy: {
activate: '✔️ Ակտիվացնել',
deactivate: '❌ Դեակտիվացնել',
menuSuffix: 'YouTube -> Piped վերահասցեավորում հասցեագրում',
},
id: {
activate: '✔️ Aktifkan',
deactivate: '❌ Nonaktifkan',
menuSuffix: 'pengalihan YouTube -> Piped di bilah alamat',
},
is: {
activate: '✔️ Virkja',
deactivate: '❌ Aftvirkja',
menuSuffix: 'YouTube -> Piped áframsendingu í slóðastiku',
},
it: {
activate: '✔️ Attivare',
deactivate: '❌ Disattivare',
menuSuffix: 'il reindirizzamento di YouTube -> Piped nella barra degli indirizzi',
},
ja: {
activate: '✔️ 有効化',
deactivate: '❌ 無効化',
menuSuffix: 'アドレスバーのYouTube -> Pipedリダイレクト',
},
ka: {
activate: '✔️ გააქტიურება',
deactivate: '❌ გაუქმება',
menuSuffix: 'YouTube -> Piped გადამისამართება მისამართის ზოლში',
},
kk: {
activate: '✔️ Қосу',
deactivate: '❌ Өшіру',
menuSuffix: 'мекенжай жолағындағы YouTube -> Piped қайта бағыттау',
},
ko: {
activate: '✔️ 활성화',
deactivate: '❌ 비활성화',
menuSuffix: '주소 표시줄에서 YouTube -> Piped 리디렉션',
},
ku: {
activate: '✔️ چالاک کردن',
deactivate: '❌ ناچالاک کردن',
menuSuffix: 'ڕەوانەکردنی YouTube -> Piped لە تووپەڕەی ناونیشان',
},
ky: {
activate: '✔️ Иштетүү',
deactivate: '❌ Өчүрүү',
menuSuffix: 'дарек тилкесиндеги YouTube -> Piped багыттоо',
},
lt: {
activate: '✔️ Aktyvuoti',
deactivate: '❌ Išjungti',
menuSuffix: 'YouTube -> Piped peradresavimas adreso juostoje',
},
lv: {
activate: '✔️ Aktivizēt',
deactivate: '❌ Deaktivizēt',
menuSuffix: 'YouTube -> Piped pāradresācija adreses joslā',
},
mk: {
activate: '✔️ Активирај',
deactivate: '❌ Деактивирај',
menuSuffix: 'пренасочување на YouTube -> Piped во лентата за адреси',
},
ml: {
activate: '✔️ സജീവമാക്കുക',
deactivate: '❌ നിഷ്ക്രിയമാക്കുക',
menuSuffix: 'വിലാസ ബാറിൽ YouTube -> Piped തിരിച്ചുവിടൽ',
},
mn: {
activate: '✔️ Идэвхжүүлэх',
deactivate: '❌ Идэвхгүй болгох',
menuSuffix: 'хаягийн мөрөнд YouTube -> Piped чиглүүлэлт',
},
ms: {
activate: '✔️ Aktifkan',
deactivate: '❌ Nyahaktifkan',
menuSuffix: 'pengalihan YouTube -> Piped di bar alamat',
},
mt: {
activate: '✔️ Attiva',
deactivate: '❌ Itfi',
menuSuffix: 'reindirizzament YouTube -> Piped fil-barra tal-indirizzi',
},
nl: {
activate: '✔️ Activeren',
deactivate: '❌ Deactiveren',
menuSuffix: 'omleiding van YouTube -> Piped in de adresbalk',
},
no: {
activate: '✔️ Aktiver',
deactivate: '❌ Deaktiver',
menuSuffix: 'omdirigering av YouTube -> Piped i adressefeltet',
},
pa: {
activate: '✔️ ਸਰਗਰਮ',
deactivate: '❌ ਨਿਸ਼ਕ੍ਰਿਆ',
menuSuffix: 'ਐਡਰੈੱਸ ਬਾਰ ਵਿੱਚ YouTube -> Piped ਰੀਡਾਇਰੈਕਸ਼ਨ',
},
pl: {
activate: '✔️ Aktywuj',
deactivate: '❌ Dezaktywuj',
menuSuffix: 'przekierowanie YouTube -> Piped na pasku adresu',
},
ps: {
activate: '✔️ فعال کړئ',
deactivate: '❌ غیر فعال کړئ',
menuSuffix: 'په ادرس بار کې د YouTube -> Piped بیا ځايونه',
},
pt: {
activate: '✔️ Ativar',
deactivate: '❌ Desativar',
menuSuffix: 'redirecionamento de YouTube -> Piped na barra de endereços',
},
ro: {
activate: '✔️ Activați',
deactivate: '❌ Dezactivați',
menuSuffix: 'redirecționarea YouTube -> Piped în bara de adrese',
},
ru: {
activate: '✔️ Активировать',
deactivate: '❌ Деактивировать',
menuSuffix: 'перенаправление YouTube -> Piped в адресной строке',
},
si: {
activate: '✔️ සක්රීය කරන්න',
deactivate: '❌ අක්රීය කරන්න',
menuSuffix: 'ලිපින තීරුවේ YouTube -> Piped යළියොමු කිරීම',
},
sk: {
activate: '✔️ Aktivovať',
deactivate: '❌ Deaktivovať',
menuSuffix: 'presmerovanie YouTube -> Piped v paneli s adresou',
},
sl: {
activate: '✔️ Aktiviraj',
deactivate: '❌ Deaktiviraj',
menuSuffix: 'preusmeritev YouTube -> Piped v naslovni vrstici',
},
sq: {
activate: '✔️ Aktivizo',
deactivate: '❌ Çaktivizo',
menuSuffix: 'ridrejtimi YouTube -> Piped në shiritin e adresave',
},
sr: {
activate: '✔️ Активирај',
deactivate: '❌ Деактивирај',
menuSuffix: 'преусмеравање YouTube -> Piped у адресној траци',
},
sv: {
activate: '✔️ Aktivera',
deactivate: '❌ Inaktivera',
menuSuffix: 'omdirigering av YouTube -> Piped i adressfältet',
},
sw: {
activate: '✔️ Amilisha',
deactivate: '❌ Zima',
menuSuffix: 'uelekezaji wa YouTube -> Piped kwenye upau wa anwani',
},
ta: {
activate: '✔️ செயலில் அமற்று',
deactivate: '❌ செயலிழக்கவமை',
menuSuffix: 'முகவரி பட்டையில் YouTube -> Piped மறைமுகம்',
},
te: {
activate: '✔️ సక్రియం చేయండి',
deactivate: '❌ నిర్వీర్యం చేయండి',
menuSuffix: 'అడ్రస్ బార్లో YouTube -> Piped దారి మళ్లింపు',
},
th: {
activate: '✔️ เปิดใช้งาน',
deactivate: '❌ ปิดใช้งาน',
menuSuffix: 'การเปลี่ยนเส้นทาง YouTube -> Piped ในแถบที่อยู่',
},
tk: {
activate: '✔️ Işjeňleşdiriň',
deactivate: '❌ Işjeň däl ediň',
menuSuffix: 'salgy setirinde YouTube -> Piped gönükdirmesi',
},
tl: {
activate: '✔️ Isaaktibo',
deactivate: '❌ I-deactivate',
menuSuffix: 'pag-redirect ng YouTube -> Piped sa address bar',
},
tr: {
activate: '✔️ Etkinleştir',
deactivate: '❌ Devre dışı bırak',
menuSuffix: 'adres çubuğunda YouTube -> Piped yönlendirmesi',
},
uk: {
activate: '✔️ Активувати',
deactivate: '❌ Деактивувати',
menuSuffix: 'перенаправлення YouTube -> Piped в адресному рядку',
},
ur: {
activate: '✔️ فعال کریں',
deactivate: '❌ غیر فعال کریں',
menuSuffix: 'ایڈریس بار میں YouTube -> Piped ری ڈائریکٹ',
},
uz: {
activate: '✔️ Faollashtirish',
deactivate: '❌ O‘chirish',
menuSuffix: 'manzil satrida YouTube -> Piped yo‘naltirish',
},
vi: {
activate: '✔️ Kích hoạt',
deactivate: '❌ Vô hiệu hóa',
menuSuffix: 'chuyển hướng YouTube -> Piped trên thanh địa chỉ',
},
xh: {
activate: '✔️ Yenza isebenze',
deactivate: '❌ Yenza ingasebenzi',
menuSuffix: 'ukuphambukiswa kwe-YouTube -> Piped kubha yedilesi',
},
yi: {
activate: '✔️ אַקטיווירן',
deactivate: '❌ דיאַקטיווירן',
menuSuffix: 'אַריבערפירן YouTube -> Piped אין די אַדרעס באַר',
},
zh: {
activate: '✔️ 启用',
deactivate: '❌ 禁用',
menuSuffix: '地址栏中的YouTube -> Piped重定向',
},
zu: {
activate: '✔️ Nika amandla',
deactivate: '❌ Khubaza',
menuSuffix: 'ukuphambukiswa kwe-YouTube -> Piped kubha yekheli',
}
};
// Détecter la langue du navigateur
const userLang = navigator.language.slice(0, 2);
const i18n = translations[userLang] || translations['en'];
// Fonction pour remplacer les liens YouTube par des liens Piped.video dans le HTML
function replaceYouTubeLinks() {
var links = document.getElementsByTagName('a');
for (var i = 0; i < links.length; i++) {
var link = links[i];
if (link.href.includes('youtube.com/watch?v=')) {
var videoId = link.href.split('v=')[1];
var ampersandPosition = videoId.indexOf('&');
if (ampersandPosition !== -1) {
videoId = videoId.substring(0, ampersandPosition);
}
link.href = 'https://piped.video/watch?v=' + videoId;
fetchMetadata(link, videoId);
}
}
}
// Fonction pour remplacer les embeds YouTube par des embeds Piped dans le HTML
function replaceYouTubeEmbeds() {
var iframes = document.getElementsByTagName('iframe');
for (var i = 0; i < iframes.length; i++) {
var iframe = iframes[i];
if (iframe.src.includes('youtube.com/embed/')) {
var videoId = iframe.src.split('embed/')[1];
var ampersandPosition = videoId.indexOf('?');
if (ampersandPosition !== -1) {
videoId = videoId.substring(0, ampersandPosition);
}
iframe.src = 'https://piped.video/embed/' + videoId;
fetchMetadata(iframe, videoId);
}
}
}
// Fonction pour récupérer les métadonnées de Piped.video
function fetchMetadata(element, videoId) {
var apiUrl = 'https://pipedapi.kavin.rocks/streams/' + videoId;
fetch(apiUrl)
.then(response => response.json())
.then(data => {
if (data.title) {
element.title = data.title;
}
if (data.thumbnailUrl) {
var img = document.createElement('img');
img.src = data.thumbnailUrl;
img.alt = data.title;
img.style.maxWidth = '100px'; // Ajustez la taille selon vos besoins
element.parentNode.insertBefore(img, element);
}
})
.catch(error => {
console.error('Erreur lors de la récupération des метадонны:', error);
});
}
// Exécuter les fonctions lors du chargement de la page
document.addEventListener('DOMContentLoaded', function() {
replaceYouTubeLinks();
replaceYouTubeEmbeds();
});
// Fonction pour rediriger les URLs YouTube dans la barre d'adresse
function redirectYouTube() {
if (window.location.href.includes('youtube.com/watch?v=')) {
// Extraire l'ID de la vidéo
var videoId = window.location.href.split('v=')[1];
var ampersandPosition = videoId.indexOf('&');
if (ampersandPosition !== -1) {
videoId = videoId.substring(0, ampersandPosition);
}
var newUrl = 'https://piped.video/watch?v=' + videoId;
// Arrêter le chargement de YouTube
window.stop();
// Rediriger vers Piped
window.location.replace(newUrl);
}
}
// Init MENU objs
const menuIDs = []; // to store registered cmds for removal while preserving order
const menuState = {
symbol: ['❌', '✔️'], word: ['OFF', 'ON'],
}
// Fonction pour mettre à jour le menu avec l'état actuel
function updateMenu() {
var redirectEnabled = GM_getValue('redirectYouTube', false);
var menuText = (redirectEnabled ? i18n.deactivate : i18n.activate) + ' ' + i18n.menuSuffix;
// Supprimer les anciennes commandes de menu
menuIDs.forEach(id => GM_unregisterMenuCommand(id));
menuIDs.length = 0;
// Ajouter la nouvelle commande de menu
var menuId = GM_registerMenuCommand(menuText, function() {
GM_setValue('redirectYouTube', !redirectEnabled);
updateMenu();
});
menuIDs.push(menuId);
}
// Vérifier et rediriger l'URL si la redirection est activée
if (GM_getValue('redirectYouTube', false)) {
redirectYouTube();
}
// Initialiser le menu
updateMenu();
})();