max / Universal Media Pro Toolkit | تحميل الفيديو، استخراج URL، تشغيل

// ==UserScript==
// @name           Universal Media Pro Toolkit | Video Download, URL Extract, Play
// @name:af        Universal Media Pro Toolkit | Video aflaai, URL onttrek, speel
// @name:am        Universal Media Pro Toolkit | ቪዲዮ አውርድ፣ URL ማውጣት፣ መጫወት
// @name:ar        Universal Media Pro Toolkit | تحميل الفيديو، استخراج URL، تشغيل
// @name:as        Universal Media Pro Toolkit | ভিডিঅ' ডাউনলোড, ইউআৰএল নিষ্কাশন, প্লে
// @name:az        Universal Media Pro Toolkit | Video Yükləmə, URL Çıxarma, Oyna
// @name:be        Universal Media Pro Toolkit | Спампаваць відэа, выняць URL, гуляць
// @name:bg        Universal Media Pro Toolkit | Изтегляне на видео, извличане на URL адрес, възпроизвеждане
// @name:bn        Universal Media Pro Toolkit | ভিডিও ডাউনলোড, ইউআরএল নিষ্কাশন, প্লে
// @name:bs        Universal Media Pro Toolkit | Preuzimanje videa, ekstrakcija URL-a, reprodukcija
// @name:ca        Universal Media Pro Toolkit | Baixada de vídeo, extracció d'URL, reproducció
// @name:cs        Universal Media Pro Toolkit | Stahování videa, extrakce URL, přehrávání
// @name:da        Universal Media Pro Toolkit | Videooverførsel, URL-ekstraktion, afspil
// @name:de        Universal Media Pro Toolkit | Video-Download, URL-Extraktion, Wiedergabe
// @name:dz        Universal Media Pro Toolkit | བརྙན་ལམ་ཕབ་ལེན། URL ཕྱིར་འདྲེན། གཏང་ནི།
// @name:el        Universal Media Pro Toolkit | Λήψη βίντεο, εξαγωγή URL, αναπαραγωγή
// @name:en        Universal Media Pro Toolkit | Video Download, URL Extract, Play
// @name:en-GB     Universal Media Pro Toolkit | Video Download, URL Extract, Play
// @name:en-US     Universal Media Pro Toolkit | Video Download, URL Extract, Play
// @name:eo        Universal Media Pro Toolkit | Video Elŝuto, URL Ekstraktado, Ludu
// @name:es        Universal Media Pro Toolkit | Descarga de video, extracción de URL, reproducción
// @name:es-419    Universal Media Pro Toolkit | Descarga de video, extracción de URL, reproducción
// @name:es-US     Universal Media Pro Toolkit | Descarga de video, extracción de URL, reproducción
// @name:et        Universal Media Pro Toolkit | Video allalaadimine, URL-i eraldamine, esitamine
// @name:eu        Universal Media Pro Toolkit | Bideoa deskargatu, URL erauzi, erreproduzitu
// @name:fa        Universal Media Pro Toolkit | دانلود ویدیو، استخراج URL، پخش
// @name:fi        Universal Media Pro Toolkit | Videon lataus, URL-osoitteen haku, toisto
// @name:fil       Universal Media Pro Toolkit | Video Download, Extract URL, Play
// @name:fr        Universal Media Pro Toolkit | Téléchargement vidéo, extraction d'URL, lecture
// @name:fr-CA     Universal Media Pro Toolkit | Téléchargement vidéo, extraction d'URL, lecture
// @name:ga        Universal Media Pro Toolkit | Íoslódáil Fíсеáin, Sliocht URL, Seinn
// @name:gl        Universal Media Pro Toolkit | Descarga de vídeos, extracción de URL, reprodución
// @name:gn        Universal Media Pro Toolkit | Video Download, URL Extract, Play
// @name:gu        Universal Media Pro Toolkit | વિડિઓ ડાઉનલોડ, URL નિષ્કર્ષણ, પ્લે
// @name:ha        Universal Media Pro Toolkit | Video Download, URL Extract, Play
// @name:hi        Universal Media Pro Toolkit | वीडियो डाउनलोड, यूआरएल निष्कर्षण, प्ले
// @name:hr        Universal Media Pro Toolkit | Preuzimanje videa, ekstrakcija URL-a, reprodukcija
// @name:hu        Universal Media Pro Toolkit | Videó letöltése, URL-kinyerés, lejátszás
// @name:hy        Universal Media Pro Toolkit | Տեսանյութերի ներբեռնում, URL-ի արդյունահանում, նվագարկում
// @name:id        Universal Media Pro Toolkit | Unduh Video, Ekstrak URL, Putar
// @name:ig        Universal Media Pro Toolkit | Video Download, URL Extract, Play
// @name:is        Universal Media Pro Toolkit | Video Download, URL Extract, Play
// @name:it        Universal Media Pro Toolkit | Download video, estrazione URL, riproduzione
// @name:iw        Universal Media Pro Toolkit | הורדת וידאו, חילוץ URL, הפעלה
// @name:ja        全能メディア工作台 | ビデオダウンロード、URL抽出、ワンクリック再生
// @name:jv        Universal Media Pro Toolkit | Ngundhuh Video, Ekstrak URL, Putar
// @name:ka        Universal Media Pro Toolkit | ვიდეოს ჩამოტვირთვა, URL-ის ამოღება, დაკვრა
// @name:kk        Universal Media Pro Toolkit | Бейне жүктеу, URL шығару, ойнату
// @name:km        Universal Media Pro Toolkit | ទាញយកវីដេអូ, ទាញយក URL, ចាក់
// @name:kn        Universal Media Pro Toolkit | ವೀಡಿಯೊ ಡೌನ್‌ಲೋಡ್, URL ಹೊರತೆಗೆಯುವಿಕೆ, ಪ್ಲೇ
// @name:ko        전능 미디어 워크스테이션 | 비디오 다운로드, URL 추출, 원클릭 재생
// @name:ky        Universal Media Pro Toolkit | Видео жүктөө, URL чыгаруу, ойнотуу
// @name:lo        Universal Media Pro Toolkit | ດາວໂຫລດວິດີໂອ, ແຍກ URL, ຫຼິ້ນ
// @name:lt        Universal Media Pro Toolkit | Vaizdo įrašų atsისიუნტიymas, URL išgavimas, atkūrimas
// @name:lv        Universal Media Pro Toolkit | Video lejupielāde, URL ieguve, atskaņošana
// @name:mg        Universal Media Pro Toolkit | Video Download, URL Extract, Play
// @name:mk        Universal Media Pro Toolkit | Преземање видео, екстракција на URL, пуштање
// @name:ml        Universal Media Pro Toolkit | വീഡിയോ ডাউনলোড, ইউআরএল নিষ্কাশന, প্লে
// @name:mn        Universal Media Pro Toolkit | Видео татах, URL задлах, тоглуулах
// @name:mr        Universal Media Pro Toolkit | व्हिडिओ डाउनलोड, URL एक्स्ट्रॅक्शन, प्ले
// @name:ms        Universal Media Pro Toolkit | Muat Turun Video, Ekstrak URL, Putar
// @name:mt        Universal Media Pro Toolkit | Video Download, URL Extract, Play
// @name:my        Universal Media Pro Toolkit | ဗီဒီယိုဒေါင်းလုဒ်၊ URL ထုတ်ယူခြင်း၊ ဖွင့်ခြင်း
// @name:ne        Universal Media Pro Toolkit | भिडियो डाउनलोड, URL निकासी, प्ले
// @name:nl        Universal Media Pro Toolkit | Video downloaden, URL extraheren, afspelen
// @name:no        Universal Media Pro Toolkit | Videonedlasting, URL-ekstraksjon, spill av
// @name:om        Universal Media Pro Toolkit | Video Download, URL Extract, Play
// @name:or        Universal Media Pro Toolkit | ଭିଡିଓ ଡାଉନଲୋଡ୍, URL ନିଷ୍କର୍ଷଣ, ପ୍ଲେ
// @name:pa        Universal Media Pro Toolkit | ਵੀਡੀਓ ਡਾਊਨਲੋਡ, URL ਐਕਸਟਰੈਕਸ਼ਨ, ਪਲੇ
// @name:pl        Universal Media Pro Toolkit | Pobieranie wideo, ekstrakcja URL, odtwarzanie
// @name:ps        Universal Media Pro Toolkit | Video Download, URL Extract, Play
// @name:pt        Universal Media Pro Toolkit | Download de vídeo, extração de URL, reprodução
// @name:pt-BR     Universal Media Pro Toolkit | Download de vídeo, extração de URL, reprodução
// @name:pt-PT     Universal Media Pro Toolkit | Download de vídeo, extração de URL, reprodução
// @name:ro        Universal Media Pro Toolkit | Descărcare video, extracție URL, redare
// @name:ru        Universal Media Pro Toolkit | Скачивание видео, извлечение URL, воспроизведение
// @name:rw        Universal Media Pro Toolkit | Video Download, URL Extract, Play
// @name:si        Universal Media Pro Toolkit | වීඩියෝ බාගත කිරීම, URL නිස්සාරණය, වාදනය
// @name:sk        Universal Media Pro Toolkit | Sťahovanie videa, extrakcia URL, prehrávanie
// @name:sl        Universal Media Pro Toolkit | Prenos videa, ekstrakcija URL-ja, predvajanje
// @name:sn        Universal Media Pro Toolkit | Video Download, URL Extract, Play
// @name:so        Universal Media Pro Toolkit | Video Download, URL Extract, Play
// @name:sq        Universal Media Pro Toolkit | Shkarkim video, nxjerrje URL-je, luaj
// @name:sr        Universal Media Pro Toolkit | Преузимање видеа, екстракција УРЛ-а, репродукција
// @name:sr-Latn   Universal Media Pro Toolkit | Preuzimanje videa, ekstrakcija URL-a, reprodukcija
// @name:st        Universal Media Pro Toolkit | Video Download, URL Extract, Play
// @name:sv        Universal Media Pro Toolkit | Videonedladdning, URL-extraktion, spela upp
// @name:sw        Universal Media Pro Toolkit | Kupakua Video, Uchimbaji wa URL, Cheza
// @name:ta        Universal Media Pro Toolkit | வீடியோ பதிவிறக்கம், URL பிரித்தெடுத்தல், இயக்கு
// @name:te        Universal Media Pro Toolkit | व्हिडिओ डाउनलो़ड, URL వెలికితీత, ప్లే
// @name:tg        Universal Media Pro Toolkit | Боргирии видео, истихроҷи URL, пахш
// @name:th        Universal Media Pro Toolkit | ดาวน์โหลดวิดีโอ, แยก URL, เล่น
// @name:ti        Universal Media Pro Toolkit | Video Download, URL Extract, Play
// @name:tk        Universal Media Pro Toolkit | Video Download, URL Extract, Play
// @name:tr        Universal Media Pro Toolkit | Video İndirme, URL Çıkarma, Oynat
// @name:ug        Universal Media Pro Toolkit | سىن چۈشۈرۈش، URL چىقىرىش، قويۇش
// @name:uk        Universal Media Pro Toolkit | Завантаження відео, витяг URL-адреси, відтворення
// @name:ur        Universal Media Pro Toolkit | ویڈیو ڈاؤن لوڈ، URL نکالنا، چلائیں
// @name:uz        Universal Media Pro Toolkit | Videoni yuklab olish, URL-ni chiqarib olish, ijro etish
// @name:vi        Universal Media Pro Toolkit | Tải video, Trích xuất URL, Phát
// @name:yo        Universal Media Pro Toolkit | Video Download, URL Extract, Play
// @name:zh-CN     全能媒体工作台 | 视频下载、URL地址提取、点击一键播放、万能网页视频播放器
// @name:zh-HK     全能媒體工作台 | 視頻下載、URL地址提取、點擊一鍵播放、萬能網頁視頻播放器
// @name:zh-TW     全能媒體工作台 | 視頻下載、URL地址提取、點擊一鍵播放、萬能網頁視頻播放器
// @name:zu        Universal Media Pro Toolkit | Video Download, URL Extract, Play
// @description    Extract direct video URLs, download media easily, and play in a clean, floating window with one click.
// @description:af Onttrek direkte video-URL's, laai media maklik af en speel dit met een klik in 'n skoon, drywende venster.
// @description:am ቀጥተኛ የቪዲዮ ዩአርኤሎችን ያውጡ፣ ሚዲያን በቀላሉ ያውርዱ እና በአንድ ጠቅታ ንፁህ እና ተንሳፋፊ መስኮት ውስጥ ያጫውቱ።
// @description:ar استخرج عناوين URL المباشرة للفيديو، وقم بتنزيل الوسائط بسهولة، وقم بتشغيلها بنقرة واحدة في نافذة عائمة نظيفة.
// @description:as পোনপটীয়া ভিডিঅ' ইউআৰএল উলিওৱা, সহজে মিডিয়া ডাউনলোড কৰা আৰু এটা ক্লিকেৰে পৰিষ্কার, ফ্ল'টিং উইণ্ডোত প্লে কৰা।
// @description:az Birbaşa video URL-lərini çıxarın, medianı asanlıqla yükləyin və bir kliklə təmiz, üzən pəncərədə oynayın.
// @description:be Вымайце прамыя відэа-URL, лёгка спампоўвайце медыя і прайгравайце адным пстрычкай мышы ў чыстым плаваючым акне.
// @description:bg Извличайте директни видео URL адреси, изтегляйте лесно мултимедия и възпроизвеждайте с едно щракване в изчистен, плаващ прозорец.
// @description:bn সরাসরি ভিডিও ইউআরএল বের করুন, সহজে মিডিয়া ডাউনলোড করুন এবং এক ক্লিকে পরিষ্কার, ভাসমান উইন্ডোতে প্লে করুন。
// @description:bs Izvucite direktne video URL-ove, lako preuzmite medije i reproducirajte jednim klikom u čistom, plutajućem prozoru.
// @description:ca Extreu URL de vídeo directes, baixa contingut multimèdia fàcilment i reprodueix amb un sol clic en una finestra flotant neta.
// @description:cs Extrahujte přímé adresy URL videa, snadno stahujte média a přehrávejte jedním kliknutím v čistém plovoucím okně.
// @description:da Udtræk direkte video-URL'er, download medier nemt, og afspil med et enkelt klik i et rent, svævende vindue.
// @description:de Extrahiere direkte Video-URLs, lade Medien einfach herunter und spiele sie mit einem Klick in einem sauberen, schwebenden Fenster ab.
// @description:dz བརྙན་ལམ་གྱི་ URL ཐད་ཀར་ཕྱིར་འདྲེན་འབད་ནི། བརྒྱུད་ལམ་ཕབ་ལེན་འཇམ་ཏོག་ཏོ་འབད་ནི། དྭངས་གསལ་གྱི་སྒོ་སྒྲིག་ནང་ཐེངས་གཅིག་ཨེབ་སྟེ་གཏང་ནི།
// @description:el Εξαγάγετε απευθείας διευθύνσεις URL βίντεο, κατεβάστε εύκολα μέσα και παίξτε με ένα κλικ σε ένα καθαρό, αιωρούμενο παράθυρο.
// @description:en Extract direct video URLs, download media easily, and play in a clean, floating window with one click.
// @description:en-GB Extract direct video URLs, download media easily, and play in a clean, floating window with one click.
// @description:en-US Extract direct video URLs, download media easily, and play in a clean, floating window with one click.
// @description:eo Eltiru rektajn video-URLojn, elŝutu amaskomunikilaron facile kaj ludu per unu klako en pura, flosanta fenestro.
// @description:es Extraiga URL de video directas, descargue medios fácilmente y reproduzca con un solo clic en una ventana flotante limpia.
// @description:es-419 Extraiga URL de video directas, descargue medios fácilmente y reproduzca con un solo clic en una ventana flotante limpia.
// @description:es-US Extraiga URL de video directas, descargue medios fácilmente y reproduzca con un solo clic en una ventana flotante limpia.
// @description:et Väljavõte otsestest video URL-idest, laadige meedia hõlpsalt alla ja esitage ühe klõpsuga puhtas ujuvas aknas.
// @description:eu Atera bideoaren URL zuzenak, deskargatu multimedia erraz eta erreproduzitu klik batekin leiho mugikor garbi batean.
// @description:fa URL های ویدیوی مستقیم را استخراج کنید، رسانه ها را به راحتی دانلود کنید و با یک کلیک در یک پنجره شناور تمیز پخش کنید.
// @description:fi Hae suorat videon URL-osoitteet, lataa mediaa helposti ja toista yhdellä napsautuksella puhtaassa, kelluvassa ikkunassa.
// @description:fil I-extract ang mga direktang URL ng video, madaling i-download ang media, at i-play sa isang click sa isang malinis, lumulutang na window.
// @description:fr Extrayez les URL directes des vidéos, téléchargez facilement des médias et lisez en un clic dans une fenêtre flottante propre.
// @description:fr-CA Extrayez les URL directes des vidéos, téléchargez facilement des médias e t lisez en un clic dans une fenêtre flottante propre.
// @description:ga Sliocht URLanna físeáin díreacha, íoslódáil na meáin go héasca, agus seinn le cliceáil amháin i bhfuinneog ghlan, ar snámh.
// @description:gl Extrae URL de vídeo directas, descarga contido multimedia facilmente e reproduce cun só clic nunha xanela flotante limpa.
// @description:gn Extract direct video URLs, download media easily, and play in a clean, floating window with one click.
// @description:gu ડાયરેક્ટ વિડિયો URL મેળવો, મીડિયા સરળતાથી ડાઉનલોડ કરો અને એક ક્લિકથી ક્લીન, ફ્લોટિંગ વિન્ડોમાં પ્લે કરો.
// @description:ha Extract direct video URLs, download media easily, and play in a clean, floating window with one click.
// @description:hi सीधे वीडियो URL निकालें, मीडिया आसानी से डाउनलोड करें, 和 एक क्लिक से साफ, फ्लोटिंग विंडो में चलाएं।
// @description:hr Izvucite izravne video URL-ove, lako preuzmite medije i reproducirajte jednim klikom u čistom, plutajućem prozoru.
// @description:hu Bontsa ki a közvetlen videó URL-eket, töltsön le egyszerűen médiát, és játsszon le egyetlen kattintással egy tiszta, lebegő ablakban.
// @description:hy Քաղեք ուղղակի տեսանյութերի URL-ները, հեշտությամբ ներբեռնեք լրատվամիջոցները և նվագարկեք մեկ կտտոցով մաքուր, լողացող պատուհանում:
// @description:id Ekstrak URL video langsung, unduh media dengan mudah, dan putar dengan satu klik di jendela mengambang yang bersih.
// @description:ig Extract direct video URLs, download media easily, and play in a clean, floating window with one click.
// @description:is Extract direct video URLs, download media easily, and play in a clean, floating window with one click.
// @description:it Estrai URL video diretti, scarica facilmente i contenuti multimediali e riproducili con un clic in una finestra mobile pulita.
// @description:iw חלץ כתובות URL ישירות של וידאו, הורד מדיה בקלות והפעל בלחיצה אחת בחלון צף נקי.
// @description:ja 動画の直接URLを抽出し、メディアを簡単にダウンロードして、クリーンなフローティングウィンドウでワンクリック再生。
// @description:jv Ekstrak URL video langsung, unduh media kanthi gampang, lan putar nganggo siji klik ing jendela ngambang sig resik.
// @description:ka ამოიღეთ პირდაპირი ვიდეო URL-ები, მარტივად ჩამოტვირთეთ მედია და ითამაშეთ ერთი დაწკაპუნებით სუფთა, მცურავ ფანჯარაში.
// @description:kk Тікелей бейне URL мекенжайларын шығарып алыңыз, медианы оңай жүктеп алыңыз және таза, қалқымалы терезеде бір рет басу арқылы ойнатыңыз.
// @description:km ទាញយក URL វីដេអូផ្ទាល់ ទាញយកមេឌៀយ៉ាងងាយស្រួល និងលេងដោយចុចតែម្តងក្នុងបង្អួចអណ្តែតទឹកស្អាត។
// @description:kn ನೇರ ವೀಡಿಯೊ URL ಗಳನ್ನು ಹೊರತೆಗೆಯಿರಿ, ಮಾಧ್ಯಮವನ್ನು ಸುಲಭವಾಗಿ ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ ಮತ್ತು ಒಂದು ಕ್ಲಿಕ್‌ನಲ್ಲಿ ಸ್ವಚ್ಛವಾದ, ತೇಲುವ ವಿಂಡೋದಲ್ಲಿ ಪ್ಲೇ ಮಾಡಿ.
// @description:ko 직접 비디오 URL을 추출하고, 미디어를 쉽게 다운로드하고, 깨끗한 플로팅 창에서 클릭 한 번으로 재생합니다.
// @description:ky Түз видео URL-дарын чыгарып алыңыз, медианы оңай жүктөп алыңыз жана таза, калкыма терезеде бир чыкылдатуу менен ойнотуңуз.
// @description:lo ແຍກ URL ວິດີໂອໂດຍກົງ, ດາວໂຫລດສື່ໄດ້ຢ່າງງ่ายດາຍ, ແລະຫຼິ້ນດ້ວຍການຄລິກດຽວໃນປ່ອງຢ້ຽມທີ່ສະອາດ, ເລື່ອນໄດ້.
// @description:lt Ištraukite tiesioginius vaizdo įrašų URL, lengvai atsისიუნტიymas mediją ir paleiskite vienu paspaudimu švariame, slankiojančiame lange.
// @description:lv Izvelciet tiešos video URL, viegli lejupielādējiet medijus un atskaņojiet ar vienu klikšķi tīrā, peldošā logā.
// @description:mg Extract direct video URLs, download media easily, and play in a clean, floating window with one click.
// @description:mk Извлечете директни URL-адреси на видео, лесно преземајте медиуми и пуштајте со еден клик во чист, лебдечки прозорец.
// @description:ml നേരിട്ടുള്ള വീഡിയോ URL-കൾ എക്‌സ്‌ട്രാക്റ്റുചെയ്യുക, മീഡിയ എളുപ്പത്തിൽ ഡൗൺലോഡ് ചെയ്യുക, ശുദ്ധമായ ഫ്ലോട്ടിംഗ് വിൻഡോയിൽ ഒറ്റ ക്ലിക്കിലൂടെ പ്ലേ ചെയ്യുക.
// @description:mn Шууд видео URL-уудыг задалж, медиаг хялبارхан татаж аваад, цэвэрхэн, хөвөгч цонхонд нэг товшилтоор тоглуулаарай.
// @description:mr थेट व्हिडिओ URL काढा, मीडिया सहजपणे डाउनलोड करा आणि एका क्लिकवर स्वच्छ, फ्लोटिंग विंडोमध्ये प्ले करा.
// @description:ms Ekstrak URL video langsung, muat turun media dengan mudah dan putar dengan satu klik dalam tetingkap terapung yang bersih.
// @description:mt Estratt URL tal-vidjo diretti, niżżel il-midja faċilment, u ilgħab bi klikk waħda f'tieqa f'wiċċ l-ilma nadifa.
// @description:my တိုက်ရိုက်ဗီဒီယို URL များကို ထုတ်ယူပါ၊ မီဒီယာကို လွယ်ကူစွာ ဒေါင်းလုဒ်လုပ်ကာ သန့်ရှင်းသော လွင့်မျောနေသော ဝင်းဒိုးတွင် ကလစ်တစ်ချက်နှိပ်ရုံဖြင့် ဖွင့်ပါ။
// @description:ne प्रत्यक्ष भिडियो URL हरू निकाल्नुहोस्, मिडिया सजिलैसँग डाउनलोड गर्नुहोस्, 和 एक क्लिकमा सफा, फ्लोटिंग विन्डोમાં प्ले गर्नुहोस्।
// @description:nl Extraheer directe video-URL's, download media eenvoudig en speel af met één klik in een schoon, zwevend venster.
// @description:no Trekk ut direkte video-URL-er, last ned medier enkelt, og spill av med ett klikk i et rent, flytende vindu.
// @description:om Extract direct video URLs, download media easily, and play in a clean, floating window with one click.
// @description:or ସିଧାସଳଖ ଭିଡିଓ URL ଗୁଡିକ ବାହାର କରନ୍ତୁ, ସହଜରେ ମିଡିଆ ଡାଉନଲୋଡ୍ କରନ୍ତୁ ଏବଂ ଏକ କ୍ଲିକରେ ଏକ ସ୍ୱଚ୍ଛ, ଭାସମାନ ୱିଣ୍ଡୋରେ ପ୍ଲେ କରନ୍ତୁ |
// @description:pa ਸਿੱਧੇ ਵੀਡੀਓ URL ਐਕਸਟਰੈਕਟ ਕਰੋ, ਮੀਡੀਆ ਨੂੰ ਆਸਾਨੀ ਨਾਲ ਡਾਊਨਲੋਡ ਕਰੋ, 和 ਇੱਕ ਕਲਿੱਕ ਨਾਲ ਇੱਕ ਸਾਫ਼, ਫਲੋਟਿੰਗ ਵਿੰਡੋ ਵਿੱਚ ਚਲਾਓ।
// @description:pl Wyodrębnij bezpośrednie adresy URL wideo, łatwo pobieraj multimedia i odtwarzaj jednym kliknięciem w czystym, pływającym oknie.
// @description:ps Extract direct video URLs, download media easily, and play in a clean, floating window with one click.
// @description:pt Extraia URLs de vídeo diretos, baixe mídia facilmente e reproduza com um clique em uma janela flutuante limpa.
// @description:pt-BR Extraia URLs de vídeo diretos, baixe mídia facilmente e reproduza com um clique em uma janela flutuante limpa.
// @description:pt-PT Extraia URLs de vídeo diretos, baixe mídia facilmente e reproduza com um clique em uma janela flutuante limpa.
// @description:ro Extrageți adresele URL video directe, descărcați cu ușurință conținutul media și redați cu un singur clic într-o fereastră plutitoare curată.
// @description:ru Извлекайте прямые ссылки на видео, легко скачивайте медиаконтент и воспроизводите его одним кликом в чистом плавающем окне.
// @description:rw Extract direct video URLs, download media easily, and play in a clean, floating window with one click.
// @description:si සෘජු වීඩියෝ URL උපුටා ගන්න, මාධ්‍ය පහසුවෙන් බාගත කරන්න, සහ පිරිසිදු, පාවෙන කවුළුවක එක ක්ලික් කිරීමකින් වාදනය කරන්න.
// @description:sk Extrahujte priame adresy URL videa, jednoducho sťahujte médiá a prehrávajte jedným kliknutím v čistom plávajúcom okne.
// @description:sl Izvlecite neposredne URL-je videoposnetkov, zlahka prenesite medije in jih predvajajte z enim klikom v čistem, plavajočem oknu.
// @description:sn Extract direct video URLs, download media easily, and play in a clean, floating window with one click.
// @description:so Extract direct video URLs, download media easily, and play in a clean, floating window with one click.
// @description:sq Nxirrni URL-të e drejtpërdrejta të videos, shkarkoni mediat me lehtësi dhe luani me një klikim në një dritare të pastër, lundruese.
// @description:sr Извуците директне видео УРЛ-ове, лако преузмите медије и репродукујте једним кликом у чистом, плутајућем прозору.
// @description:sr-Latn Izvucite direktne video URL-ove, lako preuzmite medije i reprodukujte jednim klikom u čistom, plutajućem prozoru.
// @description:st Extract direct video URLs, download media easily, and play in a clean, floating window with one click.
// @description:sv Extrahera direkta video-URL:er, ladda ner media enkelt og spela upp med ett klick i ett rent, flytande fönster.
// @description:sw Toa URL za video moja kwa moja, pakua maudhui kwa urahisi, na ucheze kwa mbofyo mmoja katika dirisha safi, linaloelea.
// @description:ta நேரடி வீடியோ URLகளை பிரித்தெடுக்கவும், மீடியாவை எளிதாகப் பதிவிறக்கவும் மற்றும் சுத்தமான, மிதக்கும் சாளரத்தில் ஒரே கிளிக்கில் இயக்கவும்.
// @description:te थेट व्हिडिओ URL काढा, मीडिया सहजपणे डाउनलोड करा 和 एका क्लिकवर स्वच्छ, फ्लोटिंग विंडोमध्ये प्ले करा।
// @description:tg URL-ҳои мустақими видеоро истихроҷ кунед, медиаро ба осонӣ зеркашӣ кунед ва бо як клик дар равзанаи тоза ва шинокунанда пахш кунед.
// @description:th ดึง URL วิดีโอโดยตรง ดาวน์โหลดสื่ออย่างง่ายดาย และเล่นด้วยคลิกเดียวในหน้าต่างลอยที่สะอาดตา
// @description:ti Extract direct video URLs, download media easily, and play in a clean, floating window with one click.
// @description:tk Extract direct video URLs, download media easily, and play in a clean, floating window with one click.
// @description:tr Doğrudan video URL'lerini çıkarın, medyayı kolayca indirin ve temiz, yüzen bir pencerede tek tıkla oynatın.
// @description:ug بىۋاسىتە سىن URL لىرىنى چىقىرىڭ، مېدىيانى ئاسانلا چۈشۈرۈڭ ھەمدە پاكىز، لەيلىمە كۆزنەكتە بىر چېكىش ئارقىلىق قويۇڭ.
// @description:uk Витягуйте прямі URL-адреси відео, легко завантажуйте медіа та відтворюйте одним кліком у чистому плаваючому вікні.
// @description:ur براہ راست ویڈیو URL نکالیں، میڈیا کو آسانی سے ڈاؤن لوڈ کریں، 和 ایک کلک کے ساتھ صاف، تیرتی ہوئی کھڑکی میں چلائیں۔
// @description:uz To'g'ridan-to'g'ri video URL manzillarini ajratib oling, mediani osongina yuklab oling va toza, suzuvchi oynada bir marta bosish bilan ijro eting.
// @description:vi Trích xuất URL video trực tiếp, tải xuống phương tiện dễ dàng 和 phát bằng một cú nhấp chuột trong cửa sổ nổi sạch sẽ.
// @description:yo Extract direct video URLs, download media easily, and play in a clean, floating window with one click.
// @description:zh-CN 提取视频直链、一键下载媒体文件,并在极简悬浮窗中实现一键播放。
// @description:zh-HK 提取視頻直鏈、一鍵下載媒體文件,並在極簡懸浮窗中實現一鍵播放。
// @description:zh-TW 提取視頻直鏈、一鍵下載媒體文件,並在極簡懸浮窗中實現一鍵播放。
// @description:zu Extract direct video URLs, download media easily, and play in a clean, floating window with one click.
// @namespace      http://tampermonkey.net/
// @version        1.0.1
// @author         Kairox
// @license        MIT
// @match          *://*/*
// @require        https://cdn.jsdelivr.net/npm/hls.js@1.5.15/dist/hls.min.js
// @grant          GM_setClipboard
// @run-at         document-start
// ==/UserScript==

(function() {
    'use strict';

    let currentTarget = null;
    let isPlayerOpen = false;
    let latestSniffedUrl = '';
    let hlsInstance = null;

    const extractUrl = (url) => {
        if (!url || typeof url !== 'string') return;
        if (/\.(m3u8|mp4|flv|webm)(\?|$)/i.test(url)) latestSniffedUrl = url;
    };

    const origOpen = XMLHttpRequest.prototype.open;
    XMLHttpRequest.prototype.open = function(method, url) { extractUrl(url); return origOpen.apply(this, arguments); };
    const origFetch = window.fetch;
    window.fetch = async function(...args) { const url = typeof args[0] === 'string' ? args[0] : (args[0]?.url || ''); extractUrl(url); return origFetch.apply(this, args); };

    const getRealUrl = (mediaEl) => {
        if (!mediaEl) return '';
        let url = mediaEl.currentSrc || mediaEl.src;
        if (url && !url.startsWith('blob:')) return url;
        const source = mediaEl.querySelector('source');
        if (source && source.src && !source.src.startsWith('blob:')) return source.src;
        return latestSniffedUrl || url;
    };

    const isMediaValid = (mediaEl) => {
        if (!mediaEl) return false;
        if (mediaEl.error !== null || mediaEl.networkState === 3) return false;
        const rect = mediaEl.getBoundingClientRect();
        if (rect.width < 50 || rect.height < 50) return false;
        const url = getRealUrl(mediaEl);
        return !!(url && url.trim() !== '');
    };

    let mediaCache = [];
    const updateMediaCache = () => {
        const findMedia = (root) => {
            let list = Array.from(root.querySelectorAll('video'));
            let all = root.querySelectorAll('*');
            for (let i = 0; i < all.length; i++) {
                if (all[i].shadowRoot) list.push(...findMedia(all[i].shadowRoot));
            }
            return list;
        };
        try { mediaCache = findMedia(document); } catch(e) {}
    };
    setInterval(updateMediaCache, 500);
    document.addEventListener('DOMContentLoaded', updateMediaCache);

    const Icons = {
        play: `<svg viewBox="0 0 24 24"><path d="M8 5v14l11-7z"/></svg>`,
        copy: `<svg viewBox="0 0 24 24"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg>`,
        close: `<svg viewBox="0 0 24 24"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>`,
        check: `<svg viewBox="0 0 24 24"><path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"/></svg>`,
        error: `<svg viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"/></svg>`,
        download: `<svg viewBox="0 0 24 24"><path d="M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z"/></svg>`
    };

    let floatBtn, iframeContainer;

    const initTopLevelUI = () => {
        if (document.getElementById('umpt-float-btn')) return;

        floatBtn = document.createElement('div');
        floatBtn.id = 'umpt-float-btn';
        floatBtn.innerHTML = Icons.play;
        Object.assign(floatBtn.style, {
            position: 'fixed', width: '46px', height: '46px',
            background: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',
            borderRadius: '50%', display: 'none', alignItems: 'center', justifyContent: 'center',
            zIndex: '2147483647', cursor: 'pointer', color: 'white',
            boxShadow: '0 8px 24px rgba(0,0,0,0.3)', border: '2px solid rgba(255,255,255,0.2)',
            transition: 'transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275)'
        });
        floatBtn.querySelector('svg').style.cssText = 'width: 24px; height: 24px; fill: white; margin-left: 3px; pointer-events: none;';
        floatBtn.onmouseenter = () => floatBtn.style.transform = 'scale(1.1)';
        floatBtn.onmouseleave = () => floatBtn.style.transform = 'scale(1)';
        floatBtn.onclick = (e) => { e.stopPropagation(); openPlayer(); };
        document.documentElement.appendChild(floatBtn);

        iframeContainer = document.createElement('iframe');
        iframeContainer.id = 'umpt-iframe';
        Object.assign(iframeContainer.style, {
            position: 'fixed', inset: '0', width: '100vw', height: '100vh',
            border: 'none', zIndex: '2147483647', display: 'none', background: 'transparent'
        });
        document.documentElement.appendChild(iframeContainer);
    };

    const buildIframeContent = (url, doc) => {
        const isM3U8 = url.includes('.m3u8');
        doc.open();
        doc.write(`
            <!DOCTYPE html>
            <html>
            <head>
                <style>
                    * { box-sizing: border-box; }
                    body { margin: 0; padding: 0; overflow: hidden; background: transparent; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; }
                    #overlay {
                        position: fixed; inset: 0; background: rgba(0, 0, 0, 0.92); backdrop-filter: blur(20px);
                        display: flex; flex-direction: column; align-items: center; justify-content: center;
                        opacity: 0; transition: opacity 0.3s ease;
                    }
                    #overlay.show { opacity: 1; }
                    #player-wrap {
                        width: 85vw; max-width: 1400px; height: 75vh;
                        background: transparent; border-radius: 8px;
                        box-shadow: 0 30px 60px rgba(0,0,0,0.6);
                        border: none; position: relative;
                        display: flex; flex-direction: column; overflow: hidden;
                        transform: scale(1);
                        transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
                    }
                    video {
                        width: 100%; height: 100%; flex: 1;
                        object-fit: contain; outline: none; background: #000;
                        border-radius: 8px; display: block;
                    }
                    #error-overlay {
                        position: absolute; inset: 0; background: rgba(0, 0, 0, 0.85); backdrop-filter: blur(8px);
                        display: none; flex-direction: column; align-items: center; justify-content: center;
                        color: #ff4757; z-index: 10; border-radius: 8px;
                    }
                    #error-overlay.show { display: flex; }
                    #error-overlay svg { width: 56px; height: 56px; fill: currentColor; }
                    #action-toolbar {
                        margin-top: 24px; display: flex; gap: 14px; background: rgba(30, 30, 30, 0.8);
                        padding: 10px 16px; border-radius: 50px; border: 1px solid rgba(255,255,255,0.1);
                        backdrop-filter: blur(20px); align-items: center;
                        transform: translateY(20px); transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
                    }
                    #overlay.show #action-toolbar { transform: translateY(0); }
                    .tool-btn {
                        display: flex; align-items: center; justify-content: center;
                        height: 40px; min-width: 40px; background: rgba(255,255,255,0.08);
                        border: 1px solid rgba(255,255,255,0.05); border-radius: 20px;
                        color: #eee; cursor: pointer; transition: 0.3s;
                        padding: 0 10px; white-space: nowrap; outline: none; position: relative; overflow: hidden;
                    }
                    .tool-btn svg { width: 18px; height: 18px; fill: currentColor; flex-shrink: 0; position: relative; z-index: 2; }
                    .tool-btn.disabled { pointer-events: none; opacity: 0.5; cursor: not-allowed; }
                    .tool-btn:not(.disabled):hover { background: rgba(255,255,255,0.15); color: #2af598; transform: scale(1.05); }
                    .tool-btn.close-btn:not(.disabled):hover { background: #ff4757; color: white; }
                    .tool-btn.dl-btn:not(.disabled):hover { color: #34ace0; }
                </style>
            </head>
            <body>
                <div id="overlay">
                    <div id="player-wrap">
                        <video id="native-vid" controls autoplay playsinline></video>
                        <div id="error-overlay">${Icons.error}</div>
                    </div>
                    <div id="action-toolbar">
                        <button class="tool-btn" id="t-copy">${Icons.copy}</button>
                        ${isM3U8 ? `<button class="tool-btn dl-btn" id="t-dl">${Icons.download}</button>` : ''}
                        <div style="width: 1px; height: 20px; background: rgba(255,255,255,0.15); margin: 0 2px;"></div>
                        <button class="tool-btn close-btn" id="t-close">${Icons.close}</button>
                    </div>
                </div>
            </body>
            </html>
        `);
        doc.close();

        requestAnimationFrame(() => doc.getElementById('overlay').classList.add('show'));

        const vid = doc.getElementById('native-vid');
        const triggerErrorState = () => {
            const errOverlay = doc.getElementById('error-overlay');
            if (errOverlay) errOverlay.classList.add('show');
            const copyBtn = doc.getElementById('t-copy');
            if (copyBtn) copyBtn.classList.add('disabled');
            const dlBtn = doc.getElementById('t-dl');
            if (dlBtn) dlBtn.classList.add('disabled');
        };

        vid.addEventListener('error', triggerErrorState);

        if (isM3U8) {
            if (window.Hls && Hls.isSupported()) {
                hlsInstance = new window.Hls();
                hlsInstance.loadSource(url);
                hlsInstance.attachMedia(vid);
                hlsInstance.on(window.Hls.Events.ERROR, function(event, data) {
                    if (data.fatal) triggerErrorState();
                });
            } else if (vid.canPlayType('application/vnd.apple.mpegurl')) {
                vid.src = url;
            } else {
                triggerErrorState();
            }
        } else {
            vid.src = url;
        }

        bindIframeEvents(doc, url, vid);
    };

    const bindIframeEvents = (doc, url, vid) => {
        const wrap = doc.getElementById('player-wrap');

        const adaptSize = () => {
            if (!vid || !vid.videoWidth) return;
            const maxW = window.innerWidth * 0.85;
            const maxH = window.innerHeight * 0.75;
            const videoRatio = vid.videoWidth / vid.videoHeight;
            const screenRatio = maxW / maxH;

            let finalW, finalH;
            if (videoRatio > screenRatio) {
                finalW = maxW;
                finalH = maxW / videoRatio;
            } else {
                finalH = maxH;
                finalW = maxH * videoRatio;
            }
            wrap.style.width = `${Math.floor(finalW)}px`;
            wrap.style.height = `${Math.floor(finalH)}px`;
        };

        vid.addEventListener('loadedmetadata', adaptSize);
        if (vid.readyState >= 1) adaptSize();

        if (window._umptResizeHandler) window.removeEventListener('resize', window._umptResizeHandler);
        window._umptResizeHandler = adaptSize;
        window.addEventListener('resize', window._umptResizeHandler);

        const triggerFeedback = (btn, isError = false) => {
            if (btn.classList.contains('disabled')) return;
            const originalSvg = btn.querySelector('svg').outerHTML;
            if (isError) {
                btn.querySelector('svg').outerHTML = Icons.error;
                btn.style.color = '#ff4757'; btn.style.background = 'rgba(255, 71, 87, 0.15)';
            } else {
                btn.querySelector('svg').outerHTML = Icons.check;
                btn.style.color = '#2af598'; btn.style.background = 'rgba(42, 245, 152, 0.15)';
            }
            setTimeout(() => {
                btn.style.color = ''; btn.style.background = '';
                setTimeout(() => { if(!btn.classList.contains('disabled')) btn.querySelector('svg').outerHTML = originalSvg; }, 200);
            }, 1500);
        };

        const btnCopy = doc.getElementById('t-copy');
        if (btnCopy) {
            btnCopy.onclick = () => {
                if (btnCopy.classList.contains('disabled')) return;
                GM_setClipboard(url);
                triggerFeedback(btnCopy);
            };
        }

        const btnDl = doc.getElementById('t-dl');
        if (btnDl) {
            btnDl.onclick = () => {
                if (btnDl.classList.contains('disabled')) return;
                window.open(`https://m3u8players.com/?url=${encodeURIComponent(url)}`, '_blank');
            };
        }

        const closeOverlay = () => {
            doc.getElementById('overlay').classList.remove('show');
            setTimeout(() => {
                iframeContainer.style.display = 'none';
                isPlayerOpen = false;
                if (hlsInstance) { hlsInstance.destroy(); hlsInstance = null; }
                vid.src = '';
            }, 300);
        };
        doc.getElementById('t-close').onclick = closeOverlay;
        doc.getElementById('overlay').onclick = (e) => { if (e.target.id === 'overlay') closeOverlay(); };
    };

    const openPlayer = () => {
        const url = getRealUrl(currentTarget);
        if (!url) return;
        isPlayerOpen = true;
        floatBtn.style.display = 'none';
        iframeContainer.style.display = 'block';
        buildIframeContent(url, iframeContainer.contentDocument);
    };

    let ticking = false;
    document.addEventListener('pointermove', (e) => {
        if (isPlayerOpen || !floatBtn) return;
        if (!ticking) {
            requestAnimationFrame(() => {
                let isHoveringAnyVideo = false;
                let hitRect = null;
                let hitElement = null;

                const liveMedia = Array.from(document.querySelectorAll('video'));
                const allMediaToScan = new Set([...liveMedia, ...mediaCache]);

                for (let media of allMediaToScan) {
                    const rect = media.getBoundingClientRect();
                    if (rect.width > 50 && rect.height > 50 &&
                        e.clientX >= rect.left && e.clientX <= rect.right &&
                        e.clientY >= rect.top && e.clientY <= rect.bottom) {
                        if (isMediaValid(media)) {
                            isHoveringAnyVideo = true;
                            hitRect = rect;
                            hitElement = media;
                            break;
                        }
                    }
                }

                const bRect = floatBtn.getBoundingClientRect();
                const isHoveringButton = floatBtn.style.display === 'flex' &&
                                         e.clientX >= (bRect.left - 15) && e.clientX <= (bRect.right + 15) &&
                                         e.clientY >= (bRect.top - 15) && e.clientY <= (bRect.bottom + 15);

                if (isHoveringAnyVideo) {
                    currentTarget = hitElement;
                    floatBtn.style.display = 'flex';
                    floatBtn.style.top = `${hitRect.top + 10}px`;
                    floatBtn.style.left = `${hitRect.right - 54}px`;
                } else if (!isHoveringButton) {
                    floatBtn.style.display = 'none';
                    currentTarget = null;
                }
                ticking = false;
            });
            ticking = true;
        }
    }, { capture: true, passive: true });

    window.addEventListener('scroll', () => {
        if (currentTarget && floatBtn.style.display === 'flex' && !isPlayerOpen) {
            const rect = currentTarget.getBoundingClientRect();
            floatBtn.style.top = `${rect.top + 10}px`;
            floatBtn.style.left = `${rect.right - 54}px`;
        }
    }, { capture: true, passive: true });

    if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initTopLevelUI); } else { initTopLevelUI(); }
})();