【发布时间】:2016-04-10 03:12:16
【问题描述】:
我们有一个脚本可以将之前上传到我们服务器的视频上传到 YouTube。这是一个相当大的脚本,所以我会尽量简洁。正在尝试上传的代码...
$video = ... // our model instance, as we queue videos in a db table
$media = new Google_Http_MediaFileUpload(...
.
.
.
$fp = fopen($videoFile, 'rb');
while (!$status && !feof($fp)) {
$chunk = fread($fp, $chunkSize);
$status = $media->nextChunk($chunk);
$video->progress = $media->getProgress();
$video->save();
}
fclose($fp);
$fp = null;
$client->setDefer(false);
...从 YouTube API 收到以下错误:
0: Failed to start the resumable upload (HTTP 401: youtube.header, Unauthorized)
据我所知,我们的脚本运行正常。它获取访问令牌,直到它尝试上传文件的所有内容似乎都很好。但随后它从 YouTube 返回以下错误,然后按设计处理错误。
根据此 SO 帖子,此错误的原因是该帐户不存在颁发 OAuth/API 凭据的通道。
YouTube API3.0 videos.insert (upload) -- "Failed to start the resumable upload" exception
.. 虽然拥有凭据的此帐户不是目标频道的所有者,但它是该频道的管理员。我知道有点复杂的设置,但这已经设置了很多年,凭据没有改变,只有我们的软件更新到了新版本。由于颁发 oauth 凭证的帐户是目标频道的经理,是否只是指定要上传到哪个频道的情况?例如帐户拥有/管理的频道。我在以前的版本中也看不到任何指定此内容的内容,但我想知道它是否应该存在。
【问题讨论】:
-
您使用的是服务帐号吗?
-
我不这么认为,它只是一个标准的 Google 帐户,在开发者控制台中,有前一个开发者创建的 OAuth 凭据。实际上,我们现在正在寻求将目标频道的所有权转移到此帐户。因此,此帐户将不是管理员,而是所有者。所以希望我们不需要指定哪个频道?我目前正在研究这是否可行。
标签: php oauth youtube youtube-api