見出し画像

【AutoHotKey】YouTubeでボタン一つでリピート再生ON/OFF【ahk】

1. はじめに ※必読

 YouTubeにてボタン一つでリピート再生のON/OFFを切り替えるコードを、オートホットキーで書いたの公開します。
 本稿には必読部分(前半)とそうではない部分(後半)があります(後半部は随時書き足していくつもりです)。お忙しい方も、必読部分は必ずすべて読んでからご使用・ご利用ください。


2. 何をするためのコードなのか & 使い方 ※必読

2-1. 何をするためのコードなのか

 ChromeにおけるYouTubeの動画視聴中に、キーを一回押すだけで、視聴中の動画のリピート再生のON/OFFを切り替えることができます。ページのリロードもなく切り替えられます。

2-2. 使い方

  • YouTubeの動画再生画面で【無変換 + b】を一回押すと、その動画のリピート再生がONになります。

  • もう一度【無変換 + b】を押すと、OFFになります。

  • ただし、Chrome以外のブラウザでは機能しません。


3. コードを使用・利用するための条件 ※必読

 このコードを使用または利用した結果に関して、私(投稿主)は一切の責任を負わないことに同意したうえで、ご使用・ご利用ください。同意は使用・利用の必要条件とします。


4. 投稿主の環境 ※必読

 私の環境をごく簡単に紹介します。

  • Windows 11

  • AutoHotkey Unicode 64-bit (ver. 1.1.34.03)

  • Google Chrome バージョン: 104.0.5112.102(Official Build) (64 ビット)

 上記以外の環境での動作や影響は一切検証していませんので、ご注意ください。


5. 実際のコード ※必読

 下のコードをコピペして、スクリプトをリロードすれば、使えるようになります。

#IfWinActive,ahk_exe chrome.exe
sc07B & b::
clip_backup := ClipboardAll
Send, {F6}
Sleep, 50
Send, ^c
Send, {Shift down}{F6}
Sleep, 50
Send, {Shift up}
IfInString, clipboard, youtube.com/watch
{
	Send, {Home}
	MouseGetPos, m_xpos, m_ypos
	Sleep, 500
	MouseClick,RIGHT,600,500,,0
	Sleep, 100
	MouseClick,LEFT,610,510,,0
	MouseMove, m_xpos,m_ypos
	Clipboard := clip_backup
	clip_backup =
	m_xpos =
	m_xpos =
  	Return
}
Else
{
  	Clipboard := clip_backup
	clipbackup =
	Return
}
#IfWinActive


6. 既知の問題と対処法 ※必読

6-1. 無変換キーの機能が失われる

 これは何かの不具合ではなく、オートホットキーの仕様です。「sc07B & b::」の部分を「~sc07B & b::」に置き換えることにより、無変換キーの機能は保持されますが、より厄介な問題が生じるのでお薦めできません。
 そのため、事実上は、上記コードを使う場合、無変換キーの機能は諦めることになります。

6-2. YouTubeでシークバーが選択されていると、動画が先頭に戻ってしまう

 シークバー選択時に【無変換 + b】を押して上記コードを実行すると、動画が先頭(0:00)に戻ってしまいます。
 というのも、YouTube独自のキーボードショートカットに、 「シークバー選択時に【Home】で動画の先頭に戻る」というものがあるからです。上記のコードの中には「【Home】キーを送信する」という処理があるので、シークバー選択時にコードを実行するとYouTube独自のそのショートカットが発動してしまうのです。
 対策としては、【無変換 + b】を押す前に動画画面の外のテキトウな所をクリックするというものがあるでしょう。こうすると、シークバーから選択が外れるので、YouTubeのショートカットは発動しません。

6-3. YouTubeやChromeのUIが変更されれば機能しなくなる

 YouTubeやChromeのUIに大きく依存しているので、それらが大幅に変更されれば機能しなくなることが予想されます。

6-4. 「Chromeのウィンドウが最大化されていて、かつYouTubeがデフォルト表示かシアターモードである」ことが正常な作動の前提である

 このコードは、「Chromeのウィンドウが最大化されていて、かつYouTubeがデフォルト表示かシアターモードである」状態で正常に動くように作られたものです。そのため、それ以外の状態(たとえばChromeのウィンドウが最大化されていない状態)では期待通りの挙動がまったく保証されません。
 この問題に対しては、上記の状態で使用していただくというのが最善の対策になるでしょう。

6-5. 実行中にマウスを操作すると期待通りの挙動を示さない可能性が高い

 小見出しどおりの問題です。【無変換 + b】を押したら、数秒はマウス操作をしないでください。


7. 記事の折り返し地点 ※必読

7-1. この記事のリンクの掲載について

 もしこの記事のリンクを、ご自身のブログやサイト等に掲載されたいという方がいらっしゃいましたら、私への連絡はせずに、ご自由に掲載してください。

7-2. 上記コードの、商売への利用について

 もし万が一、この記事のコードを何らか商売のためにご使用・ご利用したい方がいらっしゃったら、ご自由にどうぞ。その際も私への連絡はしないでください。

7-3. 記事の後半部分について

 この記事の後半部分では、コードの概説、Chrome以外のブラウザでも使う方法の紹介、無変換キーの機能と両立させる方法の紹介などをします。前半の必読部分では省略した情報を含んでいるので、このコードへの理解を深めたい方は読まれることをお薦めします。

 ※ここで必読部分は終わりです。読んでくださり、ありがとうございました。
 では後半に続きます。


8. コードの概説

この記事が気に入ったらサポートをしてみませんか?