0

Zend_Gdata_YouTube(); を使用します。チャンネルからプレイリストを取得しますが、それらの一部には削除されたビデオまたは非公開のビデオが含まれています。フィードを渡すとき

 new Zend_Paginator(new Lib_Paginator_Adapter_YoutubePlaylist($playlistData[$playlistParam]['feedUrl']));

また、削除された非公開の動画もカウントされるため、要素が 0 のページが表示されます。クエリを作成する方法、またはプライバシー/存在によって結果をフィルター処理する方法は?

$paginator = new Zend_Paginator(new Lib_Paginator_Adapter_YoutubePlaylist($playlistData[$playlistParam]['feedUrl']));
$videos = $yt->getPlaylistVideoFeed($playlistData[$playlistParam]['feedUrl']);

ありがとう。

アップデート :

$username = $this->config->youtube->username;
        $yt = new Zend_Gdata_YouTube();
        $yt->setMajorProtocolVersion(2);

    $playlistData = array();
    $playlistData['uploads'] = array(
        'title' => 'Uploads'
    );
    $playlists = $yt->getPlaylistListFeed($username);
    foreach ($playlists as $playlist) {
        $playlistId = $this->getPlaylistId($playlist->id);
        $playlistData[$playlistId] = array(
            'title' => $playlist->title->text,
            'feedUrl' => $playlist->getPlaylistVideoFeedUrl()
        );
    }

    $playlistParam = $this->getRequest()->getParam('playlist');
    if (!$playlistParam) {
        $playlistParam = 'uploads';
    }

    if ($playlistParam != 'uploads') {
        $paginator = new Zend_Paginator(new Lib_Paginator_Adapter_YoutubePlaylist($playlistData[$playlistParam]['feedUrl']));
        $videos = $yt->getPlaylistVideoFeed($playlistData[$playlistParam]['feedUrl']);
    } else {
        $paginator = new Zend_Paginator(new Lib_Paginator_Adapter_YoutubeUser($username));
        $videos = $yt->getUserUploads($username);
    }

    $data = array();
    foreach ($videos as $video) {
        $thumbnails = $video->getVideoThumbnails();
        $data[] = array(
            'id' => $this->getVideoId($video->getVideoWatchPageUrl()),
            'thumb' => $thumbnails[0]['url'],
            'title' => $video->getVideoTitle(),
            'published' => $video->getPublished()->getText(),
            'description' => $video->getVideoDescription()
        );
        break;
    }
4

1 に答える 1

0

yt:stateの存在に基づいてクエリを実行しようとしています。状態タグが存在する場合、ファイルは何らかの理由で制限されています。また、 ZF gDataで役立つ情報を見つけたり、 のコードを調べたりすることもできますZend_Gdata_YouTube_Extension_State。コードをどのように適応させるかについてこれ以上提案するには、十分なコードが含まれていません。

幸運を! [編集] getPlaylistFeed() の代わりに、またはその一部として、videoQuery を追加することをお勧めします。

$query = new Zend_Gdata_YouTube_VideoQuery();
$query->setParam('state', 0);//you may need to query for all of your videos this way.

申し訳ありませんが、これ以上お手伝いすることはできませんが、この API はごちゃごちゃになっているようです。

于 2012-08-17T10:32:51.480 に答える