YouTube API(PHP) - 在我的帐户下检索私人视频

时间:2010-09-09 14:17:50

标签: video private youtube-api

我正在使用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);

私有视频将返回空结果。但是,如果我将视频公开,那么我可以从上述三种方法中的任何一种中获取 - 所有这些方法都是在经过身份验证的连接下执行的。

如何根据代码或开发人员代码提取私有视频?我错过了什么吗?非常感谢!!

1 个答案:

答案 0 :(得分:0)

不幸的是,这似乎是API的限制。我的解决方案是使用以下方式提取所有用户的视频:

$videoFeed = $yt->getuserUploads('default');

这会吸引公众和私人视频。然后我将我的开发标记与每个条目进行比较,并在PHP中匹配视频。