PH_Downloader

pornhub.com

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name         PH_Downloader
// @namespace    ph
// @version      0.0.4
// @description  pornhub.com
// @author       Hmhm
// @match        *://*.pornhub.com/view_video.php?viewkey=*
// @match        *://*.pornhubpremium.com/view_video.php?viewkey=*
// @grant        unsafeWindow
// @license      WTFPL
// ==/UserScript==

(Win=>{
	for(let key in Win){
		if(key.startsWith("flashvars_")){
			for(let md of Win[key]?.mediaDefinitions){
				if(md?.format=="mp4"){
					fetch(md.videoUrl,{mode:"cors"}).then(r=>r.json()).then(json=>{
						let dom = document.createElement("div");
						dom.innerHTML = json.map(obj=>`<h1><a href="${obj?.videoUrl}">${obj?.quality}p</a></h1>`).join("");
						if(typeof(isPlatformMobile)!="undefined"&&isPlatformMobile==1)
							document.body.insertBefore(dom,document.querySelector("#mobileContainer"));
						else
							document.querySelector("#main-container").insertBefore(dom,document.querySelector("#vpContentContainer"));
					});break;
				}
			}
		}
	}
})(unsafeWindow??window);