4

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

4

2 回答 2

1

我发现了这个问题。

我需要在 $yt 对象上将 GData 库版本设置为版本 2

使用这个:$yt->setMajorProtocolVersion(2);

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

于 2012-07-19T02:55:10.373 回答
0

你试过做

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

因为从 API 中看,似乎有这样一个函数应该返回你需要的东西。

于 2012-07-18T08:19:10.197 回答