您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Browser extension to download videos
// ==UserScript== // @name PickVideo Downloader // @namespace https://www.pickvideo.net // @version 0.1 // @description Browser extension to download videos // @author PickVideo // @copyright 2018, PickVideo // @homepage https://www.pickvideo.net/extensions // @match *://*.youtube.com/* // ==/UserScript== (function() { 'use strict'; if (document.getElementById("polymer-app") || document.getElementById("masthead") || window.Polymer) { setInterval(function() { if (window.location.href.indexOf("watch?v=") < 0) { return false; } if (document.getElementById("count") && document.getElementById("pickvideo") === null) { polymerAdd(); } }, 100); } else { setInterval(function() { if (window.location.href.indexOf("watch?v=") < 0) { return false; } if (document.getElementById("watch7-subscription-container") && document.getElementById("pickvideo") === null) { htmlAdd(); } }, 100); } function htmlAdd() { if (document.getElementById("watch7-subscription-container")) { var wrap = document.getElementById('watch7-subscription-container'); var button = "<div id='pickvideo' style='display: inline-block; margin-left: 10px; vertical-align: middle;'>"; button += "<a href=\"https://pickvideo.net/download?video=www.youtube.com/watch?v=" + ytvid(document.URL) + "\" title=\"Download this video\" target=\"_blank\"" + "style=\"display: inline-block; font-size: inherit; height: 22px; border: 1px solid rgb(0, 183, 90); border-radius: 3px; padding-left: 28px; cursor: pointer; vertical-align: middle; position: relative; line-height: 22px; text-decoration: none; z-index: 1; color: rgb(255, 255, 255);\">"; button += "<i style=\"position: absolute; display: inline-block; left: 6px; top: 3px; background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6Y2M9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zIyIgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIiB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMTYgMTYiIGlkPSJzdmcyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48cGF0aCBkPSJNIDQsMCA0LDggMCw4IDgsMTYgMTYsOCAxMiw4IDEyLDAgNCwwIHoiIGZpbGw9IiNmZmZmZmYiIC8+PC9zdmc+); background-size: 12px; background-repeat: no-repeat; background-position: center center; width: 16px; height: 16px;\"></i>"; button += "<span style=\"padding-right: 12px;\">Download</span></a></div>"; var style = "<style>#pickvideo button::-moz-focus-inner{padding:0;margin:0}#pickvideo a{background-color:#15388c}#pickvideo a:hover{background-color:#E91E63}#pickvideo a:active{background-color:rgb(0, 151, 74)}</style>"; var tmp = wrap.innerHTML; wrap.innerHTML = tmp + button + style; } } function polymerAdd() { var buttonDiv = document.createElement("span"); buttonDiv.style.width = "100%"; buttonDiv.id = "pickvideo"; var addButton = document.createElement("a"); addButton.appendChild(document.createTextNode("Download video")); addButton.style.width = "100%"; addButton.style.backgroundColor = "#15388c"; addButton.style.color = "white"; addButton.style.textAlign = "center"; addButton.style.padding = "5px 10px"; addButton.style.margin = "0px 10px"; addButton.style.fontSize = "14px"; addButton.style.border = "0"; addButton.style.cursor = "pointer"; addButton.style.borderRadius = "2px"; addButton.style.fontFamily = "Roboto, Arial, sans-serif"; addButton.style.textDecoration = "none"; addButton.href = "https://pickvideo.net/download?video=www.youtube.com/watch?v=" + ytvid(window.location.href); addButton.target = "_blank"; buttonDiv.appendChild(addButton); var targetElement = document.querySelectorAll("[id='count']"); for (var i = 0; i < targetElement.length; i++) { if (targetElement[i].className.indexOf("ytd-video-primary-info-renderer") > -1) { targetElement[i].appendChild(buttonDiv); } } } function ytvid(url) { var p = /((http|https)\:\/\/)?(?:[0-9A-Z-]+\.)?(?:youtu\.be\/|youtube(?:-nocookie)?\.com\S*[^\w\s-])([\w-]{11})(?=[^\w-]|$)(?![?=&+%\w.-]*(?:['"][^<>]*>|<\/a>))[?=&+%\w.-]*/ig; return (url.match(p)) ? RegExp.$3 : false; } })();