我正在使用Zend GData库从我的应用程序中管理YouTube视频。该应用程序允许用户根据需要选择将上传的视频添加到他们预先存在的YouTube播放列表中。一个问题是,如果视频随后从我们的应用程序中删除,它似乎会在添加到的播放列表中留下一个"孤立"的已删除视频对象。
我一直在想办法让我们的应用程序在从YouTube删除视频之前将其从任何播放列表中删除,但我很难确定如何确定播放列表中是否包含特定的YouTube视频。
我编写了一个函数,该函数循环遍历与登录用户相关的每个播放列表中的每个条目,并尝试将播放列表中视频的视频Id与作为参数传递的视频Id进行比较。然而,我似乎无法获得播放列表中任何视频的视频Id值。
功能如下:
function remove_video_from_playlists($yt,$hash){
$playlistListFeed = $yt->getPlaylistListFeed("default");
foreach ($playlistListFeed as $playlistListEntry) {
$playlistVideoFeed = $yt->getPlaylistVideoFeed($playlistListEntry->getPlaylistVideoFeedUrl());
foreach ($playlistVideoFeed as $playlistVideoEntry) {
//check to see if each video in the playlist matches the video we are trying to delete
if($playlistVideoEntry->getMediaGroup()->videoId == $hash){
$playlistVideoEntry->delete();
}
}
}
}
如有任何帮助,我们将不胜感激。如何获取播放列表中每个视频条目的基本视频ID?
我发现了这个问题。
我需要在$yt对象上将GData库版本设置为版本2
使用此:$yt->setMajorProtocolVersion(2);
这使得所有奇怪的行为都消失了,$playlistVideoEntry->getMediaGroup()->getVideoId()的使用也如预期一样。
你试过做吗
$playlistVideoEntry->getMediaGroup()->getVideoId();
因为从API来看,似乎有这样一个函数应该返回您所需要的。