All Activity
- Earlier
-
Pure Fun – Pornhub Video Downloader
Noodleb0y commented on Noodleb0y's file in Tampermonkey (user scipts)
-
Version 1.1.2.user.js
0 downloads
// ==UserScript== // @name Pure Fun – Pornhub Video Downloader // @name:ar متعة خالصة – برنامج تنزيل فيديوهات Pornhub // @name:bg Чиста Забава – Изтегляне на видео от Pornhub // @name:cs Čistá Zábava – Stahovač videí Pornhub // @name:da Ren Sjov – Pornhub Video Downloader // @name:de Reiner Spaß – Pornhub Video Downloader // @name:el Καθαρή Διασκέδαση – Λήψη βίντεο Pornhub // @name:en Pure Fun – Pornhub Video Downloader // @name:eo Pura Ĝuo – Pornhub Video Elŝutilo // @name:es Pura Diversión – Descargador de videos de Pornhub // @name:fi Puhtaa Huvia – Pornhub Videon Lataaja // @name:fr Plaisir Pur – Téléchargeur de vidéos Pornhub // @name:fr-CA Plaisir Pur – Téléchargeur de vidéos Pornhub // @name:he כיף טהור – מוריד סרטוני Pornhub // @name:hr Čista Zabava – Pornhub Video Downloader // @name:hu Tiszta Szórakozás – Pornhub Videó Letöltő // @name:id Keseruan Murni – Pengunduh Video Pornhub // @name:it Divertimento Puro – Downloader Video Pornhub // @name:ja ピュアファン – Pornhubビデオダウンローダー // @name:ka სუფთა გართობა – Pornhub ვიდეო ჩამტვირთავი // @name:ko 순수한 즐거움 – Pornhub 비디오 다운로더 // @name:nb Ren Moro – Pornhub Video Downloader // @name:nl Puur Plezier – Pornhub Video Downloader // @name:pl Czysta Frajda – Pornhub Video Downloader // @name:pt-BR Diversão Pura – Downloader de Vídeos Pornhub // @name:ro Distracție Pură – Pornhub Video Downloader // @name:ru Чистое Развлечение – Загрузчик видео Pornhub // @name:sk Čistá Zábava – Pornhub Video Downloader // @name:sr Чиста Забава – Pornhub Video Downloader // @name:sv Ren Nöje – Pornhub Video Downloader // @name:th ความสนุกบริสุทธิ์ – ตัวดาวน์โหลดวิดีโอ Pornhub // @name:tr Saf Eğlence – Pornhub Video İndirici // @name:ug پاكىلايدىغان خۇشاللىق – Pornhub ۋىدىئو چۈشۈرگۈچ // @name:uk Чисте Задоволення – Завантажувач відео Pornhub // @name:vi Niềm Vui Tinh Khiết – Trình Tải Video Pornhub // @name:zh 纯粹乐趣 – Pornhub 视频下载器 // @name:zh-CN 纯粹乐趣 – Pornhub 视频下载器 // @name:zh-HK 純粹樂趣 – Pornhub 視頻下載器 // @name:zh-SG 纯粹乐趣 – Pornhub 视频下载器 // @name:zh-TW 純粹樂趣 – Pornhub 視頻下載器 // @description Pornhub video download with one click | pornhub.com | Download directly without login | Download free to watch paid videos | Download videos that are prohibited | Download all viewable resolutions // @description:ar تنزيل فيديوهات Pornhub بنقرة واحدة | pornhub.com | التحميل مباشرة بدون تسجيل دخول | شاهد الفيديوهات المدفوعة مجاناً | تنزيل الفيديوهات المحظورة | تنزيل جميع الدقات المتاحة // @description:bg Изтегляне на видео от Pornhub с едно щракване | pornhub.com | Изтегляне директно без регистрация | Гледайте платени видеа безплатно | Изтегляне на забранени видеа | Изтегляне на всички налични резолюции // @description:cs Stáhnout video Pornhub jedním kliknutím | pornhub.com | Stáhnout přímo bez přihlášení | Sledujte placená videa zdarma | Stáhnout zakázaná videa | Stáhnout všechna dostupná rozlišení // @description:da Download Pornhub-video med ét klik | pornhub.com | Download direkte uden login | Se betalte videoer gratis | Download forbudte videoer | Download alle tilgængelige opløsninger // @description:de Pornhub Video mit einem Klick herunterladen | pornhub.com | Direkt herunterladen ohne Anmeldung | Kostenpflichtige Videos kostenlos ansehen | Verbotene Videos herunterladen | Alle verfügbaren Auflösungen herunterladen // @description:el Λήψη βίντεο Pornhub με ένα κλικ | pornhub.com | Κατεβάστε απευθείας χωρίς σύνδεση | Παρακολουθήστε επί πληρωμή βίντεο δωρεάν | Λήψη απαγορευμένων βίντεο | Λήψη όλων των διαθέσιμων αναλύσεων // @description:en Pornhub video download with one click | pornhub.com | Download directly without login | Download free to watch paid videos | Download videos that are prohibited | Download all viewable resolutions // @description:eo Elŝuto de Pornhub-video per unu klako | pornhub.com | Elŝutu rekte sen ensaluto | Senpage spekti pagitajn videojn | Elŝutu malpermesitajn videojn | Elŝutu ĉiujn videblajn rezoluciojn // @description:es Descarga de videos de Pornhub con un solo clic | pornhub.com | Descarga directamente sin iniciar sesión | Mira videos de pago gratis | Descarga videos prohibidos | Descarga todas las resoluciones disponibles // @description:fi Lataa Pornhub-video yhdellä napsautuksella | pornhub.com | Lataa suoraan ilman kirjautumista | Katso maksullisia videoita ilmaiseksi | Lataa kiellettyjä videoita | Lataa kaikki katsottavissa olevat resoluutiot // @description:fr Téléchargement vidéo Pornhub en un clic | pornhub.com | Télécharger directement sans connexion | Visionner des vidéos payantes gratuitement | Télécharger des vidéos interdites | Télécharger toutes les résolutions disponibles // @description:fr-CA Téléchargement vidéo Pornhub en un clic | pornhub.com | Télécharger directement sans connexion | Visionner des vidéos payantes gratuitement | Télécharger des vidéos interdites | Télécharger toutes les résolutions disponibles // @description:he הורדת סרטוני Pornhub בלחיצה אחת | pornhub.com | הורד ישירות בלי להתחבר | צפה בחינם בסרטונים בתשלום | הורד סרטונים אסורים | הורד את כל הרזולוציות הזמינות // @description:hr Preuzimanje Pornhub videa jednim klikom | pornhub.com | Preuzmite izravno bez prijave | Besplatno gledajte plaćene videozapise | Preuzmite zabranjene videozapise | Preuzmite sve dostupne rezolucije // @description:hu Pornhub videó letöltése egy kattintással | pornhub.com | Közvetlen letöltés bejelentkezés nélkül | Fizetős videók ingyenes megtekintése | Tiltott videók letöltése | Az összes elérhető felbontás letöltése // @description:id Unduh video Pornhub dengan satu klik | pornhub.com | Unduh langsung tanpa login | Tonton video berbayar gratis | Unduh video yang dilarang | Unduh semua resolusi yang tersedia // @description:it Download video Pornhub con un clic | pornhub.com | Scarica direttamente senza login | Guarda video a pagamento gratuitamente | Scarica video vietati | Scarica tutte le risoluzioni disponibili // @description:ja ワンクリックでPornhubビデオをダウンロード | pornhub.com | ログインなしで直接ダウンロード | 有料動画を無料で視聴 | 禁止動画をダウンロード | 全ての解像度をダウンロード // @description:ka Pornhub ვიდეო ჩამოტვირთვა ერთი დაჭერით | pornhub.com | პირდაპირ გადმოწერა შესვლის გარეშე | გადახდილი ვიდეოების უფასო ყურება | აკრძალული ვიდეოების ჩამოტვირთვა | ყველა შესაძლო რეზოლუციის ჩამოტვირთვა // @description:ko 한 번의 클릭으로 Pornhub 비디오 다운로드 | pornhub.com | 로그인 없이 직접 다운로드 | 유료 영상 무료 보기 | 금지된 영상 다운로드 | 모든 해상도 다운로드 // @description:nb Last ned Pornhub-video med ett klikk | pornhub.com | Last ned direkte uten innlogging | Se betalte videoer gratis | Last ned forbudte videoer | Last ned alle tilgjengelige oppløsninger // @description:nl Pornhub-video downloaden met één klik | pornhub.com | Direct downloaden zonder in te loggen | Betaalde video's gratis bekijken | Verboden video's downloaden | Alle beschikbare resoluties downloaden // @description:pl Pobierz wideo Pornhub jednym kliknięciem | pornhub.com | Pobierz bez logowania | Oglądaj płatne filmy za darmo | Pobierz zabronione filmy | Pobierz wszystkie dostępne rozdzielczości // @description:pt-BR Baixar vídeos do Pornhub com um clique | pornhub.com | Baixe diretamente sem login | Assista vídeos pagos de graça | Baixe vídeos proibidos | Baixe todas as resoluções disponíveis // @description:ro Descărcare video Pornhub cu un singur clic | pornhub.com | Descărcați direct fără autentificare | Vizionați gratuit videoclipuri plătite | Descărcați videoclipuri interzise | Descărcați toate rezoluțiile disponibile // @description:ru Скачать видео Pornhub одним щелчком | pornhub.com | Скачать напрямую без входа | Смотреть платные видео бесплатно | Скачать запрещенные видео | Скачать все доступные разрешения // @description:sk Stiahnutie videa Pornhub jedným kliknutím | pornhub.com | Stiahnutie priamo bez prihlásenia | Sledujte platené videá zadarmo | Stiahnutie zakázaných videí | Stiahnutie všetkých dostupných rozlíšení // @description:sr ПорнХуб Видео Довнлоад са једним кликом | pornhub.com | Преузмите директно без пријаве | Гледајте плаћене видео снимке бесплатно | Преузмите забрањене видео снимке | Преузмите све доступне резолуције // @description:sv Pornhub video nedladdning med ett klick | pornhub.com | Ladda ner direkt utan inloggning | Titta på betalda videor gratis | Ladda ner förbjudna videor | Ladda ner alla tillgängliga upplösningar // @description:th ดาวน์โหลดวิดีโอ Pornhub ด้วยคลิกเดียว | pornhub.com | ดาวน์โหลดโดยตรงโดยไม่ต้องเข้าสู่ระบบ | ดูวิดีโอแบบชำระเงินฟรี | ดาวน์โหลดวิดีโอที่ถูกห้าม | ดาวน์โหลดทุกความละเอียดที่สามารถดูได้ // @description:tr Tek Tıkla Pornhub Video İndir | pornhub.com | Giriş yapmadan direkt indir | Ücretli videoları ücretsiz izle | Yasaklı videoları indir | Tüm mevcut çözünürlükleri indir // @description:ug Pornhub سىن بىر چېكىش ئارقىلىق چۈشۈرۈش | pornhub.com | كىرىشسىز بىۋاسىتە چۈشۈرۈش | پۇللىق ۋىدىئولارنى ھەقسىز كۆرۈش | تىگەلمەس ۋىدىئولارنى چۈشۈرۈش | بارلىق كۆرۈنۈشلۈك رېزولۇتسىيلارنى چۈشۈرۈش // @description:uk Завантажити відео Pornhub одним клацанням | pornhub.com | Завантажити без входу | Дивитися платні відео безкоштовно | Завантажити заборонені відео | Завантажити всі доступні роздільності // @description:vi Tải video Pornhub chỉ với một cú nhấp chuột | pornhub.com | Tải trực tiếp mà không cần đăng nhập | Xem video trả phí miễn phí | Tải video bị cấm | Tải tất cả độ phân giải có thể xem // @description:zh Pornhub 视频一键下载 | pornhub.com | 免登录直接下载 | 免费观看付费视频 | 下载被禁止的视频 | 下载所有可观看分辨率 // @description:zh-CN Pornhub 视频一键下载 | pornhub.com | 免登录直接下载 | 免费观看付费视频 | 下载被禁止的视频 | 下载所有可观看分辨率 // @description:zh-HK Pornhub 視頻一鍵下載 | pornhub.com | 免登入直接下載 | 免費觀看付費視頻 | 下載被禁止的視頻 | 下載所有可觀看分辨率 // @description:zh-SG Pornhub 视频一键下载 | pornhub.com | 免登录直接下载 | 免费观看付费视频 | 下载被禁止的视频 | 下载所有可观看分辨率 // @description:zh-TW Pornhub 視頻一鍵下載 | pornhub.com | 免登入直接下載 | 免費觀看付費視頻 | 下載被禁止的視頻 | 下載所有可觀看分辨率 // @namespace pure_fun_script_87 // @version 1.1.2 // @license MIT // @author Matthew,人民的勤务员 // @icon data:image/svg+xml;charset=utf-8;base64,Cjxzdmcgd2lkdGg9IjE5OCIgaGVpZ2h0PSI3MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjE5OCIgaGVpZ2h0PSI3MCIvPgo8cmVjdCB4PSIxMDgiIHk9IjEwIiB3aWR0aD0iODAiIGhlaWdodD0iNTAiIHJ4PSI0IiBmaWxsPSIjZjc5NzFkIi8+Cgo8ZyB0cmFuc2Zvcm09Im1hdHJpeCguMSAwIDAgLjEgODYuODUgMzAuMTUpIiBzdHJva2Utd2lkdGg9IjEwIj4KPHBhdGggZD0ibTg4Ny0zMGMtNS0yLTExLTMtMTctMy0yNC0yLTU0IDctNjggMTlsMy05N2gtNTd2MzAxaDUzdi0xN2MyNSAxNCA0MyAyMSA2NiAyMSA2Ni01IDkzLTY0IDkzLTExNi0xLTUyLTIzLTk3LTczLTEwOHptLTMyIDE3OWMtMzUgMC01MC00MS01MC03M3MxMS02NSA0OC02NSA0OCA0MSA0OCA3MGMwIDMyLTExIDY4LTQ2IDY4em0tMjAwLTg1YzAgMzEtMiA1MC01IDU4LTggMTgtMjQgMjgtNDIgMjktMTgtMS0yNi0xMC0zMy0yMy0yLTctMy0yNi0zLTU2di0xMDBoLTU4djEzOGMtMSA0OSAyNSA4NCA3MyA4NCAyNiAwIDU0LTkgNzItMjh2MjNoNTN2LTIxN2gtNTd6bS0yNDEtOTdjLTI4LTEtNTkgNi03NCAyMHYtOThoLTU3djMwMGg1N3YtMTA5YzAtMTggMi0zMiA1LTQxIDktMTggMjQtMjggNDMtMjggMTYgMCAyNSA4IDMyIDIwIDIgNiAzIDIxIDMgNDR2MTE1aDU4di0xMjhjMC0yMC0xLTM0LTMtNDMtMTItMzQtMzYtNTEtNjQtNTIiLz4KPHBhdGggZD0ibTY4LTQ1Yy0yNC0xLTYzIDgtNzUgMjd2LTIyaC01NnYyMjloNjB2LTEwM2MwLTI2IDItNDMgNS01MyA4LTIwIDI2LTMxIDQ1LTMxIDE4IDAgMjcgOSAzNCAyMyAyIDcgNCAyMyA0IDQ4djExNmg2MHYtMTQyYzAtMTgtMS0zMS0zLTQxLTEwLTM1LTQxLTUwLTc0LTUxem0tMjU3IDI3di0yMmgtNTZ2MjI5aDYwdi03MGMwLTM5IDItNjUgNS03NyA0LTEyIDgtMjEgMTQtMjYgNi00IDEzLTcgMjItNyA4IDAgMTggNCAyOCAxMGwxOS01MmMtMTMtOC0yNi0xMi00MC0xMi0yMCAxLTQwIDEyLTUyIDI3em0tMjA1LTI3Yy0yMiAwLTQyIDUtNjAgMTUtMTkgMTAtMzMgMjQtNDMgNDNzLTE1IDM4LTE1IDU5YzAgMjYgNSA0OCAxNSA2NiAxMCAxOSAyNSAzMyA0NCA0MiAxOSAxMCAzOSAxNCA2MCAxNCAzNCAwIDYyLTExIDg0LTM0IDIzLTIzIDM0LTUxIDM0LTg2IDAtMzQtMTEtNjMtMzMtODUtMjMtMjMtNTEtMzQtODYtMzRtNDAgMTcyYy0xMCAxMi0yNCAxOC0zOSAxOC0xNiAwLTI5LTYtNDAtMThzLTE2LTMwLTE2LTUyYzAtMjMgNS00MCAxNi01MnMyNC0xOCA0MC0xOGMxNSAwIDI5IDYgMzkgMTggMTEgMTIgMTYgMjkgMTYgNTEgMCAyMy01IDQxLTE2IDUzbS0zMTAtMjU0aC0xMDN2MzE2aDY0di0xMTloNDJjNTEgMiAxMDItNiAxMjYtNTEgNy0xMyAxMC0yOSAxMC00OSAwLTQzLTI0LTgxLTYzLTkyLTEyLTMtMzctNS03Ni01em00NyAxMzhjLTkgNC0yNiA1LTUxIDVoLTM1di04OWgzMWMyMyAwIDM4IDAgNDYgMiAyMiA1IDM2IDIyIDM2IDQyLTEgMTktMTEgMzQtMjcgNDAiIGZpbGw9IiNmZmYiLz4KPC9nPgo8L3N2Zz4K // @match *://*.pornhub.com/view_video.php?viewkey=* // @match *://*.pornhubpremium.com/view_video.php?viewkey=* // @connect phncdn.com // @grant GM_setClipboard // @grant unsafeWindow // @grant GM_setClipboard // @grant GM_download // @grant GM_addStyle // @downloadURL https://update.sleazyfork.org/scripts/551131/Pure Fun – Pornhub Video Downloader.user.js // @updateURL https://update.sleazyfork.org/scripts/551131/Pure Fun – Pornhub Video Downloader.meta.js // ==/UserScript== /** * !Matthew modified from the following script. Thanks to heckles and liuwanlin. * !This script follows the MIT License. Based on the original author’s work, the code structure and UI have been optimized for a more polished appearance. * https://greasyfork.org/zh-CN/scripts/491333 * https://greasyfork.org/zh-CN/scripts/491329 * https://sleazyfork.org/en/scripts/528800 */ (function () { 'use strict' const userLang = (navigator.languages && navigator.languages[0]) || navigator.language || 'en' const translations = { 'en': { downloading: 'Downloading...', finderror: 'Video download link not found', fetcherror: 'Error fetching video, please check the console for details', downloadsuccess: 'Download successful', downloaderror: 'Error downloading video, please check the console for details', downloadfailed: 'Download failed', downloadfailed_nosize: 'Unable to retrieve file size', copydownloadbtn: 'Copy', copysuccess: 'Copy successful', downloadbtn: 'Download', linkTip: 'Video download URL:' }, 'zh-CN,zh,zh-SG': { downloading: '下载中...', finderror: '未找到视频下载链接', fetcherror: '获取视频时出错,请到控制台查看详细信息', downloadsuccess: '下载成功', downloaderror: '下载视频时出错,请到控制台查看详细信息', downloadfailed: '下载失败', downloadfailed_nosize: '无法获取文件大小', copydownloadbtn: '复制', copysuccess: '复制成功', downloadbtn: '下载', linkTip: '视频下载地址:' }, 'zh-TW,zh-HK,zh-MO': { downloading: '下載中...', finderror: '未找到視頻下載連結', fetcherror: '獲取視頻時出錯,請到控制台查看詳細信息', downloadsuccess: '下載成功', downloaderror: '下載視頻時出錯,請到控制台查看詳細信息', downloadfailed: '下載失敗', downloadfailed_nosize: '無法獲取文件大小', copydownloadbtn: '複製', copysuccess: '複製成功', downloadbtn: '下載', linkTip: '視頻下載地址:' }, 'ja': { downloading: 'ダウンロード中...', finderror: 'ビデオのダウンロードリンクが見つかりません', fetcherror: 'ビデオの取得中にエラーが発生しました。詳細はコンソールを確認してください', downloadsuccess: 'ダウンロード成功', downloaderror: 'ビデオのダウンロード中にエラーが発生しました。詳細はコンソールを確認してください', downloadfailed: 'ダウンロード失敗', downloadfailed_nosize: 'ファイルサイズを取得できません', copydownloadbtn: 'コピー', copysuccess: 'コピー成功', downloadbtn: 'ダウンロード', linkTip: 'ビデオダウンロードURL:' } } const getTranslations = (lang) => { for (const key in translations) { if (key === lang || key.split(',').includes(lang)) { return translations[key]; } } return translations['en']; } const translate = new Proxy( function (key) { const lang = userLang; const strings = getTranslations(lang); return strings[key] || translations['en'][key]; }, { get(target, prop) { const lang = userLang; const strings = getTranslations(lang); return strings[prop] || translations['en'][prop]; } } ) unsafeWindow.translate = translate; function Toast(msg, duration = 3000, backgroundColor = 'rgba(0, 0, 0, 0.7)', textColor = 'rgb(255, 255, 255)', position = 'bottom-right') { const toast = document.createElement('div'); toast.className = 'toast'; toast.innerHTML = msg; toast.style.cssText = ` max-width: 80%; min-width: 150px; padding: 5px; height: auto; color: ${textColor}; line-height: 1.5; text-align: center; border-radius: 5px; position: fixed; z-index: 2147483647; background: ${backgroundColor}; font-size: 15px; transition: opacity 0.5s ease-in, transform 0.5s ease-in; word-wrap: break-word; `; // 使用位置参数设置位置样式 const positions = { 'top': 'top: 10%; left: 50%; transform: translate(-50%, 0);', 'bottom': 'bottom: 10%; left: 50%; transform: translate(-50%, 0);', 'left': 'top: 50%; left: 10%; transform: translate(0, -50%);', 'right': 'top: 50%; right: 10%; transform: translate(0, -50%);', 'top-left': 'top: 10%; left: 10%; transform: translate(0, 0);', 'top-right': 'top: 10%; right: 10%; transform: translate(0, 0);', 'bottom-left': 'bottom: 10%; left: 10%; transform: translate(0, 0);', 'bottom-right': 'bottom: 10%; right: 10%; transform: translate(0, 0);', 'center': 'top: 50%; left: 50%; transform: translate(-50%, -50%);', }; toast.style.cssText += positions[position] || positions['bottom-right']; document.body.appendChild(toast); setTimeout(() => { toast.style.opacity = '0'; setTimeout(() => document.body.removeChild(toast), 500); }, duration); const mediaQuery = ` @media only screen and (max-width: 600px) { .toast { font-size: 14px; padding: 10px; max-width: 90%; min-width: 0; } } `; const style = document.createElement('style'); style.textContent = mediaQuery; document.head.appendChild(style); } class VideoParsing { static addStyle(){ GM_addStyle(` .download-urls { margin: 15px 0px; padding: 12px; background: #000; border: 1px solid #6f6f6f; border-radius: 5px; font-size: 14px; max-width: 600px; } .download-urls h3 { margin-bottom: 8px; font-size: 16px; font-weight: bold; color: #333; } .download-urls ul { padding: 0; margin: 0; list-style: none; } .download-urls ul li { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; } .download-url-label { flex: 0 0 90px; font-weight: bold; color: #FFF; } .download-url-input { flex: 1; font-size: 12px; padding: 3px 6px; border: 1px solid #ccc; border-radius: 5px; background: #fff; color:#000; } .download-url-copy, .download-url-mp4 { padding: 4px 10px; border-radius: 5px; border: none; cursor: pointer; font-size: 12px; } .download-url-copy { background: #eee; color: #333; } .download-url-mp4 { background: #ff9000; color: #fff; } .download-url-copy:hover { background: #ddd; } .download-url-mp4:hover { background: #ffa31a; } `); } static getObjectValueByStartsWithChar(obj, char) { const vars = [] Object.keys(obj).forEach(key => { if (key.startsWith(char)) { vars.push({ key: key, value: obj[key] }) } }) return vars; } static getUrlInfo() { const flashvars = this.getObjectValueByStartsWithChar(unsafeWindow, 'flashvars_') if (!flashvars.length) { console.warn(translate.finderror) return } let videosInfo = [] try { videosInfo = flashvars[0]['value']['mediaDefinitions'] } catch (e) { console.error(translate.fetcherror, e) return } let remoteAddress let urlInfo = [] for (let i = 0; i < videosInfo.length; i++) { if (videosInfo[i]['remote']) { remoteAddress = videosInfo[i]['videoUrl'] break } } if (remoteAddress) { const xhr = new XMLHttpRequest() xhr.open("GET", remoteAddress, false) xhr.onload = function () { if (xhr.status === 200) { try { const data = JSON.parse(xhr.responseText) if (Array.isArray(data)) { urlInfo = urlInfo.concat(data.map(item => ({ quality: item.quality + '.' + item.format, url: item.videoUrl }))); } } catch (err) { console.error(err) } } } xhr.send() } return urlInfo } static injectUrls2Dom(urlInfo) { const container = document.createElement("div"); container.className = "download-urls"; const title = document.createElement("h3"); title.textContent = translate.linkTip; container.appendChild(title); if (urlInfo && urlInfo.length>0){ const ul = document.createElement("ul"); urlInfo.forEach(item => { const li = document.createElement("li"); const label = document.createElement("span"); label.className = "download-url-label"; label.textContent = `[ ${item.quality} ]`; const input = document.createElement("input"); input.className = "download-url-input"; input.value = item.url; input.readOnly = true; const copyBtn = document.createElement("button"); copyBtn.className = "download-url-copy"; copyBtn.textContent = translate.copydownloadbtn; copyBtn.dataset.href = item.url; const dlBtn = document.createElement("button"); dlBtn.className = "download-url-mp4"; dlBtn.textContent = translate.downloadbtn; dlBtn.dataset.href = item.url; li.appendChild(label); li.appendChild(input); li.appendChild(copyBtn); li.appendChild(dlBtn); ul.appendChild(li); }); container.appendChild(ul) } const player = document.querySelector("#player"); if (player){ player.insertAdjacentElement("afterend", container); } const playerWrapper = document.querySelector(".playerWrapper") if (playerWrapper){ playerWrapper.insertAdjacentElement("afterend", container); } } static initEvens() { document.addEventListener("click", function (e) { if (e.target.classList.contains("download-url-copy")) { e.preventDefault(); const url = e.target.dataset.href; GM_setClipboard(url); Toast(translate.copysuccess, 3000, 'rgb(18, 219, 18)', '#ffffff', 'top'); } }) } static initDownEvens() { document.addEventListener("click", function (e) { if (e.target.classList.contains("download-url-mp4")) { e.preventDefault() downloadMp4(e.target.dataset.href, e.target); } }) } static init() { this.addStyle(); this.injectUrls2Dom(this.getUrlInfo()) this.initEvens() this.initDownEvens() } } unsafeWindow.VideoParsing = VideoParsing; function getHumanReadableSize(sizeb) { const sizes = ['B', 'KB', 'MB', 'GB', 'TB'] const size = sizeb let i = parseInt(Math.floor(Math.log(size) / Math.log(1024))) const humanReadableSize = (size / Math.pow(1024, i)).toFixed(1) + ' ' + sizes[i] return humanReadableSize } function sanitizeTitle() { var title = document.title title = title.replace(/- Pornhub\.com/, '') return title.replace(/[/:*?"<>|]/g, '_').trim(); } async function downloadMp4(videoUrl, element) { try { const response = await fetch(videoUrl) if (!response.ok) { element.textContent = translate('downloadfailed'); } const contentLength = response.headers.get('Content-Length'); if (!contentLength) { element.textContent = translate('downloadfailed_nosize'); return; } const reader = response.body.getReader(); const totalSize = contentLength ? parseInt(contentLength, 10) : 0; let downloadedSize = 0; const chunks = []; while (true) { const { done, value } = await reader.read() if (done) break downloadedSize += value.length chunks.push(value) if (totalSize) { const progress = ((downloadedSize / totalSize) * 100).toFixed(2) element.textContent = `${translate('downloading')} ${progress}% (${getHumanReadableSize(downloadedSize)} / ${getHumanReadableSize(totalSize)})`; } else { element.textContent = `${translate('downloading')} ${getHumanReadableSize(downloadedSize)}`; } } const blob = new Blob(chunks); const url = window.URL.createObjectURL(blob); const a = document.createElement('a'); a.style.display = 'none'; a.href = url; a.download = sanitizeTitle()+".mp4"; document.body.appendChild(a); a.click(); window.URL.revokeObjectURL(url); document.body.removeChild(a); Toast(translate('downloadsuccess'), 3000, 'rgb(18, 219, 18)', '#ffffff', 'top'); } catch (error) { Toast(translate('downloaderror'), 3000, 'rgb(173, 7, 7)', '#ffffff', 'top'); console.error(translate('downloaderror'), error); } } VideoParsing.init() })(); -
I'll help you install Generic Colorizer (grc) on Linux. grc (Generic Colorizer) colorizes log files, command outputs, and other text for better readability. Install Generic Colorizer (grc) On Debian/Ubuntu/Kali: bash sudo apt update sudo apt install grc On RHEL/CentOS/Fedora: bash # Enable EPEL first (RHEL/CentOS) sudo dnf install epel-release # or for older CentOS: sudo yum install epel-release # Install grc sudo dnf install grc # or sudo yum install grc On Arch Linux: bash sudo pacman -S grc Usage Examples Once installed, you can use it in a few ways: bash # Colorize specific commands by piping grc netstat -tulpn grc tail -f /var/log/syslog grc ls -la grc ifconfig grc ps aux # Or permanently enable it by sourcing the grc.bashrc echo 'source /etc/grc.bashrc' >> ~/.bashrc source ~/.bashrc After adding the sourcing line, many common commands (ls, netstat, ps, df, du, ping, traceroute, etc.) will automatically show colored output in new terminal sessions. Verify Installation bash grc --version
-
-
I'll help you install traceroute. The method depends on your operating system. On Debian/Ubuntu/Kali Linux: bash sudo apt update && sudo apt install traceroute -y On RHEL/CentOS/Fedora: bash sudo yum install traceroute -y or for newer Fedora: bash sudo dnf install traceroute -y On Arch Linux: bash sudo pacman -S traceroute On macOS: traceroute is usually pre-installed. If not, install via Homebrew: bash brew install traceroute On Windows: The equivalent command is tracert, which comes built-in. If you specifically want the Linux-style traceroute, you can install it via: WSL (Windows Subsystem for Linux) — install a Linux distro from the Microsoft Store, then use the Linux commands above. Cygwin — select traceroute during installation.
-
-
-
-
-
-
-
Here's how to install Transmission from the GitHub repo, broken down by platform. Linux (Debian/Ubuntu) — Build from Source 1. Install dependencies: bash sudo apt update sudo apt install build-essential cmake git libcurl4-openssl-dev libssl-dev sudo apt install libb64-dev libdeflate-dev libevent-dev libminiupnpc-dev libnatpmp-dev libsystemd-dev For the GTK GUI: bash sudo apt install gettext libgtkmm-3.0-dev # GTK3 # or sudo apt install gettext libgtkmm-4.0-dev # GTK4 For the Qt GUI: bash sudo apt install libqt5svg5-dev qttools5-dev # Qt5 # or sudo apt install qt6-svg-dev qt6-tools-dev # Qt6 2. Clone and build: bash git clone --recurse-submodules https://github.com/transmission/transmission Transmission cd Transmission cmake -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo cd build cmake --build . sudo cmake --install . Quick alternative (packaged version, if you don't need latest Git): bash sudo apt install transmission macOS Prerequisites: macOS 11.0+ (runtime), macOS 14.8.3+ + Xcode 15.0.1+ (build). bash git clone --recurse-submodules https://github.com/transmission/transmission Transmission cd Transmission Option A — Xcode: Open Transmission.xcodeproj and run the Transmission scheme. Option B — CMake (native app): bash cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=RelWithDebInfo cmake --build build -t transmission-mac open ./build/macosx/Transmission.app Option C — CMake (GTK via Homebrew): bash brew install gtk4 gtkmm4 cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=RelWithDebInfo cmake --build build -t transmission-gtk Windows Prerequisites: Visual Studio 2019+ (Desktop C++ workload), CMake, Git for Windows, Vcpkg, Python. Install dependencies via vcpkg: cmd vcpkg install curl zlib openssl vcpkg install qtactiveqt qtsvg qttools # for Qt client Get source and build: cmd git clone https://github.com/transmission/transmission cd transmission git submodule update --init --recursive cmake -B build -DCMAKE_TOOLCHAIN_FILE="<path-to-vcpkg>\scripts\buildsystems\vcpkg.cmake" cmake --build build
-
-
No problem! Here's how to install VLC Media Player across all major operating systems: Windows (10/11) Option 1 — Official installer: Go to https://www.videolan.org/vlc/ Click "Download VLC" — it'll auto-detect your Windows version Run the .exe installer and follow the prompts Option 2 — Winget (Command Line): cmd winget install VideoLAN.VLC macOS Go to https://www.videolan.org/vlc/ Click the macOS download button Mount the .dmg file and drag VLC into your Applications folder Or via Homebrew: bash brew install --cask vlc Linux (Debian/Ubuntu/Kali) bash sudo apt update sudo apt install vlc -y Fedora: bash sudo dnf install vlc -y Arch Linux / Manjaro: bash sudo pacman -S vlc
