// ==UserScript==
// @name YouTube 自动设置中文字幕
// @match *://youtube.com/*
// @match *://*.youtube.com/*
// @author kernelpanic
// @description 自动设置中文字幕,如果没有则自动选择英文->简体中文翻译
// @icon https://www.youtube.com/favicon.ico
// @noframes
// @run-at document-idle
// @version 1.0
// ==/UserScript==
(() => {
let main = function(event) {
if (event !== undefined && event.target.numNavigations_ == 0) {
return;
}
if (!/\/(watch)/.test(window.location.pathname)) {
return;
}
let player = document.querySelector('.html5-video-player');
player.toggleSubtitles();
var trackList = player.getOption('captions', 'tracklist');
if (trackList === undefined) {
console.log('本视频不支持字幕或翻译!');
return;
}
var availableTracks = trackList.map(track => track.languageCode);
console.log(`支持的字幕: ${availableTracks}`)
if(availableTracks.includes('zh-Hans')){
console.log('有中文字幕,直接加载!');
player.setOption('captions', 'track', {languageCode: 'zh-Hans'});
}else{
console.log('没有中文字幕,设置自动翻译');
player.setOption('captions', 'track', {"languageCode":"en","languageName":"英语","displayName":"英语","kind":"","name":null,"id":null,"is_servable":false,"is_default":false,"is_translateable":true,"vss_id":".en","translationLanguage":{"languageCode":"zh-Hans","languageName":"中文(简体)"}});
}
}
window.addEventListener('yt-navigate-finish', main);
})();