모든 웹사이트에서 YouTube 링크와 임베드를 Piped 링크로 대체

모든 웹사이트의 HTML에서 YouTube 링크와 임베드를 Piped.video 링크로 대체합니다.

2024-06-22 일자. 최신 버전을 확인하세요.

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