我们有一个脚本可以将视频上传到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凭证的帐户是目标渠道的管理者,是否只是指定要上传到哪个渠道?例如帐户拥有/管理的渠道。我也看不到在之前版本中指定这个的任何内容,但我想知道它是否应该存在。
答案 0 :(得分:1)
标准Google帐户不允许代表内容所有者上传视频,这是您获得未经授权的响应的原因。为了做到这一点,您应首先transfer of ownership帐户,但这应该由所有者自己完成。 (如支持页面所述)
下面列出了如何执行此操作的步骤。
每个Google+信息页都有一位所有者;此所有者适用于已关联的YouTube频道。要转移与Google+信息页相关联的频道的所有权,您需要转移页面本身的所有权。您转让所有权的人必须是该页面的管理员至少一天。
只有当前所有者才能转让所有权。登录网页所有者Google帐户。
在YouTube上,请务必选择正确的频道。然后转到频道的帐户设置,然后点击添加或删除管理员。
- 醇>
点击此人姓名下方的下拉箭头,然后选择转让所有权。