您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Diese erweiterung erstellt einen Download Button um direkt Videos von youtube zu laden,
当前为
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.greasyfork.icu/scripts/493285/1365031/Erweiterung%20%28download%20button%29%20f%C3%BCr%20das%20gesehende%20videos%20ausblenden%20oder%20makieren.js
// ==UserScript== // @name Erweiterung (download button) für das gesehende videos ausblenden oder makieren // @namespace http://tampermonkey.net/ // @version 1.0 // @description Diese erweiterung erstellt einen Download Button um direkt Videos von youtube zu laden, // oder sie werden auf eine dritt seite weitergeleitet wo nsie das Yputube Video runterladen können. // ACHTUNG: Dieses Script läuft nur mit meinen Userscript "Bastis Youtube Multi Script,gesehende videos ausblenden oder makieren", // was in den nächsten Tagen Online kommt. // Zu den Hauptscript kann dieses Script einfach eingebunden werden und das Hauptscript hat eine Funktion mehr. // Alle Neue einstellmöglichkeiten der erweiterungen können in das Hauptmenü des Hauptscriptes eingestellt werden. // @author basti1012 // @allFrames true // @run-at document-end // @license MIT License // @noframes // @include *youtube.com/watch?v=* // @grant none // ==/UserScript== var start4 = performance.now(); if(!array_localsdtorage){ var array_localsdtorage=[]; } if(!erweiterungs_einstellungs_array){ var erweiterungs_einstellungs_array=[]; } if(!array_script){ var array_script=[]; } if(!localStorage.getItem('download_einblenden')){ localStorage.setItem('download_einblenden',true); } if(!localStorage.getItem('download_from_fremdserver')){ localStorage.setItem('download_from_fremdserver',true); } array_localsdtorage.push(["download_einblenden", false],["download_from_fremdserver",true]); function download_einblenden_anzeigen(){ if(localStorage.getItem('download_einblenden')=='true'){ if(location.href.indexOf('youtube.com/watch?')!=-1 || location.href.indexOf('youtu.be/')!=-1){ function download(){ var id = window.location.search.split('v=')[1]; let hrefDownload ='https://en.loader.to/4/?link=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D'+ id + '3&f=6&s=1&e=1&r=ddownr' window.open(hrefDownload, '_blank'); } const styleTag = document.createElement('style'); styleTag.innerHTML = ` div#download_tooltip { margin: -100px 0 0 -120px; position: absolute; line-height: 12px; border-radius: 5px; display:none; padding: 5px; width: 150px; z-index: 11111; background: rgba(2,2,2,0.8); color: white; } button#www:hover #download_tooltip { display:block; }`; document.body.appendChild(styleTag); function download1(swb,videoTitle){ var p=0; const apiUrl = 'https://co.wuk.sh/api/json'; const requestData = { url: window.location.href }; const xhr = new XMLHttpRequest(); xhr.open('POST', apiUrl, true); xhr.setRequestHeader('Content-Type', 'application/json'); xhr.setRequestHeader('Accept', 'application/json'); console.log("sending request"); xhr.onreadystatechange = function(){ if(xhr.readyState === 4){ if(xhr.status >= 200 && xhr.status < 300) { const responseData = JSON.parse(xhr.responseText); console.log('Response data: ' + JSON.stringify(responseData.url)); createButton(elm,'green','Download success <br> Status : '+xhr.status+' <br> Text : '+xhr.text,1) setTimeout(function() { var a_elem= document.createElement('a'); a_elem.id="eee"; a_elem.href = responseData.url; a_elem.download = videoTitle+'.mp4'; document.getElementsByTagName('body')[0].appendChild(a2); a_elem.click(); // document.getElementById("eee").click(); },1000) }else{ createButton(elm,'red','Download error '+xhr.status+' <br> Text : '+xhr.text,1) } } }; xhr.onerror = function() { console.error('Network error'); createButton(elm,'red','Network error '+xhr.status+' <br> Text : '+xhr.text,1) }; xhr.success = function() { }; if (p==0) { p++ xhr.send(JSON.stringify(requestData)); return; } } function createButton(elm,farbe,videoTitle,j){ const swb = document.createElement('button'); swb.classList.add('ytp-button'); swb.classList.add('downloadBTN'); swb.id="www"; if (j!=1) { if(localStorage.getItem('download_from_fremdserver')=='true'){ swb.onclick = download; }else{ swb.onclick = download1; } } swb.innerHTML=svg(farbe) elm.appendChild(swb); create_div(swb,videoTitle) } function create_div(swb,Text){ const div_element = document.createElement('div'); div_element.id='download_tooltip'; if(Text!=''){ div_element.innerHTML=Text; }else{ div_element.innerHTML=titel_holen(); } swb.appendChild(div_element); } function svg(farbe){ var svg_ele= `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 320"> <rect width="100%" height="100%" fill="none"/> <polyline points="86 110 128 152 170 110" fill="#fff" stroke="${farbe}" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/> <line x1="128" y1="40" x2="128" y2="152" fill="#fff" stroke="${farbe}" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/> <path d="M216,152v56a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V152" fill="none" stroke="${farbe}" stroke-linecap="round" stroke-linejoin="round" stroke-width="24"/> </svg>`; return svg_ele; } function titel_holen(){ return document.getElementById("above-the-fold").querySelector("#title").innerText == null ? window.location.toString() : document.getElementById("above-the-fold").querySelector("#title").innerText; } function url_mutation(elm){ let previousUrl = ''; // console.log(previousUrl) const observer = new MutationObserver(function(mutations) { if (location.href !== previousUrl) { previousUrl = location.href; document.getElementById("www").remove(); setTimeout(function() { // if(localStorage.getItem('download_from_fremdserver')=='true'){ createButton(elm,'white','',2); // }else{ // createButton(elm,'white','',2); // } },3000) } }); const config = {subtree: true, childList: true}; observer.observe(document, config); } function waitForElm(selector) { return new Promise(resolve => { if (document.querySelector(selector)) { return resolve(document.querySelector(selector)); } const observer = new MutationObserver(mutations => { if (document.querySelector(selector)) { observer.disconnect(); resolve(document.querySelector(selector)); } }); observer.observe(document.body, { childList: true, subtree: true }); }); } waitForElm('.ytp-right-controls').then((elm) => { if(localStorage.getItem('download_from_fremdserver')=='true'){ createButton(elm,'white',titel_holen(),2); url_mutation(elm) }else{ // createButton(elm,'white',titel_holen()); // url_mutation(elm) function createButton1(elm,videoTitle){ createButton(elm,'yellow',titel_holen(),1); if (videoTitle =='') { setTimeout(function() { createButton(elm,'blue','Kein Downloadlink gefunden',2) }, 10000); console.log("Kein Downloadlink gefunden"); }else{ createButton(elm,'orange','Klicken um zu downloaden von<br>'+titel_holen(),2); //swb.addEventListener("click",function(){ // download1(swb,videoTitle); // swb.removeEventListener("click",download1,false); // // }) } // console.log(url_mutation(elm,titel_holen())) url_mutation(elm,titel_holen()) } createButton1(elm,titel_holen()) } }) return 4; }else{ return 5; } return 1; }else{ return 2; } return 3; } var download_einblenden_an=download_einblenden_anzeigen(); if(download_einblenden_an==1){ console.log('%c download button aktiviert'+ (performance.now() - start4) + ' ms.','color:green'); }else if(download_einblenden_an==2){ console.log('%c download button deaktiviert'+ (performance.now() - start4) + ' ms.','color:orange'); }else if(download_einblenden_an==3){ console.log('%c cFunctidownload button gerufen error '+ (performance.now() - start4) + ' ms.','color:red'); }else if(download_einblenden_an==4){ console.log('%c download button Watch Seite'+ (performance.now() - start4) + ' ms.','color:green'); }else if(download_einblenden_an==5){ console.log('%c download button Keine watch seite'+ (performance.now() - start4) + ' ms.','color:orange'); }