Greasy Fork 支持简体中文。

批量下载王者荣耀英雄语音

批量下载王者荣耀官网语音鉴赏里单英雄页面语音,下载的文件名用台词命名,设置每秒下载5个,延迟1秒。

安裝腳本?
作者推薦腳本

您可能也會喜歡 王者荣耀音频下载命名

安裝腳本
// ==UserScript==
// @name         批量下载王者荣耀英雄语音
// @namespace    https://www.ltcsmoke.icu/
// @version      V1
// @description  批量下载王者荣耀官网语音鉴赏里单英雄页面语音,下载的文件名用台词命名,设置每秒下载5个,延迟1秒。
// @author       Zero
// @match        https://pvp.qq.com/ip/voice.html
// @icon         https://pvp.qq.com/favicon.ico
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    //设置按钮函数
    function anniu_hanshu() {

        const yuyintiao = document.querySelectorAll('.dinfo-voice-item');//获取语音条数
        var yuyinshu = yuyintiao.length;//获取语音数量

        //设置弹窗
        var tanchaung = confirm("共有"+yuyinshu+"条语音,你确定要下载吗?");
        if (tanchaung == true) {
            //alert("你点击了确定按钮!");

            //定义下载函数
            function xiazaiyinpin(mp3URL, wenjianming, index) {
                return new Promise(resolve => {
                    fetch(mp3URL)
                        .then(response => response.blob())
                        .then(blob => {
                        const link = document.createElement('a');
                        link.href = window.URL.createObjectURL(blob);
                        link.download = `${index + 1}_${wenjianming}.mp3`;
                        link.click();
                    })
                        .catch(error => console.error('下载失败Error downloading audio:', wenjianming))
                        .finally(resolve);
                });
            }

            //定义异步下载函数
            async function zidongxiazaiyuyin() {

                const yuyintiaoshu = document.querySelectorAll('.dinfo-voice-item');

                for (let index = 0; index < yuyintiaoshu.length; index++) {
                    const voiceItem = yuyintiaoshu[index];
                    const mp3URL = voiceItem.getAttribute('data-mp3');
                    const wenjianming = voiceItem.querySelector('span').textContent.trim();
                    console.log(index+1 + wenjianming);

                    // 下载音频文件
                    await xiazaiyinpin(mp3URL, wenjianming, index);

                    // 添加下载延迟(每秒5个)
                    if (index % 5 === 4) {
                        await new Promise(resolve => setTimeout(resolve, 1000)); // 延迟1秒
                    }
                }
            }
            zidongxiazaiyuyin();
        } else {
            //alert("你点击了取消按钮!");
        }
    }

    // 创建下载按钮
    const tianjia_anniu = document.createElement('button');
    tianjia_anniu.textContent = '批量下载王者荣耀英雄语音';
    tianjia_anniu.style.position = 'fixed';
    tianjia_anniu.style.top = '8%';
    tianjia_anniu.style.left = '4%';
    tianjia_anniu.style.zIndex = '999';
    tianjia_anniu.style.border = '3px solid #E4C289';
    tianjia_anniu.style.color = '#E4C289';
    tianjia_anniu.style.background = '#181818';
    tianjia_anniu.style.padding = '1em 2.8em';
    tianjia_anniu.addEventListener('click', anniu_hanshu);

    // 将按钮添加到页面
    document.body.appendChild(tianjia_anniu);

})();