NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name Youtube Best Video Downloader 2 // @description Download every YouTube video you want and you can download them as Full-HD MP4, FLV, 3GP, MP3 192kbps, M4A and AAC formats. Also thumbnails and subtitles can be downloaded! Easy & Fast! // @homepageURL https://bvd2.nl/ // @author BVD2 // @version 8.02 // @date 05-10-2017 // @namespace BVD2 // @match https://www.youtube.com/* // @require http://code.jquery.com/jquery-1.12.4.min.js // @grant none // @license MIT // @icon https://bvd2.nl/images/icon.png // ==/UserScript== function go() { start(); removeframe(); } window.addEventListener('spfdone', go, false); window.addEventListener('DOMContentLoaded', go, false); window.addEventListener('yt-navigate-finish', go, false); function start() { function isMaterial() { var temp; temp = document.querySelector("ytd-app, [src*='polymer'],link[href*='polymer']"); if (!temp) { // old UI temp = document.createElement("template"); temp.innerHTML = // `<div id='material-notice' style='border-radius:2px;color:#FFF;padding:10px;background-color:#ff0000;box-shadow:0 0 3px rgba(0,0,0,.5);font-size:18px;position:fixed;bottom:20px;right:50px;z-index:99999'> <strong><ins>WARNING : </ins></strong>Best Video Downloader 2 is <B>Only compatible with the new YouTube Material Layout</B><br> <a href='https://youtube.com/new' target='_blank' style='font-weight:bold;'>Click here</a> to activate the new YouTube Material Layout.<br> <br/><br/> <span id='close' onclick='document.getElementById("material-notice").remove(); return false;' align='center' STYLE='display:block;width:100px;height: 100%;margin: 0 auto;'><strong><ins><a href=""> [X] CLOSE </a></ins></strong></span> </div>`; document.documentElement.appendChild(temp.content.firstChild); document.documentElement.removeAttribute("data-user_settings"); return true; } } isMaterial(); var lasturl = ""; function check() { if (location.href == lasturl) return; lasturl = location.href; if (lasturl.indexOf("watch?v=")) removeframe(); } setInterval(check, 1000); function removeframe() { var frm_div = document.getElementById('EXT_DIV'); if (frm_div) { frm_div.parentElement.removeChild(frm_div); } } bvd2_btn_onclick = function() { var url = window.location.href; var video_url = 'https://bvd2.nl/8/download/?url=' + url; addiframe(video_url, '250'); }; getSpan = function(text, className) { var _tn = document.createTextNode(text); var span = document.createElement("span"); span.className = className; span.appendChild(_tn); return span; }; createButton = function() { var obj = document.querySelector('#top-row>#subscribe-button'); if (obj !== null) { // check if the button has already been created var btnRow = document.getElementById('bestvd2'); if (btnRow === null) { var bestvd2 = document.createElement("div"); bestvd2.id = "bestvd2"; bestvd2.className = "style-scope"; var bvd2_btn = document.createElement("div"); bvd2_btn.className = "style-scope bvd2_btn"; bvd2_btn.style = "background-color: green; border: solid 2px green; border-radius: 2px; color: white; padding: 0px 15px; font-size: 14px; cursor:pointer; height:33px;margin-right: 7px;margin-top: 7px;line-height: 33px;font-weight: 500; display:inline-block;"; bvd2_btn.appendChild(getSpan("Download", "")); bvd2_btn.onclick = bvd2_btn_onclick; obj.parentNode.insertBefore(bestvd2, obj); bestvd2.appendChild(bvd2_btn); } } }; function addiframe(src, height) { try { var pegPlace = document.getElementById('watch-description'); if (pegPlace === null) { pegPlace = document.getElementById('playnav-video-details'); if (pegPlace === null) pegPlace = document.getElementById('watch7-action-panels'); if (pegPlace === null) pegPlace = document.getElementById('watch8-secondary-actions'); } var iframe = document.getElementById('EXT_FRAME'); if (iframe === null) { div = CreateIframeDiv(height); iframe = CreateIframe(height); div.appendChild(iframe); ele = document.querySelector('#main>#info'); ele.parentNode.insertBefore(div, ele.nextSibling); } src += '&type=Download'; src += ''; iframe.setAttribute("src", src); } catch (err) { console.log(err); } } function CreateIframe(height) { iframe = document.createElement('iframe'); iframe.setAttribute("id", "EXT_FRAME"); iframe.setAttribute("width", "640px"); iframe.setAttribute("height", height); iframe.setAttribute("border", "0"); iframe.setAttribute("scrolling", "no"); iframe.setAttribute("style", "border: 0 none;"); iframe.setAttribute("sandbox", "allow-scripts allow-popups allow-same-origin"); return iframe; } function CreateIframeDiv(height) { var div = document.createElement('div'); div.setAttribute("id", "EXT_DIV"); div.style.width = '640px'; div.style.margin = '5px 0px 5px 0px'; div.style.padding = '0px'; div.style.height = '90px'; div.style.overflow = 'visible'; return div; } var intervalCheck = setInterval(function() { createButton(); }, 250); }