使用Zend在YouTube上创建私人播放列表

时间:2011-01-07 19:50:24

标签: php zend-framework youtube-api zend-gdata

我拼命想在youtube上创建私人播放列表。创建公共播放列表没有问题,文档非常好。但是,我无法将instructions“翻译”为代码。

  

您可以使用API​​更新a   播放列表的标题,说明和或   公共/私人身份。要更新   播放列表,修改PlaylistListEntry   该播放列表的对象,然后调用   对象的保存方法。

我的代码:

$httpClient = isset($_SESSION['sessionToken'])? Zend_Gdata_AuthSub::getHttpClient($_SESSION['sessionToken']) : null;
$this->youtube = new Zend_Gdata_YouTube($httpClient, "CompanyName-AppName-0.1", null, $this->apikey);

// ...

$yt = $this->youtube;
$newPlaylist = $yt->newPlaylistListEntry();
$newPlaylist->description = $yt->newDescription()->setText('My Description');
$newPlaylist->title = $yt->newTitle()->setText('My Title');

$postLocation = 'http://gdata.youtube.com/feeds/api/users/default/playlists';
try {
    $yt->insertEntry($newPlaylist, $postLocation);
} catch (Zend_Gdata_App_Exception $e) {
    echo $e->getMessage();
}

最后一部分或多或少是来自文档的示例代码。它工作得很好,但播放列表是公开的。

据我所知,$newPlaylistPlaylistListEntry的一个实例,因此应该有一种方法可以将其设为私有。我已经检查了对象源代码(及其超过9000个父对象)以及get_class_methods的输出,但是我找不到任何使其成为私有的方法。也只是尝试将私有/公共成员设置为true / false没有帮助,并导致错误消息(说没有这样的成员)。

我对YouTube API和Zend不是很有经验,如果有人能帮助我,我真的很感激。

根据我的阅读内容,可以通过在请求中添加<yt:private />标记来制作播放列表。这听起来很简单,有没有办法手动将其添加到请求中?

1 个答案:

答案 0 :(得分:0)

我不是关于播放列表,但是在上传时刻,一个特殊视频可能会被标记为“私人”:

$myVideoEntry = new Zend_Gdata_YouTube_VideoEntry();
$myVideoEntry->setMediaSource($filesource);
$myVideoEntry->setVideoTitle($video_title);
// ... etc ...
$myVideoEntry->setVideoPrivate();

我知道您正在搜索播放列表,但也许它可以帮助您...例如通过分析此方法的代码等。