您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Add Download All Emoji Button on The Membership page.
当前为
// ==UserScript== // @name Youtube Custom Emoji Downloader // @namespace https://greasyfork.org/en/scripts/463860-youtube-custom-emoji-downloader // @homepage https://greasyfork.org/en/scripts/463860-youtube-custom-emoji-downloader // @version 0.3 // @description Add Download All Emoji Button on The Membership page. // @author Tanuki // @match https://www.youtube.com/* // @icon https://www.google.com/s2/favicons?sz=64&domain=youtube.com // @grant none // @run-at document-end // @require https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js // @require https://cdnjs.cloudflare.com/ajax/libs/jszip-utils/0.1.0/jszip-utils.min.js // @require https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/2.0.5/FileSaver.min.js // @license MIT // ==/UserScript== var CurUrl = window.location.href; var Urlfinal = CurUrl.substr(CurUrl.lastIndexOf('/') + 1); console.log("Landing at " + Urlfinal) window.addEventListener('load', function() { // skrip pas load page }, false); document.addEventListener("click", function(evnt){ CurUrl = window.location.href; Urlfinal = CurUrl.substr(CurUrl.lastIndexOf('/') + 1); console.log("Landing at " + Urlfinal) // cek elemen emoji exist var CustomEmojiContainer = document.querySelectorAll('div[class="expanded item style-scope ytd-sponsorships-perk-renderer"][id="container"]')[1]; if (CustomEmojiContainer) { var btnExist = document.getElementById("CustomEmojiDownloadBtn"); if (typeof(btnExist) != 'undefined' && btnExist != null) { btnExist.remove(); } console.log("Make Emoji Download Button") document.querySelectorAll('div[class="expanded item style-scope ytd-sponsorships-perk-renderer"][id="container"]')[1].insertAdjacentHTML('afterBegin', '<div id="CustomEmojiDownloadBtn" style="background-color:white;color:black;cursor:pointer;text-align:center;border-radius:25px;position:relative;margin:5px;display:inline-block;padding:5px;">Download All Emoji</div>'); var btn = document.getElementById("CustomEmojiDownloadBtn"); btn.onclick = function() { console.log("Get All Emoji Url") var AllEmojiUrl = document.querySelectorAll('#images-line img'); var Emojis = [] for (var EmojiUrl of AllEmojiUrl) { var eurl = EmojiUrl.currentSrc.replace("=w48-h48-c-k-nd","") Emojis.push(eurl) //console.log(eurl) } JSZipDownload(Emojis) }; } }); function JSZipDownload(Urls){ var zip = new JSZip(); var count = 0; var chUrl = document.querySelectorAll('a[class="yt-simple-endpoint style-scope yt-formatted-string"][spellcheck="false"][dir="auto"]')[0].href var zipFilename = chUrl.match(/(?<![\w@])@([\w@]+(?:[.!][\w@]+)*)/g)[0].replace("@","")+".zip"; Urls.forEach(function(url,i){ //console.log(url) var filename = "Emoji_"+i+".png"; // loading a file and add it in a zip file JSZipUtils.getBinaryContent(url, function (err, data) { if(err) { throw err; // or handle the error } zip.file(filename, data, {binary:true}); count++; if (count == Urls.length) { zip.generateAsync({type:'blob'}).then(function(content) { saveAs(content, zipFilename); }); } }); }); }