插入后不久使用的YouTube API列表视频不返回视频

时间:2019-01-30 05:34:27

标签: php youtube-api

我在这里使用了将近2年的用例如下。

  • 视频已上传到用户的YouTube频道。
  • 上传后,我们会从YouTube获得视频ID。
  • 紧随其后,我们尝试将视频设置为缩略图

此过程已经运行了一段时间,虽然我们遇到了问题,但是没有遇到这个问题。 (我们遇到的最后一个问题与使用YouTube的PHP库设置缩略图有关,因此我们切换到了cURL来解决了该问题。)

该视频确实已上传,因此我不会发布该代码,因为它可以正常工作。 缩略图的设置方法如下:

$thumbnail_path = realpath($PathToImage);
$data = [
    'filedata' => new CURLFile($thumbnail_path, 'image/jpeg', basename($thumbnail_path)),
];      
$curl = curl_init();
// This just us the token data that the cURL requests uses, don't think too hard about it
$token = $CustomYouTubeCredenetialsClass->BuildClientAccessTokenArray();
curl_setopt($curl, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer '.$token['access_token'],
]);
// Here $VideoId is set by the video upload process, we store this value so i can assure you that it is set and set correctly
curl_setopt($curl, CURLOPT_URL, 'https://www.googleapis.com/upload/youtube/v3/thumbnails/set?videoId='.$VideoId.'&key='.GOOGLE_CLIENT_SECRET);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($curl);
curl_close($curl);

$response_json = json_decode($response, true);

这将返回YouTube Thumbnails API文档中的notFound(404)错误。

进一步执行类似的请求

// This is a valid YouTube client using the users access token
$YouTubeClient->videos->listVideos("processingDetails,status", array('id' => $VideoId));

不会返回与我们提供的视频ID相匹配的视频ID

$response = $YouTubeClient->channels->listChannels(
    'contentDetails',
    [
        'mine' => true
    ]
);                    
$uploads_playlist = $response['items'][0]['contentDetails']['relatedPlaylists']['uploads'];
$response = $YouTubeClient->playlistItems->listPlaylistItems(
    'snippet,status,processingDetails',
    [
        'pageToken' => null,
        'maxResults' => 10,
        'playlistId' => $uploads_playlist
    ]
);

这将列出最近上传到该频道的10个视频,但是,这还不包括刚通过API上传的视频。

我的印象是,即使在此结果中也应返回处理视频,尤其是因为processDetails是您可以请求的一部分。由于没有,因此我们拥有的旨在定期检查YouTube视频状态(例如可以将其发布到其他平台上)的其他处理程序现在会因为找不到视频而失败。

如果您要等待约5秒钟,视频将在所有查询中返回(您也可以设置缩略图),但是这种延迟完全没有记录,只是最近才引入一个问题。

0 个答案:

没有答案