如何从 youtube 视频列表中获取 contentDetails 部分

how to get contentDetails part from youtube video list

我正在制作 youtube api v3 并希望在列表中显示每个视频的时长。 这是我的代码,但是当我 运行 这段代码时,它给我错误

"Fatal error: Uncaught exception 'Exception' with message 'Error 400 contentDetails : unknownPart' in /home/whatcove/public_html/youtube/youtube_v3/yt/vendor/madcoda/php-youtube-api/lib/Madcoda/Youtube.php:364 Stack trace: #0 /home/whatcove/public_html/youtube/youtube_v3/yt/vendor/madcoda/php-youtube-api/lib/Madcoda/Youtube.php(145): Madcoda\Youtube->decodeList('{\n "error": {\n ...') #1 /home/whatcove/public_html/youtube/youtube_v3/yt/vendor/madcoda/php-youtube-api/lib/Madcoda/Youtube.php(77): Madcoda\Youtube->searchAdvanced(Array) #2 /home/whatcove/public_html/youtube/youtube_v3/yt/index.php(12): Madcoda\Youtube->search('leela movie') #3 {main} thrown in /home/whatcove/public_html/youtube/youtube_v3/yt/vendor/madcoda/php-youtube-api/lib/Madcoda/Youtube.php on line 364"

    public function search($q, $maxResults = 10)
{
    $params = array(
        'q' => $q,
        'part' => 'id, snippet, contentDetails',
        'maxResults' => $maxResults
    );
    return $this->searchAdvanced($params);
}

'search' 端点没有 contentDetails 部分;您也无法从 'search' 端点检索视频持续时间。相反,它用于获取最少的信息(想想搜索结果的比喻)并提供尽可能多的过滤器,然后在选择视频时,您可以使用 videoId 来点击 'videos' 端点(您有返回的信息更多,但可能的过滤器更少,所以它真的不能用于搜索)。