YouTube Zend库获取播放列表条目的VideoId

时间:2012-07-17 06:59:33

标签: php zend-framework youtube gdata playlists

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

            }
        }   
    }
}

任何帮助将不胜感激。如何获取播放列表中每个视频条目的基础videoId?

2 个答案:

答案 0 :(得分:1)

我发现了这个问题。

我需要在$ yt对象

上将GData库版本设置为版本2

用过这个: $ YT-> setMajorProtocolVersion(2);

这使得所有奇怪的行为都消失了,并且$ playlistVideoEntry-> getMediaGroup() - > getVideoId()的使用按预期工作。

答案 1 :(得分:0)

你试过吗

$playlistVideoEntry->getMediaGroup()->getVideoId();

因为通过查看API,似乎有这样一个功能应该返回你需要的。