Youtubeライブ配信の固定URLとチャンネルIDの特定について
チャンネルIDとは、個々のYoutubeチャンネルに割り当てられた被りのない一意のIDのこと。UCから始まる。 例:UCfB8TO0f3iIT43myKEqd1JA
ライブ配信の固定URL
結論
Youtubeチャンネルのライブ配信の固定URLは次のようなURLであり、チャンネルIDをクエリパラメータで指定する必要がある。注:そもそもライブ配信の予定がない場合にはエラーのような表示となるが、予定が入り次第このURLを読み込み直し再生ボタンを押せば「xx分後にライブ配信」という表示とともに再生開始待機状態となる。
https://www.youtube.com/embed/live_stream?channel=チャンネルID 例:https://www.youtube.com/embed/live_stream?channel=UCfB8TO0f3iIT43myKEqd1JA
詳細
ライブ配信の固定URLとは、ライブ配信毎のビデオIDを指定しなくても最新のライブ配信へアクセスできるURLのことである。
ライブ配信を含めYoutubeの動画上で右クリックすると「埋め込みコードをコピー」というメニューが表示される。埋め込みコードは次のような内容である。
<iframe width="800" height="640" src="https://www.youtube.com/embed/XXXXXXX" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
src=
の後ろにそのライブ配信(または動画)のURLが書かれている。この場合は https://www.youtube.com/embed/XXXXXXX
である。このURLの embed/
に続く XXXXXXX
の部分がビデオIDである。つまり「埋め込みコードをコピー」して得られるURLは固定URLではなくライブ配信(または動画)毎に固有のURLである。
ライブ配信(または動画)毎に固有のURLの代わりにライブ配信の固定URLを使って埋め込みコードを書き直すと次のようになる。
<iframe width="800" height="640" src="https://www.youtube.com/embed/live_stream?channel=チャンネルID" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
この埋め込みコードは常に最新のライブ配信を表示することができる。
固定URLに付加できるクエリパラメータには様々な種類がある。下記リンク先参照。
チャンネルIDの特定
結論
YoutubeチャンネルのトップページのURLが
https://www.youtube.com/channel/UCxxxxx
の場合- 難易度:簡単
- チャンネルIDはURL末尾のUCxxxxx
https://www.youtube.com/c/xxxxx
またはhttps://www.youtube.com/user/xxxxx/featured
の場合- 難易度:ちょっと難しい
- YoutubeチャンネルのトップページのHTML中に書かれたJavaScriptに
ytInitialData
変数がある。この変数内のいたるところにチャンネルIDが書かれているのでそれを文字列検索等で抜き取る。チャンネルIDはUCから始まるので検索は容易。 - Youtubeは度々仕様が変わる。そのため、これから先必ずしもこの方法でチャンネルIDを取得できる保証はない。
詳細
チャンネルIDを特定する最も簡単な方法はYoutubeチャンネルのトップページにアクセスしてそのページのURLを見ることである。URLは通常 https://www.youtube.com/channel/チャンネルID
のような形式である。そのためチャンネルIDは単純に channel/
の後ろに続く文字と同じである。
ところが、まれ?にYoutubeチャンネルのトップページのURLがこの形式とは異なることがある。詳細は下記リンク先参照。
URLからチャンネルIDを特定できない場合にはYoutubeチャンネルのトップページのHTMLを見ることでチャンネルIDを手に入れることができる。scriptタグ内に ytInitialData
変数が宣言・定義されており、たいていは次のような形でこの変数内にチャンネルIDが多数書かれている。HTMLをパースして抜き出すか、単に文字列検索で UCxxxxx
の部分を取り出す。
browseId: "UCxxxxx" または {key: "browseId", value: "UCxxxxx"}