2

我正在拼命地尝试在 youtube 上创建一个私人播放列表。创建公共播放列表没问题,文档非常好。但是我无法将指令“翻译”为代码。

您可以使用 API 更新播放列表的标题、描述和/或公共/私人状态。要更新播放列表,请修改该播放列表的 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();
}

最后一部分或多或少是文档中的示例代码。效果很好,但播放列表是公开的。

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

我对 YouTube API 和 Zend 不是很有经验,如果有人能在这里帮助我,我将不胜感激。

根据我所读到的内容,可以通过向<yt:private />请求添加标签来将播放列表设为私有。这听起来很简单,有没有办法手动将它添加到请求中?

4

1 回答 1

0

我对播放列表不满意,但在上传时,一个特定视频可能会被标记为“私人”:

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

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

于 2011-02-12T16:00:43.577 回答