我正在使用Zend_Gdata_YouTube与YouTube API进行交互,以便从我的网站上传视频。视频上传为“私人”:
$myVideoEntry->setVideoPrivate();
...并且拥有独特的标签和开发人员标签。然后,管理员可以进入自定义CMS并批准私人用户提交的条目并将其公开 - 至少,这就是我想要做的。
在CMS中,我作为经过身份验证的用户(Zend_Gdata_AuthSub)连接到API。我可以像这样拉出经过身份验证的用户的视频:
$videoFeed = $yt->getuserUploads('default');
这将拉动所有视频,包括私人和公共视频。但是,当我尝试使用搜索字词搜索特定视频时:
$query = $yt->newVideoQuery();
$query->setSafeSearch('none');
$query->setVideoQuery('puppies');
$videoFeed = $yt->getVideoFeed($query->getQueryUrl(2));
或通过标签:
$query = $yt->newVideoQuery();
$query->setOrderBy('viewCount');
$query->setRacy('include');
$query->setCategory('People/sometag');
// obtain a feed with videos matching the provided tag
$videoFeed = $yt->getVideoFeed($query);
或由开发人员代码:
$devTagUrl = 'http://gdata.youtube.com/feeds/api/videos/-/%7Bhttp%3A%2F%2Fgdata.youtube.com' .
'%2Fschemas%2F2007%2Fdevelopertags.cat%7D' . $some_dev_tag;
$videoFeed = $yt->getVideoFeed($devTagUrl);
私有视频将返回空结果。但是,如果我将视频公开,那么我可以从上述三种方法中的任何一种中获取 - 所有这些方法都是在经过身份验证的连接下执行的。
如何根据代码或开发人员代码提取私有视频?我错过了什么吗?非常感谢!!
答案 0 :(得分:0)
不幸的是,这似乎是API的限制。我的解决方案是使用以下方式提取所有用户的视频:
$videoFeed = $yt->getuserUploads('default');
这会吸引公众和私人视频。然后我将我的开发标记与每个条目进行比较,并在PHP中匹配视频。