// ==UserScript==
// @name YouTube Mobile Mode — 100% Fast! YouTube to Mobile Switcher
// @name:zh-cn YouTube 移动版模式 — 100% 极速!自动切换 YouTube 手机界面
// @name:zh-tw YouTube 移動版模式 — 100% 極速!自動切換 YouTube 手機介面
// @name:ja YouTube モバイルモード — 100% 高速! 常にモバイル版に切り替え
// @name:ko YouTube 모바일 모드 — 100% 빠름! YouTube를 모바일로 자동 전환
// @name:fr Mode YouTube Mobile — 100% Rapide! Passage automatique à la version mobile
// @name:de YouTube Mobil-Modus — 100% Schnell! Automatischer Wechsel zur mobilen Seite
// @name:es Modo YouTube Mobile — ¡100% Rápido! Cambio automático a la versión móvil
// @name:pt-br Modo YouTube Mobile — 100% Rápido! Alternar automaticamente para a versão móvel
// @name:ru YouTube Мобильный режим — 100% Быстро! Автоматическое переключение на мобильную версию
// @name:uk YouTube Мобільний режим — 100% Швидко! Автоматичне перемикання на мобільну версію
// @name:pl Tryb YouTube Mobile — 100% Szybko! Automatyczne przełączanie na wersję mobilną
// @name:it Modalità YouTube Mobile — 100% Veloce! Passaggio automatico alla versione mobile
// @name:nl YouTube Mobile-modus — 100% Snel! Automatische overschakeling naar de mobiele site
// @name:tr YouTube Mobil Modu — %100 Hızlı! Otomatik olarak mobil sürüme geç
// @name:vi Chế độ YouTube Mobile — 100% Nhanh! Tự động chuyển sang phiên bản di động
// @name:th โหมด YouTube Mobile — เร็ว 100%! สลับไปยังเวอร์ชันมือถือโดยอัตโนมัติ
// @name:id Mode YouTube Mobile — 100% Cepat! Beralih otomatis ke versi seluler
// @name:ms Mod YouTube Mudah Alih — 100% Pantas! Tukar automatik ke versi mudah alih
// @name:tl YouTube Mobile Mode — 100% Mabilis! Awtomatikong lumipat sa mobile na bersyon
// @name:ar وضع YouTube للجوال — سريع 100%! التبديل تلقائيا إلى نسخة المحمول
// @name:he YouTube מצב נייד — 100% מהיר! מעבר אוטומטי לגרסת המובייל
// @name:fa حالت یوتیوب موبایل — ۱۰۰٪ سریع! سوئیچ خودکار به نسخه موبایل
// @name:hi YouTube मोबाइल मोड — 100% तेज़! स्वचालित रूप से मोबाइल संस्करण पर स्विच करें
// @name:bn YouTube মোবাইল মোড — 100% দ্রুত! স্বয়ংক্রিয়ভাবে মোবাইল সংস্করণে স্যুইচ করুন
// @name:ta YouTube மொபைல் பயன்முறை — 100% வேகமாக! மொபைல் பதிப்பிற்கு தானாக மாறவும்
// @name:te YouTube మొబైల్ మోడ్ — 100% వేగంగా! స్వయంచాలక మొబైల్ వెర్షన్కు మారండి
// @name:mr YouTube मोबाईल मोड — 100% वेगाने! स्वयंचलित मोबाइल आवृत्तीवर स्विच करा
// @name:ur YouTube موبائل موڈ — 100% تیز! خودکار موبائل ورژن پر سوئچ کریں
// @name:sv YouTube Mobilläge — 100% Snabb! Växla automatiskt till mobilversionen
// @name:da YouTube Mobil-tilstand — 100% Hurtig! Skift automatisk til mobilversionen
// @name:nb YouTube Mobilmodus — 100% Rask! Bytt automatisk til mobilversjonen
// @name:fi YouTube Mobiilitila — 100% Nopea! Vaihda automaattisesti mobiiliversioon
// @name:cs YouTube Mobilní režim — 100% Rychle! Automatické přepnutí na mobilní verzi
// @name:sk YouTube Mobilný režim — 100% Rýchlo! Automatické prepnutie na mobilnú verziu
// @name:hu YouTube Mobil mód — 100% Gyors! Automatikus váltás a mobil verzióra
// @name:ro Mod YouTube Mobil — 100% Rapid! Comutare automată la versiunea mobilă
// @name:bg YouTube Мобилен режим — 100% Бързо! Автоматично превключване към мобилна версия
// @name:hr YouTube Mobilni način rada — 100% Brzo! Automatsko prebacivanje na mobilnu verziju
// @name:sr YouTube Мобилни режим — 100% Брзо! Аутоматско пребацивање на мобилну верзију
// @name:sl YouTube Mobilni način — 100% Hitro! Samodejni preklop na mobilno različico
// @name:et YouTube Mobiilirežiim — 100% Kiire! Automaatne ümberlülitus mobiiliversioonile
// @name:lv YouTube Mobilais režīms — 100% Ātri! Automātiska pārslēgšanās uz mobilo versiju
// @name:lt YouTube Mobilusis režimas — 100% Greitai! Automatinis perjungimas į mobiliąją versiją
// @name:el YouTube Λειτουργία κινητού — 100% Γρήγορα! Αυτόματη εναλλαγή στην έκδοση για κινητά
// @name:ka YouTube მობილური რეჟიმი — 100% სწრაფად! ავტომატური გადართვა მობილურ ვერსიაზე
// @name:hy YouTube Բջջային ռեժիմ — 100% Արագ! Ավտոմատ անցում բջջային տարբերակին
// @name:sw YouTube Hali ya Mkono — 100% Haraka! Badilisha kiotomatiki hadi toleo la rununu
// @name:af YouTube Mobiele modus — 100% Vinnig! Skakel outomaties oor na mobiele weergawe
// @name:ca Mode YouTube Mòbil — 100% Ràpid! Commutació automàtica a la versió mòbil
// @name:eu YouTube Mugikorreko Modua — % 100 Kirola! Automatikoki aldatu mugikorreko bertsiora
// @name:gl Modo YouTube Móbil — 100% Rápido! Cambia automaticamente á versión móbil
// @name:eo YouTube Poŝtelefona Reĝimo — 100% Rapida! Aŭtomate ŝanĝi al poŝtelefona versio
// @name:cy Modd YouTube Symudol — 100% Cyflym! Newid yn awtomatig i fersiwn symudol
// @name:ga YouTube Mód Soghluaiste — 100% Fast! Athraigh go huathoibríoch chuig an leagan soghluaiste
// @name:mt YouTube Modalità Mobbli — 100% Fast! Swiċċ awtomatiku għall-verżjoni mobbli
// @name:is YouTube Mobile Mode — 100% Fast! Skipta sjálfkrafa yfir í farsímaútgáfu
// @name:mk YouTube Мобилен режим — 100% Брзо! Автоматско префрлање на мобилна верзија
// @name:sq YouTube Modaliteti Celular — 100% Shpejt! Kalimi automatik në versionin celular
// @name:bs YouTube Mobilni način rada — 100% Brzo! Automatsko prebacivanje na mobilnu verziju
// @name:az YouTube Mobil Rejimi — 100% Sürətli! Avtomatik olara mütəhərrik versiyaya keç
// @name:kk YouTube Мобильді режимі — 100% Жылдам! Мобильді нұсқаға автоматты түрде ауысу
// @name:uz YouTube Mobil rejimi — 100% Tezkor! Avtomatik ravishda mobil versiyaga o'tish
// @name:ky YouTube Мобилдик режими — 100% Тез! Автоматтык түрдө мобилдик версияга өтүү
// @name:tg YouTube Ҳолати мобилӣ — 100% Тез! Гузариши худкор ба версияи мобилӣ
// @name:mn YouTube Мобайл горим — 100% Хурдан! Мобайл хувилбар руу автоматаар шилжих
// @name:my YouTube မိုဘိုင်းမုဒ် — 100% မြန်ဆန်! မိုဘိုင်းဗားရှင်းသို့ အလိုအလျောက်ပြောင်းပါ။
// @name:km YouTube របៀបចល័ត — លឿន 100%! ប្តូរទៅកំណែចល័តដោយស្វ័យប្រវត្តិ
// @name:lo YouTube ໂໝດມືຖື — ໄວ 100%! ສະຫຼັບເປັນເວີຊັນມືຖືໂດຍອັດຕະໂນມັດ
// @name:si YouTube ජංගම ප්රකාරය — 100% වේගවත්! ස්වයංක්රීයව ජංගම අනුවාදයට මාරු වන්න
// @name:ne YouTube मोबाइल मोड — १००% छिटो! स्वचालित रूपमा मोबाइल संस्करणमा स्विच गर्नुहोस्
// @name:am ዩቲዩብ የሞባይል ሁነታ — 100% ፈጣን! በራስ-ሰር ወደ ሞባይል ስሪት ይቀይሩ
// @name:zu I-YouTube Mobile Mode — 100% Fast! Shintshela ngokuzenzakalelayo kunguqulo yeselula
// @name:xh I-YouTube Mobile Mode — 100% Fast! Tshintshela ngokuzenzekelayo kuguqulelo lweselula
// @name:yo YouTube Ipo Mobile — 100% Yara! Yipada laifọwọyi si ẹya alagbeka
// @name:ig YouTube Mobile Mode — 100% Fast! Gbanwee na akpaghị aka na mobile version
// @name:ha YouTube Yanayin Wayar hannu — 100% Saurayi! Canja wurin ta atomatik zuwa sigar wayar hannu
// @name:so YouTube Habka Mobilka — 100% Degdeg ah! Si toos ah ugu beddel nooca mobilka
// @name:rw YouTube Uburyo bwa Mobile — 100% Fast! Hindura mu buryo bwikora kuri verisiyo ya mobile
// @name:mg YouTube Mode Mobile — 100% Fast! Mifindra ho azy amin'ny dikan-teny finday
// @name:la YouTube Modus Mobilis — 100% Fast! Transitus automaticus ad versionem mobilem
// @name:mi YouTube Purei Pūkoro — 100% Tere! Huri aunoa ki te putanga pūkoro
// @name:sm YouTube Mobile Mode — 100% Fast! Sui otometi i le mobile version
// @name:to YouTube Tā Fakahokohoko — 100% Vave! Fetongi fakahokohoko ki he tatau fakaselularé
// @version 6.6.6
// @description Forced YouTube to mobile version (m.youtube.com). CPU-friendly, battery-saving, faster loading. 100% working, minimalist interface.
// @description:zh-CN 强制 YouTube 使用移动版界面 (m.youtube.com)。节省 CPU、更省电、加载更快。100% 稳定,极简界面。
// @description:zh-TW 強制 YouTube 使用移動版介面 (m.youtube.com)。節省 CPU、更省電、加載更快。100% 穩定,極簡介面。
// @description:ja YouTubeをモバイル版(m.youtube.com)に強制します。CPUフレンドリー、バッテリー節約、高速ロード。100%動作、ミニマリストなインターフェース。
// @description:ko YouTube를 모바일 버전(m.youtube.com)으로 강제 전환합니다. CPU 친화적, 배터리 절약, 빠른 로딩. 100% 작동, 미니멀한 인터페이스.
// @description:fr Force YouTube à la version mobile (m.youtube.com). Respectueux du CPU, économie de batterie, chargement plus rapide. Fonctionne à 100 %, interface minimaliste.
// @description:de Zwingt YouTube zur mobilen Version (m.youtube.com). CPU-freundlich, batteriesparend, schnelleres Laden. 100 % funktionierend, minimalistische Benutzeroberfläche.
// @description:es Fuerza a YouTube a la versión móvil (m.youtube.com). Ahorro de CPU, ahorro de batería, carga más rápida. 100% operativo, interfaz minimalista.
// @description:pt-BR Força o YouTube para a versão móvel (m.youtube.com). Amigável à CPU, economia de bateria, carregamento mais rápido. 100% funcional, interface minimalista.
// @description:ru Принудительно переключает YouTube на мобильную версию (m.youtube.com). Экономит ресурсы процессора и батарею, загружается быстрее. 100% работает, минималистичный интерфейс.
// @description:uk Примусово перемикає YouTube на мобільну версію (m.youtube.com). Економить ресурси процесора та батарею, завантажується швидше. 100% працює, мінімалістичний інтерфейс.
// @description:pl Wymusza na YouTube wersję mobilną (m.youtube.com). Przyjazny dla procesora, oszczędza baterię, szybsze ładowanie. 100% działa, minimalistyczny interfejs.
// @description:it Forza YouTube alla versione mobile (m.youtube.com). CPU-friendly, risparmio batteria, caricamento più veloce. Funzionante al 100%, interfaccia minimalista.
// @description:nl Dwingt YouTube naar de mobiele versie (m.youtube.com). CPU-vriendelijk, batterijbesparend, sneller laden. 100% werkend, minimalistische interface.
// @description:tr YouTube'u mobil sürüme (m.youtube.com) zorlar. CPU dostu, pil tasarrufu, daha hızlı yükleme. %100 çalışır, minimalist arayüz.
// @description:vi Buộc YouTube sử dụng phiên bản di động (m.youtube.com). Thân thiện với CPU, tiết kiệm pin, tải nhanh hơn. Hoạt động 100%, giao diện tối giản.
// @description:th บังคับ YouTube เป็นเวอร์ชันมือถือ (m.youtube.com) ประหยัด CPU, ประหยัดแบตเตอรี่, โหลดเร็วขึ้น ทำงาน 100%, อินเทอร์เฟซมินิมอล
// @description:id Memaksa YouTube ke versi seluler (m.youtube.com). Ramah CPU, hemat baterai, pemuatan lebih cepat. 100% berfungsi, antarmuka minimalis.
// @description:ms Paksa YouTube ke versi mudah alih (m.youtube.com). Mesra CPU, jimat bateri, pemuatan lebih cepat. 100% berfungsi, antara muka minimalis.
// @description:tl Pinipilit ang YouTube sa mobile na bersyon (m.youtube.com). CPU-friendly, battery-saving, mas mabilis na loading. 100% gumagana, minimalist na interface.
// @description:ar إجبار YouTube على إصدار الهاتف المحمول (m.youtube.com). صديق لوحدة المعالجة المركزية، موفر للبطارية، تحميل أسرع. يعمل بنسبة 100%، واجهة بسيطة.
// @description:he מאלץ את YouTube לגרסה הניידת (m.youtube.com). ידידותי ל-CPU, חוסך בסוללה, טעינה מהירה יותר. 100% עובד, ממשק מינימליסטי.
// @description:fa اجبار یوتیوب به نسخه موبایل (m.youtube.com). سازگار با CPU، صرفه جویی در باتری، بارگذاری سریعتر. ۱۰۰٪ کار می کند، رابط کاربری مینیمالیستی.
// @description:hi YouTube को मोबाइल संस्करण (m.youtube.com) पर बाध्य करता है। CPU-अनुकूल, बैटरी की बचत, तेज़ लोडिंग। 100% कार्यशील, न्यूनतम इंटरफ़ेस।
// @description:bn YouTube-কে মোবাইল সংস্করণে (m.youtube.com) বাধ্য করে। CPU-বান্ধব, ব্যাটারি-সাশ্রয়ী, দ্রুত লোডিং। 100% কার্যকরী, মিনিমালিস্ট ইন্টারফেস।
// @description:ta YouTube-ஐ மொபைல் பதிப்பிற்கு (m.youtube.com) கட்டாயப்படுத்துகிறது. CPU-க்கு ஏற்றது, பேட்டரி சேமிப்பு, வேகமான ஏற்றுதல். 100% வேலை செய்கிறது, குறைந்தபட்ச இடைமுகம்.
// @description:te YouTubeను మొబైల్ వెర్షన్ (m.youtube.com)కి మళ్లిస్తుంది. CPU-స్నేహపూర్వక, బ్యాటరీ ఆదా, వేగవంతమైన లోడింగ్. 100% పని చేస్తుంది, మినిమలిస్ట్ ఇంటర్ఫేస్.
// @description:mr YouTube ला मोबाइल आवृत्तीवर (m.youtube.com) सक्ती करते. CPU-अनुकूल, बॅटरी-बचत, जलद लोडिंग. 100% कार्यरत, किमान इंटरफेस.
// @description:ur YouTube کو موبائل ورژن (m.youtube.com) پر مجبور کرتا ہے۔ CPU فرینڈلی، بیٹری کی بچت، تیز لوڈنگ۔ 100% کام کرتا ہے، سادہ انٹرفेस۔
// @description:sv Tvingar YouTube till mobilversionen (m.youtube.com). CPU-vänlig, batterisparande, snabbare laddning. 100 % fungerande, minimalistiskt gränssnitt.
// @description:da Tvinger YouTube til mobilversionen (m.youtube.com). CPU-venlig, batteribesparende, hurtigere indlæsning. 100 % fungerer, minimalistisk grænseflade.
// @description:nb Tvinger YouTube til mobilversjonen (m.youtube.com). CPU-vennlig, batterisparende, raskere lasting. 100 % fungerer, minimalistisk grensesnitt.
// @description:fi Pakottaa YouTuben mobiiliversioon (m.youtube.com). CPU-ystävällinen, akkua säästävä, nopeampi lataus. 100 % toimiva, minimalistinen käyttöliittymä.
// @description:cs Vynutí YouTube na mobilní verzi (m.youtube.com). CPU-friendly, šetří baterii, rychlejší načítání. 100% funkční, minimalistické rozhraní.
// @description:sk Vynúti YouTube na mobilnú verziu (m.youtube.com). CPU-friendly, šetrí batériu, rýchlejšie načítanie. 100% funkčné, minimalistické rozhranie.
// @description:hu YouTube kényszerítése mobil verzióra (m.youtube.com). CPU-barát, akkumulátorkímélő, gyorsabb betöltés. 100%-ban működik, minimalista felület.
// @description:ro Forțează YouTube la versiunea mobilă (m.youtube.com). CPU-friendly, economisire a bateriei, încărcare mai rapidă. 100% funcțional, interfață minimalistă.
// @description:bg Принуждава YouTube към мобилна версия (m.youtube.com). Пести процесора и батерията, зарежда се по-бързо. 100% работещ, минималистичен интерфейс.
// @description:hr Prisiljava YouTube na mobilnu verziju (m.youtube.com). CPU-friendly, štedi bateriju, brže učitavanje. 100% radi, minimalno sučelje.
// @description:sr Присилно пребацује YouTube на мобилну верзију (m.youtube.com). Штеди ресурсе процесора и батерију, брже се учитава. 100% ради, минималистички интерфејс.
// @description:sl Prisili YouTube v mobilno različico (m.youtube.com). CPU-ju prijazno, varčevanje z baterijo, hitrejše nalaganje. 100-odstotno delujoč, minimalističen vmesnik.
// @description:et Sunnib YouTube'i mobiiliversioonile (m.youtube.com). CPU-sõbralik, akusäästlik, kiirem laadimine. 100% töötav, minimalistlik liides.
// @description:lv Piespiež YouTube izmantot mobilo versiju (m.youtube.com). Procesoram draudzīgs, taupa akumulatoru, ātrāka ielāde. 100% darbojas, minimālistiska saskarne.
// @description:lt Priverčia YouTube naudoti mobiliąją versiją (m.youtube.com). Draugiškas procesoriui, taupo bateriją, greitesnis įkėlimas. 100% veikiantis, minimalistinė sąsaja.
// @description:el Επιβάλλει το YouTube στην έκδοση για κινητά (m.youtube.com). Φιλικό προς την CPU, εξοικονόμηση μπαταρίας, ταχύτερη φόρτωση. 100% λειτουργικό, μινιμαλιστικό περιβάλλον εργασίας.
// @description:ka აიძულებს YouTube-ს გამოიყენოს მობილური ვერსია (m.youtube.com). CPU-სთან მეგობრული, ბატარეის დაზოგვა, უფრო სწრაფი დატვირთვა. 100% მუშაობს, მინიმალისტური ინტერფეისი.
// @description:hy Ստիպում է YouTube-ին օգտագործել բջջային տարբերակը (m.youtube.com): CPU-ի համար հարմար, մարտկոցի խնայողություն, ավելի արագ բեռնում: 100% աշխատող, մինիմալիստական ինտերֆեյս:
// @description:sw Inalazimisha YouTube kutumia toleo la rununu (m.youtube.com). Inatumia CPU kidogo, inaokoa betri, upakiaji wa haraka. Inafanya kazi 100%, kiolesura rahisi.
// @description:af Dwing YouTube na mobiele weergawe (m.youtube.com). CPU-vriendelik, batterybesparend, vinniger laai. 100% werkend, minimalistiese koppelvlak.
// @description:ca Força YouTube a la versió mòbil (m.youtube.com). Respectuós amb la CPU, estalvi de bateria, càrrega més ràpida. Funciona al 100%, interfície minimalista.
// @description:eu YouTube mugikorreko bertsiora behartzen du (m.youtube.com). CPU atsegina, bateria aurreztea, karga azkarragoa. % 100ean funtzionatzen du, interfaze minimalista.
// @description:gl Forza YouTube á versión móbil (m.youtube.com). Aforro de CPU, aforro de batería, carga máis rápida. 100% operativo, interface minimalista.
// @description:eo Devigas YouTube al poŝtelefona versio (m.youtube.com). CPU-amika, baterio-ŝparado, pli rapida ŝarĝo. 100% funkcianta, minimumista interfaco.
// @description:cy Yn gorfodi YouTube i fersiwn symudol (m.youtube.com). CPU-gyfeillgar, arbed batri, llwytho cyflymach. 100% yn gweithio, rhyngwyneb minimalaidd.
// @description:ga Fórsaí YouTube chuig an leagan soghluaiste (m.youtube.com). CPU-chairdiúil, sábháil ceallraí, luchtú níos tapúla. 100% ag obair, comhéadan íosta.
// @description:mt Iġiegħel lil YouTube għall-verżjoni mobbli (m.youtube.com). Favur is-CPU, iffrankar tal-batterija, tagħbija aktar mgħaġġla. 100% jaħdem, interface minimalista.
// @description:is Þvingar YouTube í farsímaútgáfu (m.youtube.com). CPU-vænt, rafhlöðusparnaður, hraðari hleðsla. 100% virkar, lægstur tengi.
// @description:mk Го принудува YouTube на мобилна верзија (m.youtube.com). Економичен со процесорот и батеријата, побрзо вчитување. 100% функционален, минималистички интерфејс.
// @description:sq Detyron YouTube në versionin celular (m.youtube.com). CPU-friendly, kursim baterie, ngarkim më i shpejtë. 100% funksional, ndërfaqe minimaliste.
// @description:bs Prisiljava YouTube na mobilnu verziju (m.youtube.com). CPU-friendly, štedi bateriju, brže učitavanje. 100% radi, minimalistički interfejs.
// @description:az YouTube-u mobil versiyaya (m.youtube.com) məcbur edir. CPU-dostu, batareya qənaəti, daha sürətli yükləmə. 100% işləyir, minimalist interfeys.
// @description:kk YouTube-ты мобильді нұсқаға (m.youtube.com) мәжбүрлейді. Процессорға тиімді, батареяны үнемдеу, жылдамырақ жүктеу. 100% жұмыс істейді, минималистік интерфейс.
// @description:uz YouTube-ni mobil versiyaga (m.youtube.com) majbur qiladi. CPU-tejamkor, batareya tejash, tezroq yuklash. 100% ishlaydi, minimalist interfeys.
// @description:ky YouTube'ду мобилдик версияга (m.youtube.com) мажбурлайт. Процессорго үнөмдүү, батареяны үнөмдөө, тезирээк жүктөө. 100% иштейт, минималисттик интерфейс.
// @description:tg YouTube-ро ба версияи мобилӣ (m.youtube.com) маҷбур мекунад. Сарфаи CPU ва батарея, боркунии тезтар. 100% кор мекунад, интерфейси минималистӣ.
// @description:mn YouTube-г мобайл хувилбар руу (m.youtube.com) албадан шилжүүлнэ. Процессорт хэмнэлттэй, зай хэмнэнэ, хурдан ачаална. 100% ажилладаг, минималист интерфэйс.
// @description:my YouTube ကို မိုဘိုင်းဗားရှင်း (m.youtube.com) သို့ အတင်းအကျပ်ပြောင်းခိုင်းသည်။ CPU အဆင်ပြေစေခြင်း၊ ဘက်ထရီချွေတာခြင်း၊ ပိုမိုမြန်ဆန်စွာ ဒေါင်းလုဒ်လုပ်ခြင်း။ 100% အလုပ်လုပ်သည်၊ ရိုးရှင်းသော အင်တာဖေ့စ်။
// @description:km បង្ខំ YouTube ទៅកំណែចល័ត (m.youtube.com)។ សន្សំសំចៃ CPU, សន្សំសំចៃថ្ម, ផ្ទុកលឿនជាងមុន។ ដំណើរការ 100%, ចុចយ៉ាងសាមញ្ញ។
// @description:lo ບັງຄັບ YouTube ເປັນເວີຊັນມືຖື (m.youtube.com). ປະຢັດ CPU, ປະຢັດແບັດເຕີຣີ, ໂຫລດໄວຂຶ້ນ. ເຮັດວຽກ 100%, ອິນເຕີເຟດແບບງ່າຍດາຍ.
// @description:si YouTube ජංගම අනුවාදයට (m.youtube.com) බල කරයි. CPU-හිතකාමී, බැටරි ඉතිරි කිරීම, වේගවත් පැටවීම. 100% ක්රියා කරයි, අවම අතුරු මුහුණතක්.
// @description:ne YouTube लाई मोबाइल संस्करण (m.youtube.com) मा बाध्य पार्छ। CPU-अनुकूल, ब्याट्री बचत, छिटो लोडिङ। १००% काम गर्छ, न्यूनतम इन्टरफेस।
// @description:am ዩቲዩብን ወደ ሞባይል ስሪት (m.youtube.com) ያስገድዳል። ሲፒዩ-ተስማሚ፣ የባትሪ ቁጠባ፣ ፈጣን ጭነት። 100% የሚሰራ፣ አነስተኛ በይነገጽ።
// @description:zu Iphoqa i-YouTube kunguqulo yeselula (m.youtube.com). I-CPU-friendly, iyakonga ibhetri, ukulayisha ngokushesha. Isebenza ngo-100%, isixhumi esibonakalayo esincane.
// @description:xh Inyanzela i-YouTube kuguqulelo lweselula (m.youtube.com). CPU-friendly, ukonga ibhetri, ukulayisha ngokukhawuleza. Isebenza nge-100%, i-minimalist interface.
// @description:yo Fi agbara mu YouTube si ẹya alagbeka (m.youtube.com). CPU-ore, fifipamọ batiri, ikojọpọ yiyara. 100% nṣiṣẹ, wiwo minimalist.
// @description:ig Na-amanye YouTube na mobile version (m.youtube.com). CPU-enyi na enyi, batrị na-azọpụta, ngwa ngwa loading. 100% na-arụ ọrụ, minimalist interface.
// @description:ha Yana tilasta YouTube zuwa sigar wayar hannu (m.youtube.com). Abokan CPU, ceton baturi, saurin lodi. 100% yana aiki, ƙaramin rarraba.
// @description:so Ku qasba YouTube nooca mobilka (m.youtube.com). CPU-saaxiibtinimo ah, badbaadinta batteriga, raridda degdega ah. 100% shaqaynaya, interface minimalist ah.
// @description:rw Ihatira YouTube kuri verisiyo ya mobile (m.youtube.com). CPU-nziza, kuzigama bateri, gupakira vuba. 100% ikora, minimalist interface.
// @description:mg Manery ny YouTube amin'ny dikan-teny finday (m.youtube.com). CPU-friendly, mitsitsy bateria, haingana kokoa ny fandefasana. 100% miasa, interface tsara.
// @description:la YouTube ad versionem mobilem (m.youtube.com) cogit. CPU-friendly, altilium salutaris, citius loading. 100% opus, minimalist interface.
// @description:mi Whakaaetia a YouTube ki te putanga pūkoro (m.youtube.com). He pai ki te CPU, he penapena pākahiko, he tere ake te uta. 100% mahi, atanga iti.
// @description:sm Fa'amalosi YouTube ile mobile version (m.youtube.com). CPU-friendly, fa'asaoina maa, vave uta. 100% galue, minimalist interface.
// @description:to Fakamālohiʻi ʻa e YouTube ki he tatau fakaselularé (m.youtube.com). CPU-anga-fakakaumeʻa, fakaʻehiʻehi mei he mālohi ʻo e maká, vave ange hono fakahokohokó. 100% ngāue, fōtunga fakaʻofoʻofa pē.// @description Forced YouTube to mobile version (m.youtube.com). CPU-friendly, battery-saving, faster loading. 100% working, minimalist interface.
// @description:zh-CN 强制 YouTube 使用移动版界面 (m.youtube.com)。节省 CPU、更省电、加载更快。100% 稳定,极简界面。
// @description:zh-TW 強制 YouTube 使用移動版介面 (m.youtube.com)。節省 CPU、更省電、加載更快。100% 穩定,極簡介面。
// @description:ja YouTubeをモバイル版(m.youtube.com)に強制します。CPUフレンドリー、バッテリー節約、高速ロード。100%動作、ミニマリストなインターフェース。
// @description:ko YouTube를 모바일 버전(m.youtube.com)으로 강제 전환합니다. CPU 친화적, 배터리 절약, 빠른 로딩. 100% 작동, 미니멀한 인터페이스.
// @description:fr Force YouTube à la version mobile (m.youtube.com). Respectueux du CPU, économie de batterie, chargement plus rapide. Fonctionne à 100 %, interface minimaliste.
// @description:de Zwingt YouTube zur mobilen Version (m.youtube.com). CPU-freundlich, batteriesparend, schnelleres Laden. 100 % funktionierend, minimalistische Benutzeroberfläche.
// @description:es Fuerza a YouTube a la versión móvil (m.youtube.com). Ahorro de CPU, ahorro de batería, carga más rápida. 100% operativo, interfaz minimalista.
// @description:pt-BR Força o YouTube para a versão móvel (m.youtube.com). Amigável à CPU, economia de bateria, carregamento mais rápido. 100% funcional, interface minimalista.
// @description:ru Принудительно переключает YouTube на мобильную версию (m.youtube.com). Экономит ресурсы процессора и батарею, загружается быстрее. 100% работает, минималистичный интерфейс.
// @description:uk Примусово перемикає YouTube на мобільну версію (m.youtube.com). Економить ресурси процесора та батарею, завантажується швидше. 100% працює, мінімалістичний інтерфейс.
// @description:pl Wymusza na YouTube wersję mobilną (m.youtube.com). Przyjazny dla procesora, oszczędza baterię, szybsze ładowanie. 100% działa, minimalistyczny interfejs.
// @description:it Forza YouTube alla versione mobile (m.youtube.com). CPU-friendly, risparmio batteria, caricamento più veloce. Funzionante al 100%, interfaccia minimalista.
// @description:nl Dwingt YouTube naar de mobiele versie (m.youtube.com). CPU-vriendelijk, batterijbesparend, sneller laden. 100% werkend, minimalistische interface.
// @description:tr YouTube'u mobil sürüme (m.youtube.com) zorlar. CPU dostu, pil tasarrufu, daha hızlı yükleme. %100 çalışır, minimalist arayüz.
// @description:vi Buộc YouTube sử dụng phiên bản di động (m.youtube.com). Thân thiện với CPU, tiết kiệm pin, tải nhanh hơn. Hoạt động 100%, giao diện tối giản.
// @description:th บังคับ YouTube เป็นเวอร์ชันมือถือ (m.youtube.com) ประหยัด CPU, ประหยัดแบตเตอรี่, โหลดเร็วขึ้น ทำงาน 100%, อินเทอร์เฟซมินิมอล
// @description:id Memaksa YouTube ke versi seluler (m.youtube.com). Ramah CPU, hemat baterai, pemuatan lebih cepat. 100% berfungsi, antarmuka minimalis.
// @description:ms Paksa YouTube ke versi mudah alih (m.youtube.com). Mesra CPU, jimat bateri, pemuatan lebih cepat. 100% berfungsi, antara muka minimalis.
// @description:tl Pinipilit ang YouTube sa mobile na bersyon (m.youtube.com). CPU-friendly, battery-saving, mas mabilis na loading. 100% gumagana, minimalist na interface.
// @description:ar إجبار YouTube على إصدار الهاتف المحمول (m.youtube.com). صديق لوحدة المعالجة المركزية، موفر للبطارية، تحميل أسرع. يعمل بنسبة 100%، واجهة بسيطة.
// @description:he מאלץ את YouTube לגרסה הניידת (m.youtube.com). ידידותי ל-CPU, חוסך בסוללה, טעינה מהירה יותר. 100% עובד, ממשק מינימליסטי.
// @description:fa اجبار یوتیوب به نسخه موبایل (m.youtube.com). سازگار با CPU، صرفه جویی در باتری، بارگذاری سریعتر. ۱۰۰٪ کار می کند، رابط کاربری مینیمالیستی.
// @description:hi YouTube को मोबाइल संस्करण (m.youtube.com) पर बाध्य करता है। CPU-अनुकूल, बैटरी की बचत, तेज़ लोडिंग। 100% कार्यशील, न्यूनतम इंटरफ़ेस।
// @description:bn YouTube-কে মোবাইল সংস্করণে (m.youtube.com) বাধ্য করে। CPU-বান্ধব, ব্যাটারি-সাশ্রয়ী, দ্রুত লোডিং। 100% কার্যকরী, মিনিমালিস্ট ইন্টারফেস।
// @description:ta YouTube-ஐ மொபைல் பதிப்பிற்கு (m.youtube.com) கட்டாயப்படுத்துகிறது. CPU-க்கு ஏற்றது, பேட்டரி சேமிப்பு, வேகமான ஏற்றுதல். 100% வேலை செய்கிறது, குறைந்தபட்ச இடைமுகம்.
// @description:te YouTubeను మొబైల్ వెర్షన్ (m.youtube.com)కి మళ్లిస్తుంది. CPU-స్నేహపూర్వక, బ్యాటరీ ఆదా, వేగవంతమైన లోడింగ్. 100% పని చేస్తుంది, మినిమలిస్ట్ ఇంటర్ఫేస్.
// @description:mr YouTube ला मोबाइल आवृत्तीवर (m.youtube.com) सक्ती करते. CPU-अनुकूल, बॅटरी-बचत, जलद लोडिंग. 100% कार्यरत, किमान इंटरफेस.
// @description:ur YouTube کو موبائل ورژن (m.youtube.com) پر مجبور کرتا ہے۔ CPU فرینڈلی، بیٹری کی بچت، تیز لوڈنگ۔ 100% کام کرتا ہے، سادہ انٹرفेस۔
// @description:sv Tvingar YouTube till mobilversionen (m.youtube.com). CPU-vänlig, batterisparande, snabbare laddning. 100 % fungerande, minimalistiskt gränssnitt.
// @description:da Tvinger YouTube til mobilversionen (m.youtube.com). CPU-venlig, batteribesparende, hurtigere indlæsning. 100 % fungerer, minimalistisk grænseflade.
// @description:nb Tvinger YouTube til mobilversjonen (m.youtube.com). CPU-vennlig, batterisparende, raskere lasting. 100 % fungerer, minimalistisk grensesnitt.
// @description:fi Pakottaa YouTuben mobiiliversioon (m.youtube.com). CPU-ystävällinen, akkua säästävä, nopeampi lataus. 100 % toimiva, minimalistinen käyttöliittymä.
// @description:cs Vynutí YouTube na mobilní verzi (m.youtube.com). CPU-friendly, šetří baterii, rychlejší načítání. 100% funkční, minimalistické rozhraní.
// @description:sk Vynúti YouTube na mobilnú verziu (m.youtube.com). CPU-friendly, šetrí batériu, rýchlejšie načítanie. 100% funkčné, minimalistické rozhranie.
// @description:hu YouTube kényszerítése mobil verzióra (m.youtube.com). CPU-barát, akkumulátorkímélő, gyorsabb betöltés. 100%-ban működik, minimalista felület.
// @description:ro Forțează YouTube la versiunea mobilă (m.youtube.com). CPU-friendly, economisire a bateriei, încărcare mai rapidă. 100% funcțional, interfață minimalistă.
// @description:bg Принуждава YouTube към мобилна версия (m.youtube.com). Пести процесора и батерията, зарежда се по-бързо. 100% работещ, минималистичен интерфейс.
// @description:hr Prisiljava YouTube na mobilnu verziju (m.youtube.com). CPU-friendly, štedi bateriju, brže učitavanje. 100% radi, minimalno sučelje.
// @description:sr Присилно пребацује YouTube на мобилну верзију (m.youtube.com). Штеди ресурсе процесора и батерију, брже се учитава. 100% ради, минималистички интерфејс.
// @description:sl Prisili YouTube v mobilno različico (m.youtube.com). CPU-ju prijazno, varčevanje z baterijo, hitrejše nalaganje. 100-odstotno delujoč, minimalističen vmesnik.
// @description:et Sunnib YouTube'i mobiiliversioonile (m.youtube.com). CPU-sõbralik, akusäästlik, kiirem laadimine. 100% töötav, minimalistlik liides.
// @description:lv Piespiež YouTube izmantot mobilo versiju (m.youtube.com). Procesoram draudzīgs, taupa akumulatoru, ātrāka ielāde. 100% darbojas, minimālistiska saskarne.
// @description:lt Priverčia YouTube naudoti mobiliąją versiją (m.youtube.com). Draugiškas procesoriui, taupo bateriją, greitesnis įkėlimas. 100% veikiantis, minimalistinė sąsaja.
// @description:el Επιβάλλει το YouTube στην έκδοση για κινητά (m.youtube.com). Φιλικό προς την CPU, εξοικονόμηση μπαταρίας, ταχύτερη φόρτωση. 100% λειτουργικό, μινιμαλιστικό περιβάλλον εργασίας.
// @description:ka აიძულებს YouTube-ს გამოიყენოს მობილური ვერსია (m.youtube.com). CPU-სთან მეგობრული, ბატარეის დაზოგვა, უფრო სწრაფი დატვირთვა. 100% მუშაობს, მინიმალისტური ინტერფეისი.
// @description:hy Ստիպում է YouTube-ին օգտագործել բջջային տարբերակը (m.youtube.com): CPU-ի համար հարմար, մարտկոցի խնայողություն, ավելի արագ բեռնում: 100% աշխատող, մինիմալիստական ինտերֆեյս:
// @description:sw Inalazimisha YouTube kutumia toleo la rununu (m.youtube.com). Inatumia CPU kidogo, inaokoa betri, upakiaji wa haraka. Inafanya kazi 100%, kiolesura rahisi.
// @description:af Dwing YouTube na mobiele weergawe (m.youtube.com). CPU-vriendelik, batterybesparend, vinniger laai. 100% werkend, minimalistiese koppelvlak.
// @description:ca Força YouTube a la versió mòbil (m.youtube.com). Respectuós amb la CPU, estalvi de bateria, càrrega més ràpida. Funciona al 100%, interfície minimalista.
// @description:eu YouTube mugikorreko bertsiora behartzen du (m.youtube.com). CPU atsegina, bateria aurreztea, karga azkarragoa. % 100ean funtzionatzen du, interfaze minimalista.
// @description:gl Forza YouTube á versión móbil (m.youtube.com). Aforro de CPU, aforro de batería, carga máis rápida. 100% operativo, interface minimalista.
// @description:eo Devigas YouTube al poŝtelefona versio (m.youtube.com). CPU-amika, baterio-ŝparado, pli rapida ŝarĝo. 100% funkcianta, minimumista interfaco.
// @description:cy Yn gorfodi YouTube i fersiwn symudol (m.youtube.com). CPU-gyfeillgar, arbed batri, llwytho cyflymach. 100% yn gweithio, rhyngwyneb minimalaidd.
// @description:ga Fórsaí YouTube chuig an leagan soghluaiste (m.youtube.com). CPU-chairdiúil, sábháil ceallraí, luchtú níos tapúla. 100% ag obair, comhéadan íosta.
// @description:mt Iġiegħel lil YouTube għall-verżjoni mobbli (m.youtube.com). Favur is-CPU, iffrankar tal-batterija, tagħbija aktar mgħaġġla. 100% jaħdem, interface minimalista.
// @description:is Þvingar YouTube í farsímaútgáfu (m.youtube.com). CPU-vænt, rafhlöðusparnaður, hraðari hleðsla. 100% virkar, lægstur tengi.
// @description:mk Го принудува YouTube на мобилна верзија (m.youtube.com). Економичен со процесорот и батеријата, побрзо вчитување. 100% функционален, минималистички интерфејс.
// @description:sq Detyron YouTube në versionin celular (m.youtube.com). CPU-friendly, kursim baterie, ngarkim më i shpejtë. 100% funksional, ndërfaqe minimaliste.
// @description:bs Prisiljava YouTube na mobilnu verziju (m.youtube.com). CPU-friendly, štedi bateriju, brže učitavanje. 100% radi, minimalistički interfejs.
// @description:az YouTube-u mobil versiyaya (m.youtube.com) məcbur edir. CPU-dostu, batareya qənaəti, daha sürətli yükləmə. 100% işləyir, minimalist interfeys.
// @description:kk YouTube-ты мобильді нұсқаға (m.youtube.com) мәжбүрлейді. Процессорға тиімді, батареяны үнемдеу, жылдамырақ жүктеу. 100% жұмыс істейді, минималистік интерфейс.
// @description:uz YouTube-ni mobil versiyaga (m.youtube.com) majbur qiladi. CPU-tejamkor, batareya tejash, tezroq yuklash. 100% ishlaydi, minimalist interfeys.
// @description:ky YouTube'ду мобилдик версияга (m.youtube.com) мажбурлайт. Процессорго үнөмдүү, батареяны үнөмдөө, тезирээк жүктөө. 100% иштейт, минималисттик интерфейс.
// @description:tg YouTube-ро ба версияи мобилӣ (m.youtube.com) маҷбур мекунад. Сарфаи CPU ва батарея, боркунии тезтар. 100% кор мекунад, интерфейси минималистӣ.
// @description:mn YouTube-г мобайл хувилбар руу (m.youtube.com) албадан шилжүүлнэ. Процессорт хэмнэлттэй, зай хэмнэнэ, хурдан ачаална. 100% ажилладаг, минималист интерфэйс.
// @description:my YouTube ကို မိုဘိုင်းဗားရှင်း (m.youtube.com) သို့ အတင်းအကျပ်ပြောင်းခိုင်းသည်။ CPU အဆင်ပြေစေခြင်း၊ ဘက်ထရီချွေတာခြင်း၊ ပိုမိုမြန်ဆန်စွာ ဒေါင်းလုဒ်လုပ်ခြင်း။ 100% အလုပ်လုပ်သည်၊ ရိုးရှင်းသော အင်တာဖေ့စ်။
// @description:km បង្ខំ YouTube ទៅកំណែចល័ត (m.youtube.com)។ សន្សំសំចៃ CPU, សន្សំសំចៃថ្ម, ផ្ទុកលឿនជាងមុន។ ដំណើរការ 100%, ចុចយ៉ាងសាមញ្ញ។
// @description:lo ບັງຄັບ YouTube ເປັນເວີຊັນມືຖື (m.youtube.com). ປະຢັດ CPU, ປະຢັດແບັດເຕີຣີ, ໂຫລດໄວຂຶ້ນ. ເຮັດວຽກ 100%, ອິນເຕີເຟດແບບງ່າຍດາຍ.
// @description:si YouTube ජංගම අනුවාදයට (m.youtube.com) බල කරයි. CPU-හිතකාමී, බැටරි ඉතිරි කිරීම, වේගවත් පැටවීම. 100% ක්රියා කරයි, අවම අතුරු මුහුණතක්.
// @description:ne YouTube लाई मोबाइल संस्करण (m.youtube.com) मा बाध्य पार्छ। CPU-अनुकूल, ब्याट्री बचत, छिटो लोडिङ। १००% काम गर्छ, न्यूनतम इन्टरफेस।
// @description:am ዩቲዩብን ወደ ሞባይል ስሪት (m.youtube.com) ያስገድዳል። ሲፒዩ-ተስማሚ፣ የባትሪ ቁጠባ፣ ፈጣን ጭነት። 100% የሚሰራ፣ አነስተኛ በይነገጽ።
// @description:zu Iphoqa i-YouTube kunguqulo yeselula (m.youtube.com). I-CPU-friendly, iyakonga ibhetri, ukulayisha ngokushesha. Isebenza ngo-100%, isixhumi esibonakalayo esincane.
// @description:xh Inyanzela i-YouTube kuguqulelo lweselula (m.youtube.com). CPU-friendly, ukonga ibhetri, ukulayisha ngokukhawuleza. Isebenza nge-100%, i-minimalist interface.
// @description:yo Fi agbara mu YouTube si ẹya alagbeka (m.youtube.com). CPU-ore, fifipamọ batiri, ikojọpọ yiyara. 100% nṣiṣẹ, wiwo minimalist.
// @description:ig Na-amanye YouTube na mobile version (m.youtube.com). CPU-enyi na enyi, batrị na-azọpụta, ngwa ngwa loading. 100% na-arụ ọrụ, minimalist interface.
// @description:ha Yana tilasta YouTube zuwa sigar wayar hannu (m.youtube.com). Abokan CPU, ceton baturi, saurin lodi. 100% yana aiki, ƙaramin rarraba.
// @description:so Ku qasba YouTube nooca mobilka (m.youtube.com). CPU-saaxiibtinimo ah, badbaadinta batteriga, raridda degdega ah. 100% shaqaynaya, interface minimalist ah.
// @description:rw Ihatira YouTube kuri verisiyo ya mobile (m.youtube.com). CPU-nziza, kuzigama bateri, gupakira vuba. 100% ikora, minimalist interface.
// @description:mg Manery ny YouTube amin'ny dikan-teny finday (m.youtube.com). CPU-friendly, mitsitsy bateria, haingana kokoa ny fandefasana. 100% miasa, interface tsara.
// @description:la YouTube ad versionem mobilem (m.youtube.com) cogit. CPU-friendly, altilium salutaris, citius loading. 100% opus, minimalist interface.
// @description:mi Whakaaetia a YouTube ki te putanga pūkoro (m.youtube.com). He pai ki te CPU, he penapena pākahiko, he tere ake te uta. 100% mahi, atanga iti.
// @description:sm Fa'amalosi YouTube ile mobile version (m.youtube.com). CPU-friendly, fa'asaoina maa, vave uta. 100% galue, minimalist interface.
// @description:to Fakamālohiʻi ʻa e YouTube ki he tatau fakaselularé (m.youtube.com). CPU-anga-fakakaumeʻa, fakaʻehiʻehi mei he mālohi ʻo e maká, vave ange hono fakahokohokó. 100% ngāue, fōtunga fakaʻofoʻofa pē.
// @namespace http://tampermonkey.net/
// @author ?
// @license CC-BY-4.0
// @run-at document-start
// @noframes
// @match https://www.youtube.com/*
// @match https://m.youtube.com/*
// @grant GM_registerMenuCommand
// ==/UserScript==
(function () {
'use strict';
// ─────────────────────────────────────────────────────────────
// Coq-ish FORMAL MODEL (comments only)
//
// (* Abstract state at document-start *)
// Record State := {
// curHost : string;
// curPath : string;
// cookieHop : option string; (* raw cookie string *)
// }.
//
// Definition AllowedHost (h:string) : Prop :=
// h = "youtube.com" \/ h = "www.youtube.com" \/ h = "m.youtube.com".
//
// Definition sanitize (u:URL) : URL :=
// u with queryParams := (remove "persist_app" (remove "app" u.queryParams)).
//
// Definition appForHost (h:string) : string :=
// if startsWith "m." h then "m" else "desktop".
//
// Invariants we enforce by construction:
//
// INV_SINGLE_REDIRECT:
// In one run, at most one location.replace is executed.
//
// INV_COOKIE_ONESHOT:
// If hop cookie exists, it is deleted BEFORE any redirect attempt.
//
// INV_URL_SANITIZE_STRONG:
// Final redirect URL has:
// - no persist_app
// - exactly one app param, matching destination host
//
// INV_NO_OPEN_REDIRECT:
// Redirect only to AllowedHost; otherwise do nothing.
//
// Totality / “no exceptions” principle:
// All URL parsing is guarded; malformed inputs lead to safe no-op.
// ─────────────────────────────────────────────────────────────
const COOKIE_NAME = 'userjs-ym-url';
const COOKIE_MAX_AGE_SEC = 30;
// Keep cookie shared across youtube.com subdomains (m./www.)
const COOKIE_ATTR = 'Domain=.youtube.com; Path=/; Secure; SameSite=Lax';
// ─────────────────────────────────────────────────────────────
// Total URL parsing (never throw)
// ─────────────────────────────────────────────────────────────
function tryParseUrl(s) {
try { return new URL(s); } catch { return null; }
}
function isAllowedHost(host) {
return host === 'youtube.com' || host === 'www.youtube.com' || host === 'm.youtube.com';
}
function canonicalizeHost(u) {
// Normalize youtube.com -> www.youtube.com (optional but makes proofs simpler)
if (u.hostname === 'youtube.com') u.hostname = 'www.youtube.com';
return u;
}
function sanitizeUrlObj(u) {
// Remove switching control params; ensures sanitize idempotence
u.searchParams.delete('persist_app');
u.searchParams.delete('app');
return u;
}
function appForHost(host) {
return host.startsWith('m.') ? 'm' : 'desktop';
}
function enforceFinalApp(u) {
// Strong sanitize + correct app for destination host
sanitizeUrlObj(u);
u.searchParams.set('app', appForHost(u.hostname));
return u;
}
// ─────────────────────────────────────────────────────────────
// Ultra-lite cookie helpers (robust boundary matching)
// ─────────────────────────────────────────────────────────────
function getCookieValue(name) {
const all = document.cookie;
if (!all) return '';
// Find exact token boundary: start or '; ' then name=
const key = name + '=';
let i = 0;
while (true) {
const idx = all.indexOf(key, i);
if (idx < 0) return '';
// boundary check: idx==0 OR preceded by ';'
const okBoundary = (idx === 0) || (all.charCodeAt(idx - 1) === 59 /* ';' */);
if (okBoundary) {
let end = all.indexOf(';', idx);
if (end < 0) end = all.length;
const raw = all.slice(idx + key.length, end);
try { return decodeURIComponent(raw); } catch { return raw; }
}
i = idx + key.length;
}
}
function setCookieValue(name, value, maxAgeSec) {
// Keep it short-lived; enough for one hop
const v = encodeURIComponent(value);
document.cookie = `${name}=${v}; Max-Age=${maxAgeSec}; ${COOKIE_ATTR}`;
}
function deleteCookieValue(name) {
document.cookie = `${name}=; Max-Age=0; ${COOKIE_ATTR}`;
}
// ─────────────────────────────────────────────────────────────
// Phase 0: cookie hop (highest priority)
// ─────────────────────────────────────────────────────────────
const hopRaw = getCookieValue(COOKIE_NAME);
if (hopRaw) {
// INV_COOKIE_ONESHOT: delete before any redirect attempt
deleteCookieValue(COOKIE_NAME);
// Total parsing + allowlist => INV_NO_OPEN_REDIRECT
const hopU = tryParseUrl(hopRaw);
if (hopU && isAllowedHost(hopU.hostname) && hopU.hostname.endsWith('youtube.com')) {
canonicalizeHost(hopU);
enforceFinalApp(hopU); // INV_URL_SANITIZE_STRONG
location.replace(hopU.toString()); // INV_SINGLE_REDIRECT via early return
}
return;
}
// ─────────────────────────────────────────────────────────────
// Phase 1: menu switch (only on top-level doc)
// ─────────────────────────────────────────────────────────────
const canMenu = (typeof GM_registerMenuCommand === 'function');
if (!canMenu) return;
const isMobileSite = location.hostname.startsWith('m.');
const eligibleReturn = (location.pathname === '/' || location.pathname === '/watch');
// (Intentionally minimal: only home/watch like original intent)
function addMenu(label, landingUrl, toMobile) {
GM_registerMenuCommand(label, function () {
// Menu click path: we only parse URL once for performance
if (eligibleReturn) {
const curU = tryParseUrl(location.href);
if (curU && curU.hostname && curU.hostname.endsWith('youtube.com')) {
sanitizeUrlObj(curU);
// Swap host deterministically
curU.hostname = toMobile ? 'm.youtube.com' : 'www.youtube.com';
canonicalizeHost(curU);
// Store sanitized swapped URL (no app/persist_app)
// (Next page load consumes it once)
setCookieValue(COOKIE_NAME, curU.toString(), COOKIE_MAX_AGE_SEC);
}
}
// Landing URL is fixed constant; replace avoids history bloat
location.replace(landingUrl);
});
}
if (!isMobileSite) {
// desktop -> mobile
addMenu('Switch to YouTube Mobile (persist)', 'https://m.youtube.com/?persist_app=1&app=m', true);
addMenu('Switch to YouTube Mobile (temp)', 'https://m.youtube.com/?persist_app=0&app=m', true);
} else {
// mobile -> desktop
addMenu('Switch to YouTube Desktop (persist)', 'https://www.youtube.com/?persist_app=1&app=desktop', false);
addMenu('Switch to YouTube Desktop (temp)', 'https://www.youtube.com/?persist_app=0&app=desktop', false);
}
})();