您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Remove ads, enlarge video, add video download links, block popups, enable middle-click in thumbs and stops autoplay keeping buffering
当前为
// ==UserScript== // @author Jack_mustang // @version 4.6 // @name ExtendRedTube // @description Remove ads, enlarge video, add video download links, block popups, enable middle-click in thumbs and stops autoplay keeping buffering // @date 2014 August 8 // @include *redtube.com* // @include *redtube.org* // @include *redtube.cz* // @include *redtube.es* // @include *redtube.fr* // @include *redtube.it* // @include *redtube.kr* // @include *redtube.pl* // @include *redtube.si* // @run-at document-start // @grant none // @license Public Domain // @icon http://public.bay.livefilestore.com/y1pSshvmSZkkqp0NsmeCM6Sk8SQOC3rcOl29uZRUd_YsrSd4aMGNBmYYChRlRnZu9ht5pDhWoVglIGo11ITBXNW4Q/ExtendRedTubeIcon.png // @namespace https://greasyfork.org/users/2464 // ==/UserScript== var ExtendRT = function ExtendRedTube() { //Inject blocker and CSS addStuff() window.addEventListener('DOMContentLoaded', function() { // Remove ads functions, comment these if you just want them hidden function removeQuery(query) { var ifr = document.querySelectorAll(query) if(ifr.length > 0) for(var i=0; i < ifr.length; i++) ifr[i].parentNode.removeChild(ifr[i]) } // Remove header ad removeQuery('#as_134') // Remove footer ad removeQuery('#as_131') // Remove right ad removeQuery('.sb') removeQuery('div.qb') // Remove iframe ads removeQuery("iframe") if(document.getElementById('redtube_flv_player')) { // Scroll video to middle of page function scrollthere() { var vid = document.querySelector('.watch'), vh = vid.offsetHeight, vd = vid.offsetTop + document.querySelector('.pageVideos').offsetTop, fh = window.innerHeight, sc = vd-((fh-vh)/2) scrollTo(0, sc) }// Now inject this function var script = document.createElement("script") script.setAttribute("type","text/javascript") script.innerHTML = scrollthere.toString() + "scrollthere();" script.id = ("ERT-scrollVid") document.body.appendChild(script) // Include button in right corner to center video on screen; var node = document.createElement("div") node.setAttribute("style", "position:fixed; bottom:0; right:0; top:auto!important; height:15px; width:80px; cursor:pointer; background:#121212; padding:5px 10px; border:1px solid #202020 ") node.setAttribute("onclick", "scrollthere();") node.innerHTML = "Center video" document.body.appendChild(node) // Change player var player = document.querySelector('#redtube_flv_player').parentNode.innerHTML player = player.replace(/autoplay=true/g,"autoplay=false&autoload=true") player = player.replace(/disablePauseroll=false/g,"disablePauseroll=true") player = player.replace(/disable_sharebar=false/g,"disable_sharebar=true") player = player.replace(/&pauseroll_url=http:\/\/ads(.*).php/g,"") document.querySelector('#redtube_flv_player').parentNode.innerHTML = player // Download videos function convertLink(link) { // Function to convert links to make them functional link = link.replace(/%3A/ig, ':') link = link.replace(/%2F/ig, '/') link = link.replace(/%3F/ig, '?') link = link.replace(/%3D/ig, '=') link = link.replace(/%26/ig, '&') link = link.replace(/\\\//ig, '/') return link } player = player.replace(/&/ig, '&') var mp4Start = player.indexOf("vpVideoSource"), mp4End = player.search(/";\n.*vpVideoOverlay/), mp4Link = player.slice(mp4Start+18, mp4End) // Add FLV text var flvLink = document.getElementById("download-link-flv") flvLink.innerHTML = "FLV " + flvLink.innerHTML // Add MP4 to download drop-box var dwntab = document.querySelector(".download-box ul"), mp4container = document.createElement("li") mp4container.innerHTML = "<a href='"+ convertLink(mp4Link) +"'> MP4 480p </a>" dwntab.appendChild(mp4container) // Include thumbnail button tab var thumbtab = document.createElement("li") thumbtab.innerHTML = "<a style='cursor:pointer' onclick='$(\"div[class*=tab-content]\").css({\"display\": \"none\"});$(\"#tabsParent>ul li\").attr(\"class\",\"\");$(\"#tabsParent>ul li:last-child\").attr(\"class\",\"activeTab\");$(\"#tabsContentHolder\").attr(\"style\",\"display:none\");$(\"#tagger_thumbs\").attr(\"style\",\"\");$(\"#tabsContentHolder\").slideDown(\"slow\");'>Thumbnails</a>" var tabs = document.querySelector(".tabsElements") tabs.appendChild(thumbtab) // Add, check thumbs exist, change location if needed and include div function changeServer(num) { var s = '0', table = '', source, nums = num + 1, vidId = location.pathname vidId = vidId.slice(1) vidId2 = vidId.slice(0, vidId.length -3) while(vidId.length < 7) vidId = '0' + vidId while(vidId2.length < 7) vidId2 = '0' + vidId2 switch(num) { case 0: source = 'img03' break case 1: source = 'thumbs.lsw' break case 2: source = 'img01' break case 3: source = 'img02' break case 4: source = 'img04' break } for(i=1; i<17; i++) { if(i == 10) s = '' table = table + '<td><img class="te" ' if(i == 1 && num < 4) table = table + 'onerror="changeServer('+ nums +');"' table = table + 'src="http://'+ source +'.redtubefiles.com/_thumbs/'+ vidId2 +'/'+ vidId +'/'+ vidId +'_0'+ s + i +'m.jpg" /></td>' if(i == 4 || i == 8 || i == 12) table = table + '</tr><tr>' } if(num == 0) { var node = document.createElement('div') node.setAttribute('id', 'tagger_thumbs') node.setAttribute('style', 'overflow:hidden;display:none') } else var node = document.getElementById('tagger_thumbs') node.innerHTML = '<table style="padding:30px 20px 20px"><tr>'+ table +'</tr></table>' if(num == 0) document.getElementById('tabsContentHolder').appendChild(node) }// Now inject this function var thumbscript = document.createElement("script") thumbscript.setAttribute("type", "text/javascript") thumbscript.innerHTML = changeServer.toString() + "changeServer(0);" document.body.appendChild(thumbscript) } },false) function addStuff() { // While <head> is not loaded we keep trying if (!document.querySelector("head")) return setTimeout(addStuff, 50) // Block popups and let middle mouse click on thumbs open link function popupBlocker (event) { window.g367CB268B1094004A3689751E7AC568F = "ERT-Blocker" } var popblock = document.createElement("script") popblock.setAttribute("type", "text/javascript") popblock.id = "ERT-popupBlock" popblock.innerHTML = 'window.addEventListener("DOMContentLoaded", function blockPop() {\n'+ 'var name = document.querySelectorAll(".te")\n'+ 'if(name.length > 0)\n'+ 'for(var i=0; i < name.length; i++)\n'+ '$("#"+name[i].id).off("click")\n'+ '}, false)\n'+ 'window.addEventListener("DOMNodeInserted", '+ popupBlocker.toString() +', false)' var targ = document.head targ.appendChild(popblock) // We create an object and start including its content to include in DOM at the end. var ertcss = // Hide ads while we can't remove them "#as_131, #as_134, body .sb, div.qb {\n\ display: none !important\n\ }\n" + // Prevent background ad "body {\n\ background-color: #000 !important\n\ }\n" + // Make thumbs have 5 in every row ".videoThumbs.three-in-row {\n\ margin-bottom: -228px\n\ }\n\ .videoThumbs.three-in-row + .videoThumbs.five-in-row li:first-of-type{\n\ margin-left: 190px !important\n\ }\n\ .videoThumbs > li {\n\ clear: none !important;\n\ margin: 0 9px 20px 0 !important\n\ }\n\ ul.videoThumbs {\n\ width: auto !important\n\ }\n" + /* PornStars page */ "ul.pornStarsThumbs.four-in-row {\n\ width: 100% !important\n\ }\n\ .pornStarsThumbs.four-in-row > li {\n\ clear: none !important;\n\ margin: 0 8px 20px 0 !important\n\ }\n\ .pornStarsThumbs.four-in-row > li:last-child {\n\ margin-right: 0 !important;\n\ }\n" + /* Video Page */ // Enlarge player ".video-wrap, .watch, .videoPlayer, #redtubeplayer {\n\ width: 100% !important\n\ }\n\ .videoPlayer, #redtube_flv_player, #redtubeplayer {\n\ height: 547.3px !important;\n\ }\n\ .video-wrap h1.videoTitle {\n\ width: 800px !important\n\ }\n\ #html5_vid video {\n\ margin: 0 !important;\n\ height: 468px !important;\n\ width: 956px !important\n\ }\n" + /* Image galleries list */ ".albumThumbs.three-in-row {\n\ width: 100% !important\n\ }\n\ .albumThumbs.three-in-row li:nth-of-type(4) {\n\ clear: none !important;\n\ margin-left: 31px !important\n\ }\n" + /* Other random pages */ // API "#wrapper {\n\ background: #FFF !important\n\ }\n" // Inject created CSS var ertnode = document.createElement("style") ertnode.type = "text/css" ertnode.id = "ERT-style" ertnode.appendChild(document.createTextNode(ertcss)) targ.appendChild(ertnode) } }();