YouTubeの「日本語字幕」が表示し易くなった? 

英語字幕はすぐに表示できますが、それを日本語字幕に変更するのがけっこう手間なので、ボタン1つで日本語字幕に切り換えるツール「JP-Subtitles」を作りました。

 

しかし、日本語字幕にいったん設定してしまえば、YouTubeのプレーヤーに設定が記録される様で、先週の記事    の動画でこのツールをOFFにしても簡単に日本語字幕が表示できました。

 

という事は、「JP-Subtitles」は余り意味のないツールという事になりますが、まあ、色々なテストで必要な場合がありそうなので、私は常駐させてます。

 

また、自動翻訳先の言語を選択してテストして気付いたのですが、ブログに埋込みをしたYouTube動画と、そこからYouTubeサイトを開いて再生をした同じ動画は、表示場所は受け継がれますが、翻訳言語の設定は別設定になる様です。 ややこしい。

 

 

 

字幕のデザインや配置場所が指定できる 

私は知らなかったのですが、字幕の表示場所をドラッグで好きな場所に移動できるんですね。 下はデフォルトの字幕の位置です。

 

 

 

下は、字幕をドラッグして、画面の上部に移動した状態です。

 

 

 

字幕の位置は動画ごとにリセットされますが、位置が変えられる事を知っていると便利な時がありそうです。

 

一方、字幕のデザインは細かく指定できます。 最近に出来た機能でしょうか?

字幕デザインの設定は、「 」ボタン ➔「字幕」➔「オプション」で下のメニューが表示されます。

 

 

 

デフォルトはどんな場合にも読み易いのですが、下の様な映画の字幕風に出来ます。

 

 

 

もう少し文字の縁取りが太い方が読み易いと思いますが、デフォルトのメニューでは設定ができません。 これについては「YouTube Theater」のアレンジ項目を追加したいと思います。 更新は明日の記事に合わせます。

 

 

 

 

「JP-Subtitles」の操作方法 

最初に書きましたが、このツールはあまり不要ではないかも知れません。 でも、もし日本語字幕の設定がなかなかできない様でしたら、このツールを「Tampermonkey」に登録して使ってみてください。 字幕のアイコンを押すと簡単に切り換わります。

 

 

● 「字幕」のスイッチをクリックして赤いアンダーラインが付ける事ができれば、自動的に「日本語字幕」が表示されます。

 

▪「字幕」をONに出来ない動画の場合は、このツールを使っても無効です。

 

● 「字幕」のスイッチをクリックして赤いアンダーラインを消すと、「日本語字幕」は非表示になります。

 

▪「JP-Subtitles」を使う場合は「自動生成された字幕を含める」を「OFF」にする事がお勧めです。 理由は以下です。

 

▪ YouTubeの設定で「自動生成された字幕を含める」を「ON」にしている場合は、最初から赤いアンダーラインが表示され、その場合は ❶ の2度クリックが必要です。

 

▪「自動生成された字幕を含める」の「ON / OFF」の設定は以下で行えます。

 

 

 

 

「JP-Subtitles」を利用するには

このツールは Chrome / Edge / Firefox版の拡張機能「Tampermonkey」上で動作します。 ツールは常駐タイプで常時にONにしておくと、YouTube動画ページでのみ機能します。 また、ページ埋込みされた YouTube動画でも、この機能は有効です。

 

以下に、このツールの導入手順を簡単に説明します。

 

❶「Tampermonkey」を導入します

◎ 使用しているブラウザに拡張機能「Tampermonkey」を導入する事が必要です。

既に「Tampermonkey」を導入している場合は、この手順 ❶ は不要です。 

拡張機能の導入については、以下のページに簡単な説明があるので参照ください。

 

 

❷「Tampermonkey」にスクリプトを登録します

◎「Tampermonkey」の「」マークの「新規スクリプト」タブを開きます。

 

 

 

◎「新規スクリプト」には、最初からテンプレートが記入されています。 これは全て削除して、完全に空白の編集枠に 下のコードをコピー&ペーストします。

 

〔コピー方法〕 軽量シンプルなツール「PreBox Button   」を使うと

  コード枠内を「Ctrl+左Click」➔「Copy code 」を「左Click」

  の操作で、掲載コードのコピーが可能になります。

 

◎ 最後に「ファイル」メニューの「保存」を押すと、ツールが使用可能になります。

 

 

〔 JP-Subtitles 〕 ver. 0.2

 

// ==UserScript==
// @name         JP Subtitles
// @namespace    http://tampermonkey.net/
// @version      0.2
// @description  YouTube動画の日本語字幕をワンタッチで表示する
// @author       everyone
// @match       https://www.youtube.com/*
// @icon          https://www.google.com/s2/favicons?sz=64&domain=youtube.com
// @grant        none
// ==/UserScript==

let able_flag;

let target=document.querySelector('head');
let monitor=new MutationObserver(main);
monitor.observe(target, { childList: true });

main();


function main(){
    let h_v_p_p_m=document.querySelector('.html5-video-player.playing-mode');
    let y_sb_b=document.querySelector('.ytp-subtitles-button');

    if(y_sb_b && h_v_p_p_m){
        y_sb_b.onclick=function(){
            able();
            if(able_flag==1){
                push_0();
                setTimeout(()=>{
                    push_1(); }, 20);
                setTimeout(()=>{
                    push_2();
                    hide(); }, 40);
                setTimeout(()=>{
                    push_3();
                    hide(); }, 200);
                end(); }
            }}}


function able(){
    let y_sb_b=document.querySelector('.ytp-subtitles-button');
    if(y_sb_b){
        if(y_sb_b.getAttribute('aria-pressed')=='true'){
            able_flag=1; }
        else{
            able_flag=0; }}}


function hide(){
    let y_s_m=document.querySelector('.ytp-settings-menu');
    if(y_s_m){
        y_s_m.style.display='none'; }}


function push_0(){
    let y_st_b=document.querySelector('.ytp-settings-button');
    if(y_st_b){
        y_st_b.click(); }}


function push_1(){
    let y_menu=document.querySelectorAll('.ytp-menuitem');
    for(let k=0; k<y_menu.length; k++){
        if(y_menu[k].querySelector('.ytp-menuitem-icon')){
            if(y_menu[k].textContent.includes('字幕')
               && y_menu[k].querySelector('.ytp-menuitem-label-count')){
               if(able_flag==1){
                y_menu[k].click(); }}}}}


function push_2(){
    let y_m=document.querySelectorAll('.ytp-menuitem');
    for(let k=0; k<y_m.length; k++){
        if(y_m[k].textContent.includes('自動翻訳')){
            if(able_flag==1){
                  y_m[k].click(); }}}}


function push_3(){
    let y_m=document.querySelectorAll('.ytp-menuitem');
    for(let k=0; k<y_m.length; k++){
        if(y_m[k].textContent.includes('日本語')){
            if(able_flag==1){
                y_m[k].click(); }}}}


function end(){
    let y_m_c=document.querySelectorAll('.ytp-menuitem-content');
    for(let k=0; k<y_m_c.length; k++){
        if(y_m_c[k].textContent.includes('>> 日本語')){
            able_flag=0;
            let y_s_m=document.querySelector('.ytp-settings-menu');
            if(y_s_m){
                y_s_m.style.display='inherit'; }}}}


 

 

 

「JP-Subtitles」最新版について 

旧いバージョンの JavaScriptツールは、アメーバのページ構成の変更で動作しない場合があり、導入する場合は最新バージョンをお勧めします。

 

●「JP-Subtitles」の最新バージョンへのリンクは、以下のページのリンクリストから探せます。