0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

YouTubeDataAPIでライブ配信の開始日時を取得したい

Posted at

はじめに

YouTubeDataAPIのVideos::listを使って特定のアーカイブの配信開始日時を取得しようとしたところ、想定と違う値(配信開始日時の前日)が取れてしまいました。
これまでにも想定と違う値が取れるケースがたまにあったため、改めて配信開始日時の取得方法を調べました。

前提

APIキーの取得など、APIを使う準備ができていること。

結論

liveStreamingDetails.actualStartTimeを取得する。

調査した内容

間違っていた方法

snippet.publishedAtを取得する。

parameter
"part": "snippet"
"fields": "snippet/publishedAt"

上記の場合、配信枠を取った日時が取得されてしまいます。
時間を空けて再度実行すると日時が配信終了の数時間後になっていることも確認したので、配信終了後にエンコードが完了した場合にも更新されるのかもしれません。

正しい方法

liveStreamingDetails.actualStartTimeを取得する。

parameter
"part": "liveStreamingDetails"
"fields": "liveStreamingDetails/actualStartTime"

上記の場合、配信開始日時が取得されます。
liveStreamingDetailsの子要素には他にも便利な情報が格納されています。

プロパティ名 概要
actualStartTime 配信開始日時
actualEndTime 配信終了日時(配信終了まで取得できない)
scheduledStartTime 配信開始予定日時
scheduledEndTime 配信終了予定日時(未設定の場合は取得できない)
concurrentViewers 同時接続数(配信中のみ取得できる)
activeLiveChatId チャット欄のID(配信中のみ取得できる)

公式ドキュメントを読めば良いのでは?

今回調べてわかったことですが、公式ドキュメントでも日本語は英語に比べてかなり情報が古いです。
試しにそれぞれのページに記載されているvideosリソースの表現をWinMergeで比較してみた画像を以下に掲載します。
(左:日本語ページ 右:英語ページ)
image.png

正直なところ、誤訳程度ならともかくここまで違いがあるとは思ってもみませんでした。
公式ドキュメントでも油断せず原典をあたるようにしようと改めて思いました。

参考

YouTubeDataAPI Videos (jp)
YouTubeDataAPI Videos (en)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?