刚刚开始深入研究 YouTube PHP API,并让基于浏览器的 Zend 上传脚本开始工作。但是,我找不到任何关于如何在上传视频后检索视频状态的文档。我需要这个的主要原因是为了错误处理——我需要能够知道视频是否被 YouTube 批准,因为从技术上讲,有人可以上传太大的图像或文件。我需要知道该视频已获批准,以便我知道在最终用户返回网站时向他们显示什么消息(即“您的视频正在直播”或“视频上传失败”)。
基于 YouTube PHP 浏览器的上传返回一个 URL 参数状态 200
即使格式或大小不正确,这当然没有帮助。关于如何从 YT 对象获取此信息的任何想法?
总而言之,当用户返回网站时,我希望能够根据他们的特定视频 ID 创建一个 YT 对象,并希望能够确认它没有被拒绝。我正在使用 ClientLogin 启动 YouTube 对象:
$authenticationURL= 'https://www.google.com/accounts/ClientLogin';
$httpClient = Zend_Gdata_ClientLogin::getHttpClient(
$username = 'myuser@gmail.com',
$password = 'mypassword',
$service = 'youtube',
$client = null,
$source = 'MySource', // a short string identifying your application
$loginToken = null,
$loginCaptcha = null,
$authenticationURL);
有什么想法吗?
最佳答案
哇,在过去几天四处搜索和拼凑代码后,终于找到了这个问题的答案。创建 $yt
对象后,使用以下命令检查状态:
$yt->setMajorProtocolVersion(2);
$youtubeEntry = $yt->getVideoEntry('YOUR_YOUTUBE_VID_ID', null, true);
if ($youtubeEntry->getControl()){
$control = $youtubeEntry->getControl();
$state = $control->getState()->getName();
}
回显 $state
如果视频因任何原因未获批准,则显示字符串 'failed'
。否则它是空的,这意味着它已获批准并且可以继续使用(猜测其他状态名称将是:处理、拒绝、失败、受限,如 Mient-jan Stelling 上面所建议的)。
这个答案对于初次使用 YouTube API 的人来说是多么艰难。解决了! (拍拍自己的背)
关于php - YouTube PHP API - 获取以前上传的视频的状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7554486/