// ==UserScript==
// @name Telegram Media Downloader (Global Edition)
// @name:af Telegram Media Downloader (Video-aflaai, Oorspronklike beeld, Druk saam, PNG)
// @name:am የቴሌግራም ሚዲያ ማውረጃ (ቪዲዮ ማውረድ ፣ ኦሪጅናል ምስል ፣ ይጨመቁ ፣ PNG)
// @name:ar Telegram Media Downloader (تنزيل الفيديو ، الصورة الأصلية ، الضغط ، PNG)
// @name:as টেলিগ্ৰাম মিডিয়া ডাউনলোডাৰ (ভিডিঅ' ডাউনলোড, মূল ছবি, সংকুচিত, PNG)
// @name:az Telegram Media Yükləyici (Video yükləmə, Orijinal şəkil, Sıxışdır, PNG)
// @name:be Загрузнік медыя Telegram (Загрузка відэа, Арыгінальнае малюнак, Сціск, PNG)
// @name:bg Telegram Media Downloader (Изтегляне на видео, Оригинално изображение, Компресиране, PNG)
// @name:bn টেলিগ্রাম মিডিয়া ডাউনলোডার (ভিডিও ডাউনলোড, আসল ছবি, কম্প্রেস, PNG)
// @name:bs Telegram Media Downloader (Preuzimanje videa, Originalna slika, Kompresija, PNG)
// @name:ca Descarregador de Telegram (Descàrrega de vídeo, Imatge original, Comprimeix, PNG)
// @name:cs Telegram Downloader (Stahování videa, Originální obrázek, Komprese, PNG)
// @name:da Telegram Downloader (Videodownload, Originalt billede, Komprimer, PNG)
// @name:de Telegram Media Downloader (Video-Download, Originalbild, Komprimieren, PNG)
// @name:dz ཊེ་ལི་གྷརམ་ བརྙན་འཁོར་ཕབ་ལེན། (བརྙན་འཁོར། པར་བཟོ་རྣམ་འགྱུར། པར་བཙིར་གནོན། PNG)
// @name:el Λήψη Μέσων Telegram (Λήψη βίντεο, Πρωτότυπη εικόνα, Συμπίεση, PNG)
// @name:en Telegram Media Downloader (Global Edition - Video Download, Save Original, Compress, PNG)
// @name:eo Telegram Elŝutilo (Video-elŝuto, Originala bildo, Kunpremi, PNG)
// @name:es Telegram Media Downloader (Descarga de video, Imagen original, Comprimir, PNG)
// @name:et Telegrami meedia allalaadija (Video allalaadimine, Originaalpilt, Pakkimine, PNG)
// @name:eu Telegram Deskargatzailea (Bideoa deskargatu, Jatorrizko irudia, Konprimitu, PNG)
// @name:fa دانلودر تلگرام (دانلود ویدیو، تصویر اصلی، فشرده سازی، PNG)
// @name:fi Telegram-lataaja (Videon lataus, Alkuperäinen kuva, Pakkaus, PNG)
// @name:fil Telegram Downloader (Pag-download ng video, Orihinal na larawan, I-compress, PNG)
// @name:fr Telegram Media Downloader (Téléchargement de vidéo, Image originale, Compresser, PNG)
// @name:ga Íoslódálaí Telegram (Íoslódáil físeáin, Buníomhá, Comhbhrúigh, PNG)
// @name:gl Descargador de Telegram (Descarga de vídeos, Imaxe orixinal, Comprimir, PNG)
// @name:gn Desarga Telegram (Emboguejy video, Ta'anga tee, Ñemboguejy, PNG)
// @name:gu ટેલિગ્રામ મીડિયા ડાઉનલોડર (વિડિઓ ડાઉનલોડ, મૂળ છબી, કોમ્પ્રેસ, PNG)
// @name:ha Telegram Downloader (Zazzage bidiyo, Asali, Matse, PNG)
// @name:hi टेलीग्राम मीडिया डाउनलोडर (वीडियो डाउनलोड, मूल छवि सहेजें, संपीड़ित, PNG)
// @name:hr Telegram Downloader (Preuzimanje videa, Originalna slika, Komprimiranje, PNG)
// @name:hu Telegram Videó Letöltő (Videó letöltés, Eredeti kép, Tömörítés, PNG)
// @name:hy Telegram Ներբեռնիչ (Տեսանյութի ներբեռնում, Բնօրինակ պատկեր, Սեղմում, PNG)
// @name:id Telegram Media Downloader (Unduh video, Gambar asli, Kompres, PNG)
// @name:ig Budata Foto Telegram (Budata vidiyo, Nke mbụ, Mkpakọ, PNG)
// @name:is Telegram Niðurhalari (Myndbandaniðurhal, Upprunaleg mynd, Þjappa, PNG)
// @name:it Telegram Media Downloader (Download video, Immagine originale, Comprimi, PNG)
// @name:iw מוריד מדיה טלגרם (הורדת וידאו, שמירת תמונה מקורית, דחיסה, PNG)
// @name:ja Telegram動画ダウンロード (ビデオダウンロード、オリジナル保存、圧縮、PNG変換)
// @name:jv Pengunduh Media Telegram (Unduh video, Gambar asli, Kompres, PNG)
// @name:ka Telegram ვიდეოს ჩამომტვირთავი (ვიდეოს ჩამოტვირთვა, ორიგინალი, შეკუმშვა, PNG)
// @name:kk Telegram Видео Жүктеушісі (Видеоны жүктеу, Түпнұсқа, Сығу, PNG)
// @name:km ទាញយកមេឌៀ Telegram (ទាញយកវីដេអូ, ច្បាប់ដើម, បង្រួម, PNG)
// @name:kn ಟೆಲಿಗ್ರಾಮ್ ಡೌನ್ಲೋಡರ್ (ವೀಡಿಯೊ ಡೌನ್ಲೋಡ್, ಮೂಲ, ಕುಗ್ಗಿಸಿ, PNG)
// @name:ko 텔레그램 다운로더 (비디오 다운로드, 원본 저장, 압축, PNG 변환)
// @name:ky Telegram Видео Жүктөөчү (Видео жүктөө, Түпኑска, Кысуу, PNG)
// @name:lo ດາວໂຫຼດວິດີໂອ Telegram (ດາວໂຫລດວິດີໂອ, ຕົ້ນສະບັບ, ບີບອັດ, PNG)
// @name:lt Telegram Atsisiuntimas (Vaizdo įrašai, Originalas, Suspausti, PNG)
// @name:lv Telegram Lejupielētājs (Video lejupielāde, Oriģinals, Saspiest, PNG)
// @name:mg Mpisintona Telegram (Sintony horonan-tsary, Sary tany am-pahatany, PNG)
// @name:mk Преземач na Telegram (Преземање видео, Оригинал, Компресирај, PNG)
// @name:ml ടെലിഗ്രാം ഡൗൺലോഡർ (വീഡിയോ ഡൗൺലോഡ്, അസ്സൽ ചിത്രം, കംപ്രസ്, PNG)
// @name:mn Telegram Татагч (Видео татах, Эх хувь, Шахах, PNG)
// @name:mr टेलीग्राम मीडिया डाउनलोडर (व्हिडिओ डाउनलोड, मूळ प्रतिमा, संकुचित, PNG)
// @name:ms Pemuat Turun Telegram (Muat turun video, Gambar asal, Mampat, PNG)
// @name:mt Telegram Downloader (Niżżel vidjow, Oriġinal, Ikkompressa, PNG)
// @name:my Telegram ဗီဒီယို ဒေါင်းလုပ်ဆွဲသူ (ဗီဒီယိုဒေါင်းလုပ်၊ မူရင်း၊ ချုံ့ရန်၊ PNG)
// @name:ne टेलीग्राम डाउनलोडर (भिडियो डाउनलोड, फोटो, कम्प्रेस, PNG)
// @name:nl Telegram Downloader (Video download, Origineel, Comprimeren, PNG)
// @name:no Telegram Nedlaster (Videonedlasting, Original, Komprimer, PNG)
// @name:om YouTube Buufataa Bilisaa (Viidiyoo, Fakkii tee kaayi, PNG)
// @name:or ଟେଲିଗ୍ରାମ୍ ମିଡିଆ ଡାଉନଲୋଡର୍ (ଭିଡିଓ ଡାଉନଲୋଡ୍, ମୂଳ, ସଙ୍କୋଚନ, PNG)
// @name:pa ਟੈਲੀਗ੍ਰਾਮ ਵੀਡੀਓ ਡਾਊਨਲੋਡਰ (ਵੀਡੀਓ ਡਾਊਨਲੋଡ, ਅਸਲੀ, ਕੰਪ੍ਰੈਸ, PNG)
// @name:pl Pobieracz Telegram (Pobieranie wideo, Oryginał, Kompresuj, PNG)
// @name:ps د ټیلیګرام میډیا ډاونلوډر (ویډیو ډاونلوډ، اصلي، فشاری, PNG)
// @name:pt Telegram Downloader (Download de video, Original, Comprimir, PNG)
// @name:ro Descărcător Telegram (Descărcare video, Original, Comprimă, PNG)
// @name:ru Загрузчик Telegram (Скачать видео, Оригинал, Сжать, PNG)
// @name:rw Telegram Downloader (Kura amashusho, Umwimerere, Compress, PNG)
// @name:si ටෙලිග්රෑම් මාධ්ය බාගන්නා (වීඩዮ බාගත කිරීම, මුල් පිටපත, PNG)
// @name:sk Telegram Sťahovač (Sťahovanie videa, Originál, Komprimovať, PNG)
// @name:sl Telegram Prenosnik (Prenos videa, Izvirnik, Stisni, PNG)
// @name:sn Dhawunirodha Telegram (Dhawunirodha vhidhiyo, Sevha chaiwo, PNG)
// @name:so Soo Degsade Telegram (Keydi asalka, Isku-buuji, PNG)
// @name:sq Shkarkues Telegram (Shkarkimi i videos, Origjinali, Kompreso, PNG)
// @name:sr Telegram Downloader (Sačuvaj original, Kompresuj, PNG)
// @name:st Khoasolla Telegram (Khoasolla video, Boloka sa tloaelehang, PNG)
// @name:sv Telegram Nedladdare (Ladda ner video, Original, Komprimera, PNG)
// @name:sw Pakua Video za Telegram (Hifadhi asili, Punguza ukubwa, PNG)
// @name:ta டெலிகிராம் மீடியா டவுன்லோடர் (வீடியோ, அசல் சேமிப்பு, PNG)
// @name:te టెలిగ్రామ్ వీడియో డౌన్లోడర్ (వీడియో డౌన్లోడ్, అసలైనది, PNG)
// @name:tg Telegram Downloader (Зеркашии видео, Аслӣ, Фишурдан, PNG)
// @name:th ดาวน์โหลดวิดีโอ Telegram (ดาวน์โหลดวิดีโอ, ต้นฉบับ, บีบอัด, PNG)
// @name:ti ዝበለጸ መውረዲ ቴሌግራም (ቪድዮ ኣውርድ፡ ኦሪጅናል፡ PNG)
// @name:tk Telegram Wideo Ýükleýji (Wideo ýüklemek, Aslyny sakla, PNG)
// @name:tr Telegram Video İndirici (Video indir, Orijinal, Sıkıştır, PNG)
// @name:ug ھەقسىز Telegram سىن ჩۈشۈرگۈچ (سىن چۈشۈرۈش، ئەسلىنى ساقلاش، PNG)
// @name:uk Завантажувач Telegram (Завантаження відео, Оригінал, Стиснути, PNG)
// @name:ur ٹیلی گرام میڈیا ڈاؤنلوڈر (ویڈیو ڈاؤن لوڈ، اصل، کمپریس, PNG)
// @name:uz Telegram Video Yuklab Olish (Aslini saqlash, Siqish, PNG)
// @name:vi Tải Media Telegram (Tải video, Bản gốc, Nén, PNG)
// @name:yo Telegram Downloader (Gba fidio, Fi aworan pamọ, PNG)
// @name:zh-CN Telegram 媒体下载器 全球版 (视频下载、保存原图、压缩、转换 PNG)
// @name:zh-HK Telegram 下載器 全球版 (影片下載、保存原圖、壓縮、轉換 PNG)
// @name:zh-TW Telegram 下載器 全球版 (影片下載、保存原圖、壓縮、轉換 PNG)
// @name:zu Isilandi se-Telegram (Landa i-video, Gcina okokuqala, PNG)
// @description:af Laai video's en foto's af. Ondersteun omseiling van beperkings, oorspronklike stoor, kompressie en PNG vir beelde.
// @description:am ቪዲዮዎችን እና ፎቶዎችን ያውርዱ። የቪዲዮ ማውረድ፣ ኦሪጅናል ማስቀመጥ እና ለምስሎች PNG ይደግፋል።
// @description:ar قم بتنزيل مقاطع الفيديو والصور من القنوات الخاصة. يدعم تنزيل الفيديو وحفظ الأصل و PNG للصور.
// @description:as ব্যক্তিগত চেনেলৰ পৰা ভিডিঅ' আৰু ফটো ডাউনলোড কৰক। ভিডিঅ' ডাউনলোড, অৰিজিনেল ছেভিং আৰু ফটোৰ বাবে PNG সমৰ্থন কৰে।
// @description:az Şəxsi kanallardan videoları və şəkilləri endirin. Video yükləməni, orijinalın saxlanmasını və şəkillər üçün PNG-ni dəstəkləyir.
// @description:be Спампоўвайце відэа і фота з прыватных каналаў. Падтрымлівае спампоўку відэа, захаванне арыгінала і PNG для малюнкаў.
// @description:bg Изтегляйте видеоклипове и снимки от частни канали. Поддържа изтегляне на видео, запазване на оригинал и PNG за изображения.
// @description:bn ব্যক্তিগত চ্যানেল থেকে ভিডিও এবং ফটো ডাউনলোড করুন। ভিডিও ডাউনলোড, আসল সংরক্ষণ এবং ছবির জন্য PNG সমর্থন করে।
// @description:bs Preuzmite video zapise i fotografije sa privatnih kanala. Podržava preuzimanje videa, spremanje originala i PNG za slike.
// @description:ca Baixeu vídeos i fotos de canals privats. Admet la descàrrega de vídeos, el desa de l'original i el PNG per a imatges.
// @description:cs Stahujte videa a fotky ze soukromých kanálů. Podporuje stahování videa, ukládání originálu a PNG pro obrázky.
// @description:da Download videoer og billeder fra private kanaler. Understøtter videodownload, gem original og PNG til billeder.
// @description:de Laden Sie Videos und Fotos von privaten Kanälen herunter. Unterstützt Video-Download, Speichern des Originals und PNG für Bilder.
// @description:dz སྒེར་གྱི་རྒྱུ་ལམ་ཚུ་ལས་ བརྙན་འཁོར་དང་པར་ཚུ་ཕབ་ལེན་འབད། བརྙན་འཁོར་ཕབ་ལེན་དང་ པར་བཟོ་རྣམ་འགྱུར་ པར་བཙིར་གནོན་ པཱི་ཨེན་ཇི་ལུ་བསྒྱུར་བཅོས་འབད་ནི་ལུ་རྒྱབ་སྐྱོར་འབདཝ་ཨིན།
// @description:el Κατεβάστε βίντεο και φωτογραφίες από ιδιωτικά κανάλια. Υποστηρίζει λήψη βίντεο, αποθήκευση πρωτοτύπου και PNG για εικόνες.
// @description:en Download videos and images from private channels. Supports video download, saving originals, and PNG for images.
// @description:eo Elŝutu filmetojn kaj fotojn de privataj kanaloj. Subtenas video-elŝuton, konservadon de originalo kaj PNG por bildoj.
// @description:es Descargue videos y fotos de canales privados. Admite descarga de videos, guardado de original y PNG para imágenes.
// @description:et Laadige privaatsetest kanalitest alla videoid ja fotosid. Toetab videote allalaadimist, originaali salvestamist ja PNG-d piltide jaoks.
// @description:eu Deskargatu bideoak eta argazkiak kanal pribatuetatik. Bideoak deskargatzea, jatorrizkoa gordetzea eta PNG onartzen ditu irudietarako.
// @description:fa ویدیوها و عکسها را از کانالهای خصوصی دانلود کنید. از دانلود ویدیو، ذخیره نسخه اصلی و PNG برای تصاویر پشتیبانی میکند.
// @description:fi Lataa videoita ja kuvia yksityisiltä kanavilta. Tukee videon latausta, alkuperäisen tallennusta ja PNG-muotoa kuville.
// @description:fil Mag-download ng mga video at larawan mula sa mga pribadong channel. Sinusuportahan ang pag-download ng video, pag-save ng orihinal, at PNG para sa mga larawan.
// @description:fr Téléchargez des vidéos et des photos à partir de canaux privés. Prend en charge le téléchargement de vidéos, l'enregistrement de l'original et le PNG pour les images.
// @description:ga Íoslódáil físeáin agus íomhánna ó bhealaí príobháideacha. Tacaíonn sé le híoslódáil físeán, sábháil bunaidh agus PNG d’íomhánna.
// @description:gl Descarga vídeos e fotos de canles privadas. Soporta a descarga de vídeos, o gardado do orixinal e PNG para imaxes.
// @description:gn Emboguejy video ha ta'anga umi canal privado-gui. Omoneĩ ñemboguejy video, emopyta ta'anga tee ha PNG ta'angakuérape g̃uarã.
// @description:gu ખાનગી ચેનલોમાંથી વિડિઓઝ અને છબીઓ ડાઉનલોડ કરો. વિડિઓ ડાઉનલોડ, મૂળ સાચવવાનું અને છબીઓ માટે PNG ને સપોર્ટ કરે છે.
// @description:ha Zazzage bidiyo da hotuna daga tashoshi masu zaman kansu. Yana tallafawa saukar da bidiyo, adana asali da PNG don hotuna.
// @description:hi निजी चैनलों से वीडियो और चित्र डाउनलोड करें। वीडियो डाउनलोड, मूल बचत और छवियों के लिए PNG का समर्थन करता है।
// @description:hr Preuzmite videozapise i slike s privatnih kanala. Podržava preuzimanje videa, spremanje originala i PNG za slike.
// @description:hu Töltsön le videókat és képeket privát csatorнákról. Támogatja a videóletöltést, az eredeti mentését és a PNG-t a képekhez.
// @description:hy Ներբեռնեք տեսանյութեր և պատկերներ մասնավոր ալիքներից։ Աջակցում է տեսանյութերի ներբեռնմանը, բնօրինակի պահպանմանը և PNG-ին պատկերների համար։
// @description:id Unduh video dan gambar dari saluran pribadi. Mendukung pengunduhan video, penyimpanan asli, dan PNG untuk gambar.
// @description:ig Budata vidiyo na foto site na ọwa nzuzo. Na-akwado nbudata vidiyo, nchekwa nke mbụ na PNG maka foto.
// @description:is Sæktu myndbönd og myndir úr einkarásum. Styður myndbandsniðurhal, vistun upprunalega og PNG fyrir myndir.
// @description:it Scarica video e immagini da canali privati. Supporta il download di video, il salvataggio dell'originale e il PNG per le immagini.
// @description:iw הורד סרטונים ותמונות מערוצים פרטיים. תומך בהורדת וידאו, שמירת מקור ו-PNG לתמונות.
// @description:ja プライベートチャンネルから動画と画像をダウンロード。動画ダウンロード、オリジナル保存、画像用PNGに対応。
// @description:jv Unduh video lan gambar saka saluran pribadi. Ndhukung unduhan video, nyimpen asli, lan PNG kanggo gambar.
// @description:ka ჩამოტვირთეთ ვიდეოები და სურათები პირადი არხებიდან. მხარს უჭერს ვიდეოს ჩამოტვირთვას, ორიგინალის შენახვას და PNG-ს სურათებისთვის.
// @description:kk Жеке арналардан видеоларды және суреттерді жүктеңіз. Видеоны жүктеуді, түпнұсқаны сақтауды және суреттер үшін PNG-ді қолдайды.
// @description:km ទាញយកវីដេអូ និងរូបភាពពីបណ្តាញឯកជន។ គាំទ្រការទាញយកវីដេអូ ការរក្សាទុកច្បាប់ដើម និង PNG សម្រាប់រូបភាព។
// @description:kn ಖಾಸಗಿ ಚಾನಲ್ಗಳಿಂದ ವೀಡಿಯೊಗಳು ಮತ್ತು ಚಿತ್ರಗಳನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಿ. ವೀಡಿಯೊ ಡೌನ್ಲೋಡ್, ಮೂಲ ಉಳಿಸುವಿಕೆ ಮತ್ತು ಚಿತ್ರಗಳಿಗಾಗಿ PNG ಅನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ.
// @description:ko 프라이빗 채널에서 동영상과 이미지를 다운로드합니다. 동영상 다운로드, 원본 저장 및 이미지용 PNG를 지원합니다.
// @description:ky Жеке каналдарდან видеолорду жана сүрөттөрдү жүктөп алыңыз. Видеону жүктөп алууну, түпнусканы сактоону жана сүрөттөр үчүн PNGну колдойт.
// @description:lo ດາວໂຫລດວິດີໂອ ແລະຮູບພາບຈາກຊ່ອງທາງສ່ວນຕົວ. ຮອງຮັບການດາວໂຫລດວິດີໂອ, ການບັນທຶክຕົ້ນສະบັບ ແລະ PNG ສໍາລັບຮູບພາບ.
// @description:lt Atsisiųskite vaizdo įrašus ir vaizdus iš privačių kanalů. Palaiko vaizdo įrašų atsisiuntimą, originalo išsaugojimą ir PNG vaizdams.
// @description:lv Lejupielādējiet videoklipus un attēlus no privātiem kanāliem. Atbalsta video lejupielādi, oriģināla saglabāšanu un PNG attēliem.
// @description:mg Misintona horonan-tsary sy sary avy amin'ireo fantsona manokana. Manohana ny fampidinana horonan-tsary, ny fitehirizana ny tany am-pahatany ary ny PNG ho an'ny sary.
// @description:mk Преземајте видеа и слики од приватни канали. Поддржува преземање видео, зачувување оригинал и PNG за слики.
// @description:ml സ്വകാര്യ ചാനലുകളിൽ നിന്ന് വീഡിയോകളും ചിത്രങ്ങളും ഡൗൺലോഡ് ചെയ്യുക. വീഡിയോ ഡൗൺലോഡ്, അസ്സൽ സംരക്ഷിക്കൽ, ചിത്രങ്ങൾക്കായി PNG എന്നിവ പിന്തുണയ്ക്കുന്നു.
// @description:mn Хувийн сувгуудаас видео болон зураг татаж аваарай. Видео татах, эх хувийг хадгалах, зурагт зориулсан PNG-г дэмждэг.
// @description:mr खाजगी चॅनेलवरून व्हिडिओ आणि प्रतिमा डाउनलोड करा. व्हिडिओ डाउनलोड, मूळ बचत आणि प्रतिमांसाठी PNG ला समर्थन देते.
// @description:ms Muat turun video dan imej daripada saluran peribadi. Menyokong muat turun video, simpan asal dan PNG untuk imej.
// @description:mt Niżżel vidjows u stampi minn kanali privati. Jappoġġja t-tniżżil tal-vidjow, l-iffrankar tal-oriġinal u l-PNG għall-immaġni.
// @description:my သီးသန့်ချန်နယ်များမှ ဗီဒီယိုများနှင့် ပုံများကို ဒေါင်းလုဒ်လုပ်ပါ။ ဗီဒီယိုဒေါင်းလုပ်၊ မူရင်းသိမ်းဆည်းမှုနှင့် ပုံများအတွက် PNG ကို ပံ့ပိုးသည်။
// @description:ne निजी च्यानलहरूबाट भिडियोहरू र छविहरू डाउनलोड गर्नुहोस्। भिडियो डाउनलोड, मूल बचत र छविहरूको लागि PNG समर्थन गर्दछ।
// @description:nl Download video's en afbeeldingen van privékanalen. Ondersteunt video-download, opslaan van origineel en PNG voor afbeeldingen.
// @description:no Last ned videoer og bilder fra private kanaler. Støtter videonedladdning, lagring av original og PNG for bilder.
// @description:om Chaanalii dhuunfaa irraa viidiyoo fi fakkiiwwan buufadhu. Viidiyoo buufachuu, fakkii tee kaayi fi PNG deeggera.
// @description:or ବ୍ୟକ୍ତିଗତ ଚ୍ୟାନେଲଗୁଡିକରୁ ଭିଡିଓ ଏବଂ ଚିତ୍ର ଡାଉନଲୋଡ୍ କରନ୍ତୁ | ଭିଡିଓ ଡାଉନଲୋଡ୍, ମୂଳ ସଂରକ୍ଷଣ ଏବଂ ଚିତ୍ର ପାଇଁ PNG କୁ ସମର୍ଥନ କରେ |
// @description:pa ਨਿੱਜੀ ਚੈਨਲਾਂ ਤੋਂ ਵੀਡੀਓ ਅਤੇ ਚਿੱਤਰ ਡਾਊਨਲੋਡ ਕਰੋ। ਵੀਡੀਓ ਡਾਊਨਲੋਡ, ਅਸਲੀ ਸੇਵਿੰਗ ਅਤੇ ਚਿੱਤਰਾਂ ਲਈ PNG ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ।
// @description:pl Pobieraj filmy i obrazy z kanałów prywatnych. Obsługuje pobieranie wideo, zapisywanie oryginału i PNG dla obrazów.
// @description:ps د شخصي چینلونو څخه ویډیوګانې او عکسونه ډاونلوډ کړئ. د ویډیو ډاونلوډ ، اصلي خوندي کول او د عکسونو لپاره PNG ملاتړ کوي.
// @description:pt Baixe vídeos e imagens de canais privados. Suporta download de vídeo, salvamento de original e PNG para imagens.
// @description:ro Descărcați videoclipuri și imagini de pe canale private. Suportă descărcarea video, salvarea originalului și PNG pentru imagini.
// @description:ru Скачивайте видео и изображения из частных каналов. Поддерживает загрузку видео, сохранение оригинала и PNG для изображений.
// @description:rw Kura amavidiyo n'amashusho kuri kanali z'ibanga. Ishyigikiye gukura vidiyo, kubika umwimerere na PNG ku mashusho.
// @description:si පුද්ගලික නාලිකා වලින් වීඩියෝ සහ පින්තූර බාගන්න. වීඩියෝ බාගත කිරීම, මුል පිටපත සුරැකීම සහ පින්තූර සඳහා PNG සඳහා සහය දක්වයි.
// @description:sk Sťahujte videá a obrázky zo súkromných kanálov. Podporuje sťahovanie videa, ukladanie originálu a PNG pre obrázky.
// @description:sl Prenesite videoposnetke in slike iz zasebnih kanalov. Podpira prenos videa, shranjevanje izvirnika i PNG za slike.
// @description:sn Dhawunirodha mavhidhiyo nemifananidzo kubva kumatanho akavanzika. Inotsigira vhidhiyo kurodha, kuchengetedza mufananidzo chaiwo uye PNG yemifananidzo.
// @description:so Soo degso muuqaallada iyo sawirrada kanaalada gaarka ah. Waxay taageertaa soo dejinta fiidiyowga, keydinta asalka iyo PNG sawirada.
// @description:sq Shkarkoni video dhe imazhe nga kanale private. Mbështet shkarkimin e videos, ruajtjen e origjinalit dhe PNG për imazhet.
// @description:sr Preuzmite video zapise i slike sa privatnih kanala. Podržava preuzimanje videa, čuvanje originala i PNG za slike.
// @description:st Khoasolla livideo le litšoantšo ho tsoa ho likanale tse ikemetseng. E tšehetsa ho khoasolla video, ho boloka sa tloaelehang le PNG bakeng sa litšoantšo.
// @description:sv Ladda ner videor och bilder från privata kanaler. Stöder videonedladdning, lagring av original och PNG för bilder.
// @description:sw Pakua video na picha kutoka kwa vituo vya kibinafsi. Inasaidia kupakua video, kuhifadhi asili na PNG kwa picha.
// @description:ta தனிப்பட்ட சேனல்களிலிருந்து வீடியோக்கள் மற்றும் படங்களைப் பதிவிறக்கவும். வீடியோ பதிவிறக்கம், அசல் சேமிப்பு மற்றும் படங்களுக்கான PNG ஐ ஆதரிக்கிறது.
// @description:te ప్రైவேட் ఛానెల్ల నుండి వీడియోలు మరియు చిత్రాలను డౌన్లోడ్ చేయండి. వీడియో డౌన్లోడ్, అసలైనది సేవ్ చేయడం మరియు చిత్రాల కోసం PNG కి మద్దతు ఇస్తుంది.
// @description:tg Видеоҳо ва тасвирҳоро аз каналҳои хусусӣ зеркашӣ кунед. Зеркашии видео, захираи аслӣ ва PNG-ро барои тасвирҳо дастгирӣ мекунад.
// @description:th ดาวน์โหลดวิดีโอและรูปภาพจากช่องส่วนตัว รองรับการดาวน์โหลดวิดีโอ การบันทึกต้นฉบับ และ PNG สำหรับรูปภาพ
// @description:ti ካብ ውልቃዊ ቻነላት ቪድዮታትን ስእልታትን ኣውርድ። ምውራድ ቪድዮ፡ ምዕቃብ ኦሪጅናልን PNGን ንስእልታት ይድግፍ።
// @description:tk Hususy kanallardan wideolary we suratlary göçürip alyň. Wideony ýüklemegi, aslyny saklamagy we suratlar üçin PNG-ni goldaýar.
// @description:tr Özel kanallardan videoları ve resimleri indirin. Video indirmeyi, orijinali kaydetmeyi ve resimler için PNG'yi destekler.
// @description:ug شەخسىي قاناللاردىن سىن ۋە رەسىملەرنى چۈشۈرۈڭ. سىن چۈشۈرۈش، ئەسلىنى ساقلاش ۋە رەسىملەر ئۈچۈن PNG نى قوللايدۇ.
// @description:uk Завантажуйте відео та зображення з приватних каналів. Підтримує завантаження відео, збереження оригіналу та PNG для зображень.
// @description:ur نجی چینلز سے ویڈیوز اور تصاویر ڈاؤن لوڈ کریں۔ ویڈیو ڈاؤن لوڈ، اصل بچت اور تصاویر کے لیے PNG کی حمایت کرتا ہے۔
// @description:uz Shaxsiy kanallardan videolar va rasmlarni yuklab oling. Videoni yuklab olish, aslini saqlash va rasmlar uchun PNGni qo'llab-quvvatlaydi.
// @description:vi Tải xuống video và hình ảnh từ các kênh riêng tư. Hỗ trợ tải video, lưu bản gốc và PNG cho hình ảnh.
// @description:yo Gba awọn fidio ati awọn aworan lati awọn ikanni aladani. O ṣe atilẹyin gbigba fidio, fifipamọ akọkọ ati PNG fun awọn aworan.
// @description:zh-CN 绕过限制一键下载视频和图片,支持视频保存、保存原图、图片压缩及转换为 PNG。全球版。
// @description:zh-HK 繞過限制一鍵下載影片和圖片,支持影片保存、保存原圖、圖片壓縮及轉換為 PNG。全球版。
// @description:zh-TW 繞過限制一鍵下載影片和圖片,支持影片保存、保存原圖、圖片壓縮及轉換為 PNG。全球版。
// @description:zu Landa amavidiyo nezithombe kusuka kuziteshi eziyimfihlo. Isekela ukulanda kwevidiyo, ukulondolozwa kwasekuqaleni ne-PNG yezithombe.
// @version 1.0.0
// @namespace https://web.telegram.org/
// @author jacksonc
// @match https://web.telegram.org/*
// @match https://webk.telegram.org/*
// @match https://webz.telegram.org/*
// @icon https://web.telegram.org/favicon.ico
// @grant unsafeWindow
// @run-at document-end
// @license MIT
// ==/UserScript==
(function () {
'use strict';
// 104 种语言映射配置 [标题, 保存原图, 压缩, 转换PNG, 连接中, 完成]
const L = {
'af': ['Media-aflaaier', 'Stoor oorspronklike', 'Druk saam', 'PNG', 'Koppel...', 'Klaar'],
'am': ['ሚዲያ ማውረጃ', 'ኦሪጅናል አስቀምጥ', 'ጨምቅ', 'PNG', 'በማገናኘት...', 'ተጠናቋል'],
'ar': ['منزل الوسائط', 'حفظ الأصل', 'ضغط', 'PNG', 'جاري الاتصال...', 'تم'],
'as': ['মিডিয়া ডাউনলোডাৰ', 'মূল সংৰক্ষণ', 'সংকুচিত', 'PNG', 'সংযোগ...', 'সম্পন্ন'],
'az': ['Media Yükləyici', 'Orijinalı saxla', 'Sıxışdır', 'PNG', 'Bağlanılır...', 'Hazırdır'],
'be': ['Загрузнік медыя', 'Захаваць арыгінал', 'Сціснуць', 'PNG', 'Падключэнне...', 'Гатова'],
'bg': ['Зареди медия', 'Оригинал', 'Компресиране', 'PNG', 'Свързване...', 'Готово'],
'bn': ['মিডিয়া ডাউনলোডার', 'আসল সংরক্ষণ', 'কম্প্রেস', 'PNG', 'সংযুক্ত...', 'সম্পন্ন'],
'bs': ['Preuzimač medija', 'Sačuvaj original', 'Kompresuj', 'PNG', 'Povezivanje...', 'Gotovo'],
'ca': ['Descarregador', 'Desa original', 'Comprimeix', 'PNG', 'Connectant...', 'Fet'],
'cs': ['Stahovač médií', 'Uložit originál', 'Komprimovat', 'PNG', 'Připojování...', 'Hotovo'],
'da': ['Downloader', 'Gem original', 'Komprimer', 'PNG', 'Forbinder...', 'Færdig'],
'de': ['Media Downloader', 'Original speichern', 'Komprimieren', 'PNG', 'Verbinden...', 'Fertig'],
'dz': ['মিডিয়া ডাউনলোডার', 'মূল সংরক্ষণ', 'সংকুচিত', 'PNG', 'সংযোগ...', 'সম্পন্ন'],
'el': ['Λήψη Μέσων', 'Πρωτότυπο', 'Συμπίεση', 'PNG', 'Σύνδεση...', 'Έτοιμο'],
'en': ['Media Downloader', 'Save Original', 'Compress JPG', 'PNG', 'Connecting...', 'Done'],
'eo': ['Media Elŝutilo', 'Originalo', 'Kunpremi', 'PNG', 'Konektante...', 'Finite'],
'es': ['Descargador', 'Original', 'Comprimir', 'PNG', 'Conectando...', 'Listo'],
'et': ['Allalaadija', 'Originaal', 'Paki', 'PNG', 'Ühendamine...', 'Valmis'],
'eu': ['Deskargatzailea', 'Jatorrizkoa', 'Konprimitu', 'PNG', 'Konektatzen...', 'Egina'],
'fa': ['دانلودر', 'ذخیره اصلی', 'فشردهسازی', 'PNG', 'اتصال...', 'انجام شد'],
'fi': ['Lataaja', 'Alkuperäinen', 'Pakkaa', 'PNG', 'Yhdistetään...', 'Valmis'],
'fil': ['Downloader', 'Original', 'I-compress', 'PNG', 'Kumokonekta...', 'Tapos na'],
'fr': ['Téléchargeur', 'Original', 'Compresser', 'PNG', 'Connexion...', 'Terminé'],
'ga': ['Íoslódálaí', 'Bunleagan', 'Comhbhrúigh', 'PNG', 'Ag nascadh...', 'Críochnaithe'],
'gl': ['Descargador', 'Orixinal', 'Comprimir', 'PNG', 'Conectando...', 'Feito'],
'gn': ['Desarga', 'Ta\'anga tee', 'Ñemboguejy', 'PNG', 'Conectando...', 'Feito'],
'gu': ['ડાઉનલોડર', 'ઓરિજિનલ', 'કોમ્પ્રેસ', 'PNG', 'કનેક્ટ...', 'થઈ ગયું'],
'ha': ['Zazzage', 'Asali', 'Matse', 'PNG', 'Haɗawa...', 'Gama'],
'hi': ['डाउनलोडर', 'मूल सहेजें', 'कंप्रेस', 'PNG', 'जुड़ रहा है...', 'पूर्ण'],
'hr': ['Preuzimač', 'Original', 'Komprimiraj', 'PNG', 'Povezivanje...', 'GOTOVO'],
'hu': ['Letöltő', 'Eredeti', 'Tömörítés', 'PNG', 'Csatlakozás...', 'Kész'],
'hy': ['Ներբեռնիչ', 'Բնօրինակ', 'Սեղմել', 'PNG', 'Միացում...', 'Կատարված է'],
'id': ['Pengunduh', 'Simpan Asli', 'Kompres', 'PNG', 'Menghubungkan...', 'Selesai'],
'ig': ['Budata', 'Nke mbụ', 'Mkpakọ', 'PNG', 'Na-ejikọ...', 'Emeela'],
'is': ['Niðurhalari', 'Upprunalegt', 'Þjappa', 'PNG', 'Tengist...', 'Búið'],
'it': ['Downloader', 'Originale', 'Comprimi', 'PNG', 'Connessione...', 'Fatto'],
'iw': ['מוריד מדיה', 'שמור מקור', 'דחיסה', 'PNG', 'מתחבר...', 'בוצע'],
'ja': ['ダウンロード', 'オリジナル保存', '圧縮', 'PNG変換', '接続中...', '完了'],
'jv': ['Pengunduh', 'Simpen Asli', 'Kompres', 'PNG', 'Nyambung...', 'Rampung'],
'ka': ['ჩამომტვირთავი', 'ორიგინალი', 'შეკუმშვა', 'PNG', 'დაკავშირება...', 'მზადაა'],
'kk': ['Жүктеуші', 'Түпнұсқа', 'Сығу', 'PNG', 'Қосылуда...', 'Дайын'],
'km': ['កម្មវិធីទាញយក', 'រក្សាទុកដើម', 'បង្រួម', 'PNG', 'កំពុងភ្ជាប់...', 'រួចរាល់'],
'kn': ['ಡೌನ್ಲೋಡರ್', 'ಮೂಲ ಉಳಿಸಿ', 'ಕುಗ್ಗಿಸಿ', 'PNG', 'ಸಂಪರ್ಕ...', 'ಮುಗಿದಿದೆ'],
'ko': ['다운로더', '원본 저장', '압축', 'PNG 변환', '연결 중...', '완료'],
'ky': ['Жүктөөчү', 'Түпнуска', 'Кысуу', 'PNG', 'Туташууда...', 'Бүттү'],
'lo': ['ດາວໂຫລດ', 'ຕົ້ນສະບັບ', 'ບີບອັດ', 'PNG', 'ກຳລັງເຊື່ອມຕໍ່...', 'ສຳເລັດ'],
'lt': ['Atsisiuntimas', 'Originalas', 'Suspausti', 'PNG', 'Jungiamasi...', 'Atlikta'],
'lv': ['Lejupielādētājs', 'Oriģināls', 'Saspiest', 'PNG', 'Savienojas...', 'Gatavs'],
'mg': ['Mpisintona', 'Tany am-pahatany', 'Fampadihadiana', 'PNG', 'Mampifandray...', 'Vita'],
'mk': ['Преземач', 'Оригинал', 'Компресирај', 'PNG', 'Поврзување...', 'Готово'],
'ml': ['ഡൗൺലോഡർ', 'അസ്സൽ', 'കംപ്രസ്', 'PNG', 'ബന്ധിപ്പിക്കുന്നു...', 'പൂർത്തിയായി'],
'mn': ['Татагч', 'Эх хувь', 'Шахах', 'PNG', 'Холбогдож...', 'Дууссан'],
'mr': ['डाउनलोडर', 'मूळ', 'संकुचित', 'PNG', 'कनेक्ट...', 'झाले'],
'ms': ['Pemuat Turun', 'Simpan Asal', 'Mampat', 'PNG', 'Menyambung...', 'Selesai'],
'mt': ['Downloader', 'Oriġinal', 'Ikkompressa', 'PNG', 'Konnessjoni...', 'Lest'],
'my': ['ဒေါင်းလုပ်ဆွဲသူ', 'မူရင်း', 'ချုံ့ရန်', 'PNG', 'ချိတ်ဆက်နေသည်...', 'ပြီးပါပြီ'],
'ne': ['डाउनलोडर', 'मूल', 'कम्प्रेस', 'PNG', 'जडान...', 'सकियो'],
'nl': ['Downloader', 'Origineel', 'Comprimeren', 'PNG', 'Verbinden...', 'Klaar'],
'no': ['Nedlaster', 'Original', 'Komprimer', 'PNG', 'Kobler til...', 'Ferdig'],
'om': ['Buufataa', 'Fakkii', 'Gadi xiqqeessi', 'PNG', 'Wal qunnamaa...', 'Xumure'],
'or': ['ଡାଉନଲୋଡର୍', 'ମୂଳ', 'ସଙ୍କୋଚନ', 'PNG', 'ସଂଯୋଗ...', 'ସମାପ୍ତ'],
'pa': ['ਡਾਊਨਲੋਡਰ', 'ਅਸਲੀ', 'ਕੰਪ੍ਰੈਸ', 'PNG', 'ਕਨੈਕਟ...', 'ਹੋ ਗਿਆ'],
'pl': ['Pobieracz', 'Oryginał', 'Kompresuj', 'PNG', 'Łączenie...', 'Gotowe'],
'ps': ['ډاونلوډر', 'اصلي', 'فشاري', 'PNG', 'نښلول...', 'وشو'],
'pt': ['Download', 'Original', 'Comprimir', 'PNG', 'Conectando...', 'Concluído'],
'ro': ['Descărcător', 'Original', 'Comprimă', 'PNG', 'Conectare...', 'Gata'],
'ru': ['Загрузчик', 'Оригинал', 'Сжать', 'PNG', 'Соединение...', 'Готово'],
'rw': ['Downloader', 'Umwimerere', 'Compress', 'PNG', 'Guhuza...', 'Byarangiye'],
'si': ['බාගන්නා', 'මුල් පිටපත', 'සම්පීඩනය', 'PNG', 'සම්බන්ධ වෙමින්...', 'අහවරයි'],
'sk': ['Sťahovač', 'Originál', 'Komprimovať', 'PNG', 'Pripájanie...', 'Hotovo'],
'sl': ['Prenosnik', 'Izvirnik', 'Stisni', 'PNG', 'Povezava...', 'Končano'],
'sn': ['Dhawunirodha', 'Chaiwo', 'Dzvanya', 'PNG', 'Kubatanidza...', 'Zvapera'],
'so': ['Degsade', 'Asalka', 'Isku-buuji', 'PNG', 'Isku xirka...', 'Dhammaad'],
'sq': ['Shkarkues', 'Origjinali', 'Kompreso', 'PNG', 'Duke u lidhur...', 'Gati'],
'sr': ['Preuzimač', 'Original', 'Kompresuj', 'PNG', 'Povezivanje...', 'Gotovo'],
'st': ['Khoasolla', 'Tloaelehang', 'Fokotsa', 'PNG', 'Ea hokela...', 'E fela'],
'sv': ['Nedladdare', 'Original', 'Komprimera', 'PNG', 'Ansluter...', 'Klar'],
'sw': ['Downloader', 'Asili', 'Punguza', 'PNG', 'Inasubiri...', 'Tayari'],
'ta': ['பதிவிறக்கி', 'அசல்', 'சுருக்கு', 'PNG', 'இணைக்கிறது...', 'முடிந்தது'],
'te': ['డೌన్లోడರ್', 'అసలైనది', 'కుదించు', 'PNG', 'కనెక్ట్...', 'పూర్తยింది'],
'tg': ['Зеркаш', 'Аслӣ', 'Фишурдан', 'PNG', 'Пайваст...', 'Тайёр'],
'th': ['ดาวน์โหลด', 'บันทึกต้นฉบับ', 'บีบอัด', 'PNG', 'กำลังเชื่อมต่อ...', 'เสร็จสิ้น'],
'ti': ['መውረዲ', 'ኦሪጅናል', 'ጸቕጢ', 'PNG', 'ምትእስሳር...', 'ተወዲኡ'],
'tk': ['Ýükleýji', 'Aslyny', 'Gys', 'PNG', 'Baglanýar...', 'Taýýar'],
'tr': ['İndirici', 'Orijinal', 'Sıkıştır', 'PNG', 'Bağlanıyor...', 'Bitti'],
'ug': ['چۈشۈرگۈچ', 'ئەسلىنى ساقلاش', 'قىسىش', 'PNG', 'ئۇلىنىۋاتىدۇ...', 'تەييار'],
'uk': ['Завантажувач', 'Оригінал', 'Стиснути', 'PNG', 'З’єднання...', 'Готово'],
'ur': ['ڈاؤنلوڈر', 'اصل محفوظ', 'کمپریس', 'PNG', 'رابطہ...', 'مکمل'],
'uz': ['Yuklab oluvchi', 'Aslini saqlash', 'Siqish', 'PNG', 'Ulanmoqda...', 'Tayyor'],
'vi': ['Tải xuống', 'Bản gốc', 'Nén', 'PNG', 'Đang kết nối...', 'Xong'],
'yo': ['Downloader', 'Aworan kọkọ', 'Tẹ', 'PNG', 'Nsopọ...', 'Gama'],
'zh-CN': ['媒体下载器', '保存原图', '压缩下载', '转换为 PNG', '正在连接...', '下载完成'],
'zh-HK': ['媒體下載器', '保存原圖', '壓縮下載', '轉換為 PNG', '正在連接...', '下載完成'],
'zh-TW': ['媒體下載器', '保存原圖', '壓縮下載', '轉換為 PNG', '正在連接...', '下載完成'],
'zu': ['Isilandi', 'Okokuqala', 'Minyanisa', 'PNG', 'Ixhuma...', 'Kuphelile']
};
const getT = () => {
const l = navigator.language || 'en';
const key = L[l] ? l : (L[l.split('-')[0]] ? l.split('-')[0] : 'en');
const d = L[key];
return { title: d[0], raw: `💾 ${d[1]}`, zip: `📉 ${d[2]}`, png: `🔄 ${d[3]}`, conn: d[4], done: d[5] };
};
const T = getT();
const rangeRegex = /^bytes (\d+)-(\d+)\/(\d+)$/;
const styles = `
.tg-pro-ball {
position: fixed; width: 52px; height: 52px; background: linear-gradient(135deg, #248bcf, #54b4eb);
color: white; border-radius: 50%; display: none; align-items: center; justify-content: center;
box-shadow: 0 8px 25px rgba(0,0,0,0.4); z-index: 999999; cursor: move;
backdrop-filter: blur(12px); border: 1.5px solid rgba(255,255,255,0.25);
transition: transform 0.2s cubic-bezier(0.1,0.7,0.1,1);
}
.tg-pro-ball:hover { transform: scale(1.08); }
.tg-pro-ball svg { width: 28px; height: 28px; pointer-events: none; }
.tg-pro-menu {
position: absolute; bottom: 62px; right: 0; background: rgba(30,30,30,0.96);
backdrop-filter: blur(25px); border-radius: 18px; padding: 8px; display: none;
flex-direction: column; width: 170px; border: 1px solid rgba(255,255,255,0.1);
box-shadow: 0 12px 40px rgba(0,0,0,0.6); animation: tgUp 0.25s ease;
}
@keyframes tgUp { from { opacity:0; transform: translateY(8px); } to { opacity:1; transform: translateY(0); } }
.tg-pro-item {
padding: 10px 14px; color: #fff; font-size: 13px; cursor: pointer;
border-radius: 10px; transition: 0.2s; display: flex; align-items: center; gap: 10px;
}
.tg-pro-item:hover { background: rgba(255,255,255,0.1); color: #54b4eb; }
.tg-pro-panel {
position: fixed; width: 260px; background: rgba(20,20,20,0.92); backdrop-filter: blur(35px);
border-radius: 22px; border: 1px solid rgba(255,255,255,0.15); padding: 18px;
box-shadow: 0 18px 50px rgba(0,0,0,0.75); z-index: 1000000; color: #fff;
}
.tg-pro-head { display: flex; justify-content: space-between; align-items: center; cursor: move; margin-bottom: 15px; }
.tg-pro-title { font-size: 11px; font-weight: 900; color: #54b4eb; text-transform: uppercase; letter-spacing: 1.5px; }
.tg-pro-track { background: rgba(255,255,255,0.08); height: 8px; border-radius: 8px; overflow: hidden; margin: 12px 0; }
.tg-pro-bar { height: 100%; background: linear-gradient(90deg, #248bcf, #54b4eb); width: 0%; position: relative; }
.tg-pro-bar::after { content:""; position:absolute; top:0; left:0; right:0; bottom:0; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.25), transparent); animation: tgShimmer 2s infinite; }
@keyframes tgShimmer { from { transform: translateX(-100%); } to { transform: translateX(100%); } }
.tg-pro-foot { display: flex; justify-content: space-between; font-size: 12px; font-weight: bold; color: #aaa; }
`;
const getStore = (key) => JSON.parse(localStorage.getItem(key));
const setStore = (key, el) => localStorage.setItem(key, JSON.stringify({ x: el.style.left, y: el.style.top }));
const makeDrag = (el, key, def) => {
const pos = getStore(key);
if (pos) { Object.assign(el.style, { left: pos.x, top: pos.y, right: 'auto', bottom: 'auto' }); }
else { Object.assign(el.style, def); if (def.top === '50%') el.style.transform = `translateY(-50%)`; }
el.onmousedown = (e) => {
if (e.target.closest('.tg-pro-item') || e.target.classList.contains('close')) return;
el.style.transform = 'none';
let sx = e.clientX - el.offsetLeft, sy = e.clientY - el.offsetTop;
document.onmousemove = (ev) => {
el.style.left = (ev.clientX - sx) + 'px'; el.style.top = (ev.clientY - sy) + 'px';
el.style.right = 'auto'; el.style.bottom = 'auto';
};
document.onmouseup = () => { document.onmousemove = null; setStore(key, el); };
};
};
const findTarget = () => {
const q = ['.MediaViewerSlide--active video', '.MediaViewerSlide--active img', '.media-viewer-aspecter video', '.media-viewer-aspecter img', '.is-opened video', '.is-opened img'];
for (let s of q) {
const e = document.querySelector(s);
if (e && (e.src || e.currentSrc)) return { type: e.tagName.toLowerCase(), url: e.src || e.currentSrc };
}
return null;
};
const buildUI = () => {
if (document.getElementById('tg-pro-ball')) return;
const ball = document.createElement('div');
ball.id = 'tg-pro-ball'; ball.className = 'tg-pro-ball';
ball.innerHTML = `<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" y1="15" x2="12" y2="3"/></svg>
<div id="tg-pro-menu" class="tg-pro-menu">
<div class="tg-pro-item" id="act-raw">${T.raw}</div>
<div class="tg-pro-item" id="act-zip">${T.zip}</div>
<div class="tg-pro-item" id="act-png">${T.png}</div>
</div>`;
document.body.appendChild(ball);
makeDrag(ball, 'tg_b_pos_v10', { right: '35px', bottom: '120px' });
ball.onclick = (e) => {
const m = findTarget();
if (!m) return;
if (m.type === 'video') dlVideo(m.url);
else {
const menu = document.getElementById('tg-pro-menu');
menu.style.display = menu.style.display === 'flex' ? 'none' : 'flex';
}
e.stopPropagation();
};
document.getElementById('act-raw').onclick = () => process('raw');
document.getElementById('act-zip').onclick = () => process('zip');
document.getElementById('act-png').onclick = () => process('png');
};
const dlVideo = (url) => {
const id = Math.random().toString(36).substr(2, 9);
const ct = new AbortController();
const panel = document.createElement('div');
panel.className = 'tg-pro-panel';
panel.innerHTML = `<div class="tg-pro-head"><span class="tg-pro-title">${T.title}</span><span class="close" style="cursor:pointer;font-size:26px;line-height:1">×</span></div>
<div class="tg-pro-track"><div class="tg-pro-bar" id="bar-${id}"></div></div>
<div class="tg-pro-foot"><span id="txt-${id}">${T.conn}</span><span id="pct-${id}">0%</span></div>`;
document.body.appendChild(panel);
makeDrag(panel, 'tg_p_pos_v10', { right: '25px', top: '50%' });
panel.querySelector('.close').onclick = () => { ct.abort(); panel.remove(); };
let buf = [], got = 0, size = 0;
const step = () => {
fetch(url, { headers: { Range: `bytes=${got}-` }, signal: ct.signal })
.then(r => {
const h = r.headers.get("Content-Range").match(rangeRegex);
size = parseInt(h[3]); got = parseInt(h[2]) + 1;
const p = ((got * 100) / size).toFixed(0);
const b = document.getElementById(`bar-${id}`); if(b) b.style.width = p + '%';
const pc = document.getElementById(`pct-${id}`); if(pc) pc.innerText = p + '%';
const tx = document.getElementById(`txt-${id}`); if(tx) tx.innerText = `${(got/1048576).toFixed(1)}M/${(size/1048576).toFixed(1)}M`;
return r.blob();
})
.then(b => {
buf.push(b);
if (got < size) step();
else {
const a = document.createElement('a');
a.href = URL.createObjectURL(new Blob(buf, { type: "video/mp4" }));
a.download = `TG_DL_${Date.now()}.mp4`; a.click();
const tx = document.getElementById(`txt-${id}`); if(tx) tx.innerText = T.done;
setTimeout(() => panel.remove(), 2500);
}
}).catch(() => panel.remove());
};
step();
};
const process = (type) => {
const m = findTarget();
if(!m) return;
fetch(m.url).then(r => r.blob()).then(blob => {
if (type === 'raw') return save(blob, `TG_RAW_${Date.now()}.jpg`);
const i = new Image();
i.src = URL.createObjectURL(blob);
i.onload = () => {
const c = document.createElement('canvas');
c.width = i.width; c.height = i.height;
const ctx = c.getContext('2d');
ctx.drawImage(i, 0, 0);
if (type === 'zip') c.toBlob(b => save(b, `TG_ZIP_${Date.now()}.jpg`), 'image/jpeg', 0.6);
else c.toBlob(b => save(b, `TG_PNG_${Date.now()}.png`), 'image/png');
URL.revokeObjectURL(i.src);
};
});
};
const save = (b, n) => { const a = document.createElement("a"); a.href = URL.createObjectURL(b); a.download = n; a.click(); URL.revokeObjectURL(a.href); };
const styleEl = document.createElement("style"); styleEl.innerText = styles; document.head.appendChild(styleEl);
setInterval(() => {
buildUI();
const ball = document.getElementById('tg-pro-ball');
if (ball) ball.style.display = findTarget() ? 'flex' : 'none';
}, 1200);
window.onclick = () => { const m = document.getElementById('tg-pro-menu'); if (m) m.style.display = 'none'; };
})();