YouTubeライブ配信を見つつ、タイムスタンプを同時作成する方法

# 世間話（導入）
YouTubeでタイムスタンプと呼ばれるコメントを見た事がありますか？
配信終了後すぐタイムスタンプを付ける人がいます。アーカイブを見ずにどうやって作っているのでしょうか？
気になって調べてみたら、案外簡単な話でした。
本記事ではYouTubeライブを視聴しながらタイムスタンプを付ける方法を紹介します。誰かの参考になれば幸いです。







# 完成形
[このスプレッドシート](https://docs.google.com/spreadsheets/d/1ipk5wvMUeOPpdEy4PYDCeF_WunVd7EtuholCA55qeE8/edit)を用いて、以下のようなタイムスタンプが作れます。
配信を見ながら作ることも出来ますし、アーカイブを見ながら作ることも出来ます。
![スクリーンショット (989).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3618162/967bd4bb-86e1-c050-b4bd-c248726e86f2.png)

スプレッドシート上で作成するため、応用が利きやすいと思います。
私は以下のようなデータベースを追加で作って、好きな曲を好きな時に聞いています。
![IMG_20240615_155320.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3618162/2124bb5a-6f80-3d5b-7f5d-13e1b78ea604.png)
<br>

















# 曲データベースを作る
:::note info
ここからスプレッドシートを作っていくわけですが、[こちらのシート](https://docs.google.com/spreadsheets/d/1ipk5wvMUeOPpdEy4PYDCeF_WunVd7EtuholCA55qeE8/edit)を見て関数などを確認しながら読むと理解しやすいと思います。
:::



曲名、歌手、コラボ等の情報を１つのシートにまとめます。タイムスタンプを付けるときに`vlookup`の参照元となるシートです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3618162/0d392282-8126-9e9e-b9bb-42e6cf56f184.png)















| 列 | 内容 |
|:-:|:-:|
| A列 | 曲名 |
| B列 | 歌手、作曲者など |
| C列 | コラボ情報、作品名など |






# タイムスタンプ作成用シートを作る
時間と曲名を入れたら自動的にタイムスタンプを作るように関数を設定していきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3618162/723dacd9-1081-b5f8-40a3-1a455e527103.png)

<br>






## 時間の処理（A～C列）
このスプレッドシートのポイントは、A列とB列の処理です。
A列は経過秒数、B列はコロン無しで時間を入力します。これらの入力値はC列でキレイな形にします。





| A列（経過秒数） | B列（時間） |→| C列（変換後） |
|:-:|:-:|:-:|:-:|
| 90 |   |→| 0:01:30  |
|   | 12345 |→| 1:23:45 |




タイムスタンプを作成するタイミングとして、
①配信中、同時に作成する（A列）
②アーカイブ視聴中（B列）
の２通り考えられますが、それぞれ時間の入力形式が異なります。
（以下、２行目を例に挙げて記述します。）
<br>


~~~:A列->C列
=TEXT(A9/86400,"h:mm:ss")
~~~
A列には秒数を入力するので、`TEXT`関数を用いて`h:mm:ss`の時間の形にします。このとき、86400秒（＝1日）で割ってスプレッドシートに認識してもらえる形にします。
<br><br>




~~~:B列->C列
=TEXT(A2,"0:00:00")
~~~
B列には時間（コロン無し）を入力します。A列と同じく`TEXT`関数を用いますが、こちらは文字列として入力値(B列)を扱います。
<br><br>


~~~:C2セル
=IF(B2="",TEXT(A2/86400,"h:mm:ss"),TEXT(B2,"0:00:00"))
~~~
最後に、A列とB列の両方を入力した際に、B列を優先するよう`if`関数を足します。
<br>




## 曲名・各種情報の処理（D～I列）
~~みんな大好き~~vlookupを使って曲データベースから情報を引っ張ってきます。

:::note info
見映えを考えて`IFNA`関数をはさんでいます。
:::

H列に関しては曲データベースに依存しない一度きりの情報を追加したい時に使います。
<br>







## データの結合（H列）
何も言うことはありません。C～H列を結合するだけです。
<br>






## おまけ（K,L列）
L1に動画IDを入力すると、L列にそのタイムスタンプの位置へのURLが合成されます。K列はそのための前準備のために存在します。
<br>






# タイムスタンプを付ける方法
これで準備ができたので使い方を説明します。
生配信中に作る時とアーカイブを見ながら作る時で時間を入力する部分が異なるため、分けて説明します。
~~D列に曲名を入力するのは自明ということで、割愛します~~





## ①生配信中に作る
A列に経過秒数を入力します。
生配信中に経過時間を確認する方法は2通りあります。
まずは視聴画面で右クリックして「詳細統計情報」を開いてください。




:::note warn
「詳細統計情報」はPCでのみ閲覧できます。
:::


![スクリーンショット 2024-07-17 235019.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3618162/418748a1-5d25-b26c-f1f6-7458b2616110.png)
`Mystery Text`に`t:10164.34`とありますが、これが動画開始からの経過秒数です。小数点以下を切り捨ててA列に入力します。

:::note info
`Live Mode`の右端に`seq 10164`とありますが、この値を入力しても構いません。
但し、配信者によっては1seq=1秒ではなく、2秒や5秒の場合があります。適宜C列の関数を`A2/86400*2`などに変更してください。

~~シーケンス(sequence)のseqですかね？~~
:::











## ②アーカイブを見ながら作る
B列に再生位置をコロン無しで入力します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3618162/82b34518-5662-a2e6-a240-f08b717db587.png)
この画像の場合であれば、`13422`とB列に入力してください。
<br>







# 完成
これでタイムスタンプをつくる土台は完成しました！
J列をコピペしてYouTubeにてコメントしてください！
完成したスプレッドシートは[こちら](https://docs.google.com/spreadsheets/d/1ipk5wvMUeOPpdEy4PYDCeF_WunVd7EtuholCA55qeE8/edit)（コピーして実際に動かしてみてください）
<br>



### 使用例
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3618162/97a90bb8-6677-0bc4-0a21-28e7ebd6f34d.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3618162/006e897a-6087-6d04-5528-e32569e61306.png)
























# 参考

https://support.google.com/docs/answer/3094139?hl=ja


https://qiita.com/Shoto/items/ee39e97e0cf4924a5dae