Last active
August 6, 2021 15:09
-
-
Save mohemohe/29ed488f33747dbd9644366a4babc48a to your computer and use it in GitHub Desktop.
youtube-subtitle.js
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(async () => { | |
const wait = (ms) => new Promise(resolve => setTimeout(resolve, ms)); | |
const subtitleButton = document.querySelector('.ytp-subtitles-button'); | |
if (!subtitleButton) { | |
return; | |
} | |
const subtitleButtonState = subtitleButton.getAttribute('aria-pressed') === 'true'; | |
subtitleButton.click(); | |
if (subtitleButtonState) { | |
return; | |
} | |
const settingButton = document.querySelector('.ytp-settings-button'); | |
if (!settingButton) { | |
return; | |
} | |
settingButton.click(); | |
await wait(250); | |
const subtitleMenuItem = document.querySelector('.ytp-settings-menu .ytp-menuitem-label-count'); | |
if (!subtitleMenuItem) { | |
return; | |
} | |
subtitleMenuItem.click(); | |
await wait(250); | |
const subtitleListNodes = document.querySelectorAll('.ytp-settings-menu .ytp-menuitem-label'); | |
const subtitles = Array.from(subtitleListNodes).map(_ => _.innerText); | |
const japaneseSubtitleIndex = subtitles.findIndex(_ => _ === '日本語'); | |
if (japaneseSubtitleIndex !== -1) { | |
subtitleListNodes[japaneseSubtitleIndex].click(); | |
return; | |
} | |
const machineTranslateSubtitleIndex = subtitles.findIndex(_ => _ === '自動翻訳'); | |
if (machineTranslateSubtitleIndex!== -1) { | |
subtitleListNodes[machineTranslateSubtitleIndex].click(); | |
} | |
await wait(250); | |
const machineTranslateSubtitleListNodes = document.querySelectorAll('.ytp-settings-menu .ytp-menuitem-label'); | |
const machineTranslateSubtitles = Array.from(machineTranslateSubtitleListNodes).map(_ => _.innerText); | |
const machineTranslateJapaneseSubtitleIndex = machineTranslateSubtitles.findIndex(_ => _ === '日本語'); | |
if (machineTranslateJapaneseSubtitleIndex !== -1) { | |
machineTranslateSubtitleListNodes[machineTranslateJapaneseSubtitleIndex].click(); | |
} | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment