您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Translate Spotify Web to English using DeepL
当前为
// ==UserScript== // @name Spotify Web Translator to English // @namespace http://tampermonkey.net/ // @version 1.0 // @description Translate Spotify Web to English using DeepL // @author Inari // @match https://open.spotify.com/* // @grant none // @icon https://www.google.com/s2/favicons?sz=64&domain=spotify.com // ==/UserScript== (function() { 'use strict'; function waitForElement(selector, callback) { const observer = new MutationObserver((mutations) => { mutations.forEach((mutation) => { const element = document.querySelector(selector); if (element) { observer.disconnect(); callback(element); } }); }); observer.observe(document.body, { childList: true, subtree: true }); } function translateText(text, callback) { const deeplURL = `https://www.deepl.com/translator#auto/en/${encodeURIComponent(text)}`; const iframe = document.createElement('iframe'); iframe.style.display = 'none'; iframe.src = deeplURL; document.body.appendChild(iframe); iframe.onload = () => { setTimeout(() => { const translatedText = iframe.contentDocument.querySelector('.lmt__target_textarea').value; document.body.removeChild(iframe); callback(translatedText); }, 5000); }; } function translatePage() { const textNodes = []; const walker = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT, null, false); let node; while (node = walker.nextNode()) { textNodes.push(node); } textNodes.forEach((textNode) => { const originalText = textNode.nodeValue.trim(); if (originalText) { translateText(originalText, (translatedText) => { textNode.nodeValue = translatedText; }); } }); } translatePage(); waitForElement('.main-view-container__scroll-node', translatePage); })();