4

Zend GData ライブラリを使用して、アプリケーション内から YouTube ビデオを管理しています。このアプリケーションでは、ユーザーが必要に応じて、アップロードしたビデオを既存の YouTube プレイリストの 1 つに追加することを選択できます。1 つの問題は、ビデオが後でアプリケーション内から削除された場合、それが追加されたプレイリスト内に「孤立した」削除されたビデオ オブジェクトが残っているように見えることです。

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 に答える