1. ホーム
  2. youtube-api

[解決済み] YouTube API バージョン 3 で動画の継続時間を取得するにはどうすればよいですか?

2022-12-05 03:13:20

質問

YouTube API v3を使ってYouTubeを検索しています。

https://developers.google.com/youtube/v3/docs/search

ご覧のとおり、応答 JSON には動画の継続時間が含まれていません。ビデオの再生時間を取得する方法はありますか?

できれば、結果の各要素に対して API を再度呼び出さないようにしてください(それが継続時間を取得する唯一の方法である場合を除きます)。

どのように解決するのですか?

検索呼び出しを行った後に、YouTube データ APIのビデオリソースを呼び出す必要があります。検索には最大50のビデオIDを入れることができるので、各要素ごとに呼び出す必要はないでしょう。

https://developers.google.com/youtube/v3/docs/videos/list

を設定することになります。 part=contentDetails というのは、デュレーションがそこにあるからです。

例えば、次のような呼び出しです。

https://www.googleapis.com/youtube/v3/videos?id=9bZkp7q19f0&part=contentDetails&key={YOUR_API_KEY}

このような結果になります。

{
 "kind": "youtube#videoListResponse",
 "etag": "\"XlbeM5oNbUofJuiuGi6IkumnZR8/ny1S4th-ku477VARrY_U4tIqcTw\"",
 "items": [
  {

   "id": "9bZkp7q19f0",
   "kind": "youtube#video",
   "etag": "\"XlbeM5oNbUofJuiuGi6IkumnZR8/HN8ILnw-DBXyCcTsc7JG0z51BGg\"",
   "contentDetails": {
    "duration": "PT4M13S",
    "dimension": "2d",
    "definition": "hd",
    "caption": "false",
    "licensedContent": true,
    "regionRestriction": {
     "blocked": [
      "DE"
     ]
    }
   }
  }
 ]
}

時刻はISO 8601の文字列としてフォーマットされる。PTはTime Durationの略で、4Mは4分、13Sは13秒を表します。