Você terá que fazer uma chamada para o recurso de vídeo da API de dados do YouTube depois de fazer a chamada de pesquisa. Você pode colocar até 50 IDs de vídeo em uma pesquisa, então você não terá que chamá-lo para cada elemento.
https://developers.google.com/youtube/v3/docs/videos/list
Você vai querer definir part=contentDetails
, porque a duração está lá.
Por exemplo, a seguinte chamada:
https://www.googleapis.com/youtube/v3/videos?id=9bZkp7q19f0&part=contentDetails&key={YOUR_API_KEY}
Dá este resultado:
{
"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"
]
}
}
}
]
}
A hora é formatada como uma string ISO 8601. PT significa Duração do Tempo, 4M é 4 minutos e 13S é 13 segundos.