Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save Ayx03/0b87d07bfeabdfa856fd3948cd699c8f to your computer and use it in GitHub Desktop.
Save Ayx03/0b87d07bfeabdfa856fd3948cd699c8f to your computer and use it in GitHub Desktop.
Translate to Chinese automatically. youtube自动翻译中文简体
// ==UserScript==
// @name YouTube字幕自动翻译->中文简体
// @namespace http://tampermonkey.net/
// @version 1.0 patch
// @description translate to Chinese automatically. 自动点击字幕翻译到中文简体
// @author qwertyuiop6
// @match https://www.youtube.com/watch*
// @grant none
// ==/UserScript==
(function(){
const $=document.querySelector.bind(document);
const $$=document.querySelectorAll.bind(document);
const video=$('video');
function checkAndClick(){
let sub=findElem($$('[role="menuitem"]'),"字幕");
if (!sub) return false;
sub.click();
let subc = findElem($$('[role="menuitemradio"]'),"中文(中国)"); //看不惯繁体
if (subc) {
subc.click();
video.click();
} else {
let autoTrans = findElem($$('[role="menuitemradio"]'),"自动翻译");
if (!autoTrans) return false;
autoTrans.click();
let autoTransC = findElem($$('[role="menuitemradio"]'),"中文(简体)");
if (!autoTransC) return false;
autoTransC.click();
}
return true;
}
function findElem(elems,text) {
for (let node of elems) {
if (node.textContent.startsWith(text)) {
return node
}
}
return null
}
function clickToTranslate(){
$('.ytp-subtitles-button[aria-pressed="false"]')?.click();
const settingsButton=$('.ytp-settings-button');
settingsButton.click();
if(!checkAndClick()) settingsButton.click();
}
video.addEventListener('loadstart',clickToTranslate)
window.addEventListener('load', ()=>{
$('.ytp-ad-skip-button-icon')?.click();
video.dispatchEvent(new Event('loadstart'))
})
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment