Pengganti tautan dan sematan YouTube dengan tautan Piped di semua situs web

Mengganti tautan dan sematan YouTube dengan tautan Piped.video di HTML di semua situs web.

Pada tanggal 22 Juni 2024. Lihat %(latest_version_link).

// ==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();
})();