YouTube数据API可恢复视频上传请求错误

时间:2013-03-26 00:00:59

标签: php httpwebrequest youtube-api

我的视频文件存储在我的网络服务器上,我希望能够以自动方式上传到YouTube。这些视频是在我的网站上创建的,然后用户就可以上传到他们的YouTube频道。

我正在尝试进行HTTP请求调用,以根据此处的可恢复视频上传流程自动执行此视频上传过程:https://developers.google.com/youtube/2.0/developers_guide_protocol_resumable_uploads

一切正常(获得用户的访问权限,发送视频的元数据)直到最后一步,即视频本身的上传。当我发出PUT请求时,它返回响应代码417并显示无效请求。像这样:

遇到以下错误:

Invalid Request 

HTTP请求的某些方面无效。可能的问题:

Missing or unknown request method
Missing URL
Missing HTTP Identifier (HTTP/1.0)
Request is too large
Content-Length missing for POST or PUT requests
Illegal character in hostname; underscores are not allowed 

我查看了所有可能存在的问题,但我在代码中找不到任何错误。

错误信息只是含糊不清,而且不够具体,无法告诉我问题出在哪里。

我正在使用PHP的标准Http Request类执行视频上传过程的每一步。 (http://www.php.net/manual/en/class.httprequest.php

这是我的代码:

$videoFile = *Some Video File*;

$httpRequest = new httpRequest($_SESSION['youtube_data_api']['upload_url'], HttpRequest::METH_PUT);

$httpRequest->setContentType('video/mp4');
$httpRequest->setPutFile($videoFile);

$headersArr = array('Content-Length' => strlen($httpRequest->getRawRequestMessage()));
$httpRequest->setHeaders($headersArr);

$httpMessage = $httpRequest->send();

我在互联网上挖掘了很多关于这个问题的内容,很多时候我发现人们使用Zend框架的YouTube库来实现这一目标,这要容易得多。不幸的是,由于我现在的网站规模很大,花费一些时间尝试将框架集成到我的网站上是不可行的。

对这个问题的任何见解都会有很大帮助!谢谢!

0 个答案:

没有答案