Last active
April 13, 2020 12:16
-
-
Save ohmika/c02cc64e7dfeac22942c0c841c2bf2de to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==UserScript== | |
// @name Loader.to Extension | |
// @namespace https://loader.to | |
// @version 0.1 | |
// @description Adds button to download youtube video | |
// @author Loader.to | |
// @match *://www.youtube.com/* | |
// @exclude *://www.youtube.com/embed/* | |
// @run-at document-start | |
// @grant none | |
// ==/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("loader")===null){polymerAdd();}},100);}else{setInterval(function(){if(window.location.href.indexOf("watch?v=")<0){return false;} | |
if(document.getElementById("watch7-subscription-container")&&document.getElementById("loader")===null){htmlAdd();}},100);} | |
function htmlAdd(){if(document.getElementById("watch7-subscription-container")){var wrap=document.getElementById('watch7-subscription-container');var button="<div id='loader' style='display: inline-block; margin-left: 10px; vertical-align: middle;'>";button+="<a href=\"https://loader.to/?link=https://www.youtube.com/watch?v="+ytvid(window.location.href)+"&f=720&s=1&e=1&r=extension\" title=\"Download this video\" target=\"_blank\""+ | |
"style=\"display: inline-block; font-size: inherit; height: 22px; border: 1px solid rgb(0, 183, 90); border-radius: 5px; 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>#loader button::-moz-focus-inner{padding:0;margin:0}#loader a{background-color:#15388c}#loader a:hover{background-color:#E91E63}#loader 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="loader";var addButton=document.createElement("a");addButton.appendChild(document.createTextNode("Download video"));addButton.style.width="100%";addButton.style.backgroundColor="#16b322";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://loader.to/?link=https://www.youtube.com/watch?v="+ytvid(window.location.href)+"&f=720&s=1&e=1&r=extension";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;}})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment