【YouTube】再生リストに入れずに特定の動画を数分おきに自動再生する方法【batファイル】

# 前書き
ある特定のYouTube動画を数分おきに見たいこと、ありますよね⁇

そんな悩みを解決するbatファイルを作成してみました。

5分で考え付いた仕組みなので質は良いとは言えませんが、悪しからず…:wink:


**※尚、自分が投稿した動画では再生回数がカウントされることを確認しましたが、収益化しているわけではないので、収益化されるような動画でしっかりとカウントされるかの保証はできません。**


# 記載例
①使用ブラウザが「**Google Chrome**」の場合
```
for /l %%n in (1,1,100) do (
    start <視聴したい動画のURL>
    timeout /t 720 /nobreak
    taskkill /F /IM chrome.exe /T
    timeout /t 120 /nobreak
)
```

②使用ブラウザが「**Microsoft Edge**」の場合
```
for /l %%n in (1,1,100) do (
	start <視聴したい動画のURL>
	timeout /t 720 /nobreak
	taskkill /F /IM MicrosoftEdge.exe /T
	timeout /t 120 /nobreak
)
```


# 解説
まず、batファイルは基本**上から1行ずつ実行**されます。
今回の例で言えば、
`for /l %%n in (1,1,100) do (`
というコマンド（処理）が最初に実行されるわけです。

では、上から1行ずつ見ていきます。

#### ■1行目＆6行目
**`for /l %%n in (1,1,100) do (`**

1行目は`FORコマンド`を用いています。
あまり詳しいことに首を突っ込むと混乱すると思うので簡潔に言うと、
>**「指定した範囲内にあるコマンドを指定した回数だけ繰り返し実行する」**

という処理を実行します。
「なんか繰り返すんだ～」くらいに認識してもらえれば良いと思います。

**「指定した範囲内にあるコマンド」**
→1行目最後にある「(」から**6行目**にある「)」までに記載されているコマンドのこと
**「指定した回数」**
→「(1,1,100)」と並んだ3つの数字のうち、一番最後の「100」という数字のこと
⇒つまり、**100回繰り返す**ことになります。

#### ■2行目
**`start <視聴したい動画のURL>`**

2行目は`STARTコマンド`を用いています。
意味としては、
>**「指定したアプリケーション等を呼び出す・実行する」**

という認識で一旦は良いと思います。

今回は、`start`の後ろに`<視聴したい動画のURL>`を指定しているので、
2行目が実行されることで、
**その動画ページにアクセスし、動画を再生する**
という動きをします。

基本、YouTubeはページを開いたら自動で動画が再生されるので、これだけでOKなはずです。

#### ■3行目＆5行目
**`timeout /t 720 /nobreak`**

3行目と5行目では`TIMEOUTコマンド`を用いています。
意味としては、
>**「指定した秒数待機する」**

という意味になります。

`/t`の後ろに「**720**」という数字がありますが、これは「**720秒**」を表しています。

そして、その後ろに`/nobreak`と記載がありますが、これは「**指定した秒数の間は何かキーを押されても待機を続行する**」ということを表しています。
つまり、**「その動画を再生中にその他の作業を実施しても問題ない」** ということになります。

では、もし`TIMEOUTコマンド`がなかった場合、どうなるでしょうか？
それは4行目のコマンドとの関係で理解できます。

#### ■4行目
**`taskkill /F /IM chrome.exe /T`**

4行目では`TASKKILLコマンド`を用いています。
意味としては、
>**「指定したタスク（プロセス）を終了させる」**

という意味になります。
上記の例で言えば、
**「Google Chromeを終了させる」**
という処理を実行しているわけです。


`TIMEOUTコマンド`の説明で、4行目のコマンドと関係があると記載しましたが、
もし`TIMEOUTコマンド`がなかった場合、2行目の`STARTコマンド`を実行した直後に4行目の`TASKKILLコマンド`が実行されることになります。
今回の例で分かりやすく説明するならば、

**「Google Chromeを起動した直後にGoogle Chromeが終了させられる」**
という挙動です。

本来の目的は動画を再生したいことなので、それでは困りますよね？
特定の秒数が経過するまで、次のコマンドが実行されないようにする必要があるので、`TIMEOUTコマンド`が必須になるのです。


# 流れのまとめ
上記の例の通りに作成した場合、
batファイルを起動（ダブルクリック）すると下記の流れで実行されます。（自動で）

①視聴したい動画のURLにアクセス
②指定した秒数が経過するまで①でアクセスしたページに留まる
③指定した秒数経過後、ブラウザを強制終了
④指定した秒数だけ何もしない待機時間
⑤①に戻る（1行目で指定した回数だけ繰り返される）


# 試しに…
記載例を上述したからといっても、「batファイルなんて初めて聞いた。。」という人からしたらハードルが高いと思います。
なので一旦、下記の例をそのままコピー＆ペーストして試してみましょう。
とある動画が見れます:cherry_blossom:

batファイルをダブルクリックしてから720秒後に勝手にウェブブラウザが終了するはずです:wink:

▼既定のウェブブラウザがGoogle Chromeの場合
```
for /l %%n in (1,1,100) do (
    start https://youtu.be/YJRFD1AdaUE
    timeout /t 720 /nobreak
    taskkill /F /IM chrome.exe /T
    timeout /t 120 /nobreak
)
```

▼既定のウェブブラウザがMicrosoft Edgeの場合
```
for /l %%n in (1,1,100) do (
	start https://youtu.be/YJRFD1AdaUE
	timeout /t 720 /nobreak
	taskkill /F /IM MicrosoftEdge.exe /T
	timeout /t 120 /nobreak
)
```


# （補足）batファイルの作り方
①まず**メモ帳**を開きます。
　＜メモ帳の開き方＞
　(1)「**Windowsキー**」と「**R**」を同時に押す
　(2)『ファイル名を指定して実行』というウィンドウが出てくるので【名前】欄に「**notepad**」と入力する
　(3)【OK】をクリックする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3339646/f5757471-f296-cfbc-9f45-8bf27432749c.png)

②メモ帳を開いたら、上記の記載例をコピーし貼り付ける。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3339646/72291994-fb8a-eac4-a222-41c1e5fcb9fc.png)

③左上の【ファイル】をクリックし、【名前を付けて保存】をクリックする
![batメモ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3339646/50a54a02-7ec4-1a94-6529-ad709888b151.png)

④任意のフォルダに任意の名称で保存する。（**※この時、必ずファイル名の後ろに「.bat」と付ける！**）
![batメモ_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3339646/e60ab8f6-64df-1931-93a8-1cf221a3c912.png)

⑤作成したbatファイルをダブルクリック！！
![batメモ_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3339646/b0ab70dc-ca96-47cc-cc83-ac4abe7a1e60.png)