Youtube Custom Emoji Downloader

Add Download All Emoji Button on The Membership page.

目前为 2023-04-12 提交的版本。查看 最新版本

// ==UserScript==
// @name         Youtube Custom Emoji Downloader
// @namespace    https://gf.qytechs.cn/en/scripts/463860-youtube-custom-emoji-downloader
// @homepage     https://gf.qytechs.cn/en/scripts/463860-youtube-custom-emoji-downloader
// @version      0.2
// @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 zipFilename = CurUrl.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);
                });
            }
        });
    });
}

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址