0

私は自分のチャンネルに 100 本の動画をアップロードしましたが、すべての動画 ID を取得する必要があります。

$channelsResponse = $youTubeService->channels->listChannels('id,contentDetails', array(
    'mine' => 'true'));
$searchResponse = $youTubeService->playlistItems->listPlaylistItems('snippet', array(
        'maxResults' => 50,
        'fields' => 'items(snippet(publishedAt,channelId,title,description,thumbnails(default),resourceId)),pageInfo,nextPageToken'));
echo json_encode($searchResponse['items']['contentDetails']['videoId']);

上記のコードは、プレイリストから動画を取得します。ルートから動画を取得するにはどうすればよいですか。

4

2 に答える 2

1

ルートのようなものはなく、すべてが YouTube のプレイリストにあります。あなたが求めているのは、アップロードされたビデオを取得することだと思います。あなたのチャンネルには「アップロード」という再生リストもあります。あなたのチャンネルがアップロードした動画が追加された場所です。

listChannels 呼び出しで、そのプレイリストのプレイリスト ID を取得できます。応答でcontentDetails.relatedPlaylists.uploadsを探します。

次に、2 番目の呼び出し (listPlaylistItems) で、その ID を使用してプレイリストID を設定します。

これがPHPのサンプルです。

于 2013-11-09T17:07:24.163 に答える
0

作業ソリューション/例:

function getSslPage($url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_REFERER, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}

//params
$order = "date";
$part = "snippet";
$channel_id = "UCzocxfp9lrNal14glrFSrng";
$max_results = 50;
$api_key = "YOUR_API_KEY";

$feedurl = 'https://www.googleapis.com/youtube/v3/search?order='.$order.'&part='.$part.'&channelId='.$channel_id.'&maxResults='.$max_results.'&key='.$api_key;

$feed = getSslPage($feedurl);
$feed_arr = json_decode($feed, true);

//print_r($feed_arr);

$items = $feed_arr['items'];

foreach($items as $item) {
   if( (isset($item['id']['videoId'])) OR (!empty($item['id']['videoId'])) ) {
        echo '<iframe width="420" height="315"
src="http://www.youtube.com/embed/'.$item['id']['videoId'].'?autoplay=0">
</iframe>';
   }
}
于 2016-01-29T14:43:59.867 に答える