您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Youtube double language subtitle / Youtube 双语字幕. 如果不能自动加载,请关闭字幕再次打开即可。默认语言为浏览器首选语言。已知Bug:默认为zh-TW繁体中文时,即使请求简体中文翻译,Youtube依旧会返回繁体,已向 Youtube 提交 Issue,有新动向此处代码也会同步修改。
当前为
// ==UserScript== // @name Youtube double language subtitle / Youtube 双语字幕 // @version 1.0 // @description Youtube double language subtitle / Youtube 双语字幕. 如果不能自动加载,请关闭字幕再次打开即可。默认语言为浏览器首选语言。已知Bug:默认为zh-TW繁体中文时,即使请求简体中文翻译,Youtube依旧会返回繁体,已向 Youtube 提交 Issue,有新动向此处代码也会同步修改。 // @author Coink // @match https://www.youtube.com/watch* // @require https://unpkg.com/xhook@latest/dist/xhook.min.js // @grant none // @namespace https://github.com/CoinkWang/Y2BDoubleSubs // ==/UserScript== (function() { let localeLang = navigator.language ? navigator.language : 'en' // let localeLang = 'en' // or comment the upper line and define the language you wish here xhook.after(function (request, response) { if (request.url.includes('/api/timedtext') && !request.url.includes('&translate_h00ked')) { let xhr = new XMLHttpRequest(); let reg = new RegExp("(^|[&?])tlang=([^&]*)",'g'); // Use RegExp to clean '&tlang=...' and '&lang=...' in xhr url while using Y2B auto translate. xhr.open('GET', `${request.url.replace(reg,'')}&tlang=${localeLang}&translate_h00ked`, false); xhr.send(); let defaultJson = null, localeJson = null; if (response.data && JSON.parse(response.data).events){ defaultJson = JSON.parse(response.data) } localeJson = JSON.parse(xhr.response) for(let i = 0,len = defaultJson.events.length; i<len; i++){ defaultJson.events[i].segs[0].utf8 += ('\n'+localeJson.events[i].segs[0].utf8) // Merge default subs with locale language subs } response.text = JSON.stringify(defaultJson) } }); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址