批量下载王者荣耀官网语音鉴赏里单英雄页面语音,下载的文件名用台词命名,设置每秒下载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); })();