1、能用的第三方的插件
Chrome:Tampermonkey 或 Violent monkey
Firefox:Greasemonkey、Tampermonkey
或 Violentmonkey
Safari:Tampermonkey
Microsoft Edge:Tampermonkey
Opera:Tampermonkey
或 Violentmonkey
Maxthon:Violentmonkey
Dolphin:Tampermonkey
UC:Tampermonkey
Qupzilla:(不需要额外软件)
AdGuard:(不需要额外软件)
2、js功能代码
浏览此网站 查找您想尝试的用户脚本。最流行的用户脚本有: AC-baidu:重定向优化百度搜狗谷歌搜索_去广告_favicon_双列 -
1.繞過百度、搜狗、谷歌、好搜搜索結果中的自己的跳轉鏈接,直接訪問原始網頁-反正都能看懂
2.新增拦截百度百家号的无用推广数据-支持其他站点
3.去除百度的多余广告
4添加Favicon显示
5.页面CSS
6.添加计数
7.开关选择以上功能 超星网课助手 - 自动挂机看尔雅MOOC,支持视频、音频、文档、图书自动完成,章节测验自动答题提交,支持自动切换任务点、挂机阅读时长、自动登录等,解除各类功能限制,开放自定义参数 千图网无水印下载 - 下载无水印图 计时器掌控者|视频广告跳过|视频广告加速器 - 控制网页计时器速度|加速跳过页面计时广告|视频快进(慢放)|跳过广告|支持几乎所有网页. EX-百度云盘去加载提示版 - 网盘内和分享链接页面均显示[EX-下载]按钮,支持百度企业网盘;
// ==UserScript== // @name youtube自动切换中文字幕 // @namespace https://github.com/crud-boy/Youtube-Automatic-Translation // @version 0.2.4 // @description 油管自动跳广告,自动打开翻译字幕,如果打开失败,请手动点击一下字幕按钮, 不常看greasyfork,有问题请发邮件:vsq_kuangqi@qq.com // @author wlpha // @match *://www.youtube.com/watch?v=* // @match *://www.youtube.com // @match *://www.youtube.com/* // @grant none // @run-at document-end // ==/UserScript== // 测试环境 - 全部通过 // 其他字幕 - https://www.youtube.com/watch?v=vf542A1poBs // 中文字幕 - https://www.youtube.com/watch?v=kLNe5c5qGGA // 台湾字幕 - https://www.youtube.com/watch?v=UXAdlaUhrlE // 香港字幕 - https://www.youtube.com/watch?v=lN6OU04gqpU // 英语字幕 - https://www.youtube.com/watch?v=pWDHeAQWKAA // 其他自动生成字幕 (function() { 'use strict'; var lang = null; function i8nInit(){ try{ lang = document.querySelector('html').getAttribute('lang').trim(); }catch(err){ }; } function tr(text) { switch(lang) { case 'zh-CN': case 'zh': return i8nZhHans(text); case 'zh-TW': case 'zh-HK': return i8nZhHant(text); case 'en-US': case 'en': case 'en-GB': return i8nEnUS(text); default: return text; } } function i8nZhHans(text) { switch(text){ case '开启翻译字幕': case '关闭翻译字幕': case '字幕': case '添加字幕': case '关闭': case '中文': case '简体': case '繁体': case '台湾': case '香港': case '自动翻译': case '自动生成': default: break; } return text; } function i8nZhHant(text) { switch(text){ case '开启翻译字幕': return '開啟翻譯字幕'; case '关闭翻译字幕': return '關閉翻譯字幕'; case '字幕': return '字幕'; case '添加字幕': return '新增字幕'; case '关闭': return '關閉'; case '中文': return '中文'; case '简体': return '簡體'; case '繁体': return '繁體'; case '台湾': return '台灣'; case '香港': return '香港'; case '自动翻译': return '自動翻譯'; case '自动生成': return '自動產生' default: break; } return text; } function i8nEnUS(text) { switch(text){ case '开启翻译字幕': return 'Turn on subtitles'; case '关闭翻译字幕': return 'Turn off subtitles'; case '字幕': return 'Subtitles/CC'; case '添加字幕': return 'add subtitles/CC'; case '关闭': return 'off'; case '中文': return 'Chinese (Simplified)'; case '简体': return 'Chinese (Simplified)'; case '繁体': return 'Chinese (Traditional)'; case '台湾': return 'Chinese (Taiwan)'; case '香港': return 'Chinese (Hong Kong)'; case '自动翻译': return 'Auto-translate'; case '自动生成': return 'auto-generated' default: break; } return text; } function getAbsPosition(el){ var el2 = el; var curtop = 0; var curleft = 0; if (document.getElementById || document.all) { do{ curleft += el.offsetLeft-el.scrollLeft; curtop += el.offsetTop-el.scrollTop; el = el.offsetParent; el2 = el2.parentNode; while (el2 != el) { curleft -= el2.scrollLeft; curtop -= el2.scrollTop; el2 = el2.parentNode; } } while (el.offsetParent); } else if (document.layers) { curtop += el.y; curleft += el.x; } return [curtop, curleft]; }; function getPlayer() { var player = document.querySelector('#ytd-player') || document.querySelector('#player'); // 如果播放器的设置不在可视区域,就停止自动开启翻译 var [x, y] = [0, 0] try { [x, y] = getAbsPosition(player); } catch(e) { return; } var visible_area = y + player.clientHeight - 250; if (document.scrollingElement.scrollTop > visible_area) { return null; } return player; } // 添加开关 function InitTranslateButton(){ var coltrol_place = document.querySelector('.ytp-chrome-controls .ytp-right-controls'); if(coltrol_place && coltrol_place.querySelector('.plugins-trans-btn') == null) { var trans_coltrol_btn = document.createElement('button'); trans_coltrol_btn.className = 'plugins-trans-btn'; trans_coltrol_btn.style = 'position: relative;top: -36%; margin-right:10px; border-radius: 25px;border: none; opacity: 0.95; background-color: #fff; outline:none;'; trans_coltrol_btn.onclick = function(){ var trans_coltrol_state = window.localStorage.getItem('plugins-trans-state'); if(trans_coltrol_state == 'on') { window.localStorage.setItem('plugins-trans-state', 'off'); trans_coltrol_btn.innerText = tr('开启翻译字幕'); removeSubtitlesTrans(); } else { window.localStorage.setItem('plugins-trans-state', 'on'); trans_coltrol_btn.innerText = tr('关闭翻译字幕'); } } if(isEnableTranslate()){ trans_coltrol_btn.innerText = tr('关闭翻译字幕'); } else { trans_coltrol_btn.innerText = tr('开启翻译字幕'); } // 屏蔽youtube强行添加的事件 trans_coltrol_btn.addEventListener = function() {}; coltrol_place.prepend(trans_coltrol_btn); } } function isEnableTranslate(){ var transState = window.localStorage.getItem('plugins-trans-state'); return transState == 'on'; } function hasOpenVideoSettings(){ var menu = document.querySelector('.ytp-popup.ytp-settings-menu'); return menu && menu.style.display != 'none'; } function closeVideoSettingsPlace(){ var menuPlace = document.querySelector('.ytp-settings-menu'); var menuPlaceBtn = document.querySelector('.ytp-settings-button'); if(menuPlace && menuPlace.style.display != 'none') { menuPlaceBtn.click(); } } function openVideoSettingsPlace(callback){ if(!hasOpenVideoSettings()) { var menuPlaceBtn = document.querySelector('.ytp-settings-button'); if(menuPlaceBtn) { menuPlaceBtn.click(); callback(); } } else { callback(); } } function hasVideoSubtitles(){ var dom = document.querySelector('.ytp-subtitles-button.ytp-button'); return dom != null && dom.style.display != 'none'; } // 需要修改 function openVideoSubtitles(){ var settingsPlaceItems = document.querySelectorAll('.ytp-popup.ytp-settings-menu .ytp-menuitem'); settingsPlaceItems.forEach(function(item) { if(item.innerText && item.innerText.indexOf(tr('字幕')) > -1 && item.innerText.indexOf(tr('添加字幕')) == -1) { item.click(); return; } }); // 内置简体字幕 settingsPlaceItems.forEach(function(item) { if(item.innerText && item.innerText.indexOf(tr('简体')) > -1) { item.click(); // 防止无限点击菜单 setSubtitlesTrans('zh-Hans'); closeVideoSettingsPlace(); return; } }); var curLnag = getSubtitlesTrans(); if(curLnag == 'inner-Substitle') { // 如果没有简体字,就打开自动翻译 settingsPlaceItems.forEach(function(item) { if(item.innerText && item.innerText.indexOf(tr('自动翻译')) > -1) { item.click(); setSubtitlesTrans('inner-Substitle'); return; } }); } else if(curLnag != 'zh-Hans') { // 如果没有就打开繁体字 settingsPlaceItems.forEach(function(item) { if(item.innerText) { ['繁体', '台湾', '香港', '中文'].forEach(function(langText) { langText = tr(langText) if(item.innerText.indexOf(langText) > -1) { item.click(); setSubtitlesTrans('inner-Substitle'); closeVideoSettingsPlace(); return; } }); } }); var title = document.querySelector('.ytp-button.ytp-panel-title').innerText.trim(); if(title.indexOf(tr('字幕')) >= -1) { // 没有中文相关字幕,就随便选一个字幕,然后才自动翻译 settingsPlaceItems.forEach(function(item) { if(item.innerText) { var langText = item.innerText.trim(); if(langText.indexOf(tr('添加字幕')) == -1 && langText.indexOf(tr('关闭')) == -1) { setSubtitlesTrans('inner-Substitle'); closeVideoSettingsPlace(); return; } } }); settingsPlaceItems.forEach(function(item) { if(item.innerText && item.innerText.indexOf(tr('自动生成')) > -1) { item.click(); setSubtitlesTrans('inner-Substitle'); closeVideoSettingsPlace(); return; } }); } } } function displaySubtitles() { var subtitle = document.querySelector('.ytp-subtitles-button.ytp-button[aria-pressed="false"]'); if(subtitle) { subtitle.click(); } } function isSubtitlesTrans(){ // curLang == 'zh-Hant' // 统一所有语言设置翻译为简体中文 // en-UK: en-gb // en-US: en // zh-CN zh-Hans zh-Hant return getSubtitlesTrans() == 'zh-Hans'; } function removeSubtitlesTrans() { try { document.querySelector('.ytp-player-content').removeAttribute('translate-zh-hans'); }catch(err) { } } function getSubtitlesTrans(){ try { return document.querySelector('.ytp-player-content').getAttribute('translate-zh-hans'); }catch(err) { return lang; } } function setSubtitlesTrans(lang) { document.querySelector('.ytp-player-content').setAttribute('translate-zh-hans', lang); } function openSubtitles(){ if(hasVideoSubtitles()) { displaySubtitles(); var isTrans = isSubtitlesTrans(); console.log(isTrans); if(isTrans == false) { // 采用callback方式打开和关闭,防止settimeout导致的问题 openVideoSettingsPlace(function() { // 切换字幕 openVideoSubtitles(); }); } } else { try { // 防止切换视频过程,打开字幕,不关闭 var title = document.querySelector('.ytp-button.ytp-panel-title').innerText.trim(); if(title.indexOf(tr('字幕')) >= -1) { closeVideoSettingsPlace(); } }catch(err) { } } } function updateColtrolButtonState() { var transState = window.localStorage.getItem('plugins-trans-state'); var transBtn = document.querySelector('.plugins-trans-btn') if(transBtn) { if(transState == 'on' && transBtn.innerText != tr('关闭翻译字幕')) { transBtn.innerText = tr('关闭翻译字幕'); } else if(transState == 'off' && transBtn.innerText != tr('开启翻译字幕')) { transBtn.innerText = tr('开启翻译字幕'); } } } function hidePageAds() { ['.video-ads', '#player-ads'].forEach(function(selector) { document.querySelectorAll(selector).forEach(function(elment){ elment.style.display = 'none'; }); }); } function isVideoAdsTime(){ var ad = document.querySelector('.ad-showing'); var skipAdButton = document.querySelector('.ytp-ad-skip-button'); var volumeOpenState = document.querySelector("#ytp-svg-volume-animation-mask"); var volumeButton = document.querySelector('.ytp-mute-button'); // 判断有没有广告 if(ad){ // 关闭音量 if(volumeOpenState && volumeButton) { volumeButton.click(); } } else { // 正常视频,打开音量 if(volumeOpenState == null && volumeButton){ volumeButton.click(); } } // 跳过广告 if(skipAdButton) { skipAdButton.click(); } return ad != null; } function main() { i8nInit(); setInterval( function() { // 不显示错误信息 try{ getPlayer() && (function(){ InitTranslateButton(); updateColtrolButtonState(); if(isEnableTranslate()){ hidePageAds(); if(!isVideoAdsTime()) { openSubtitles(); } } })(); }catch(err) { } }, 500 ) }; main(); })();
今天的文章youtube自动切换中文字幕分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/57431.html