12

YouTube データ フィードからすべての動画 ID を取得するにはどうすればよいですか?

この (API) URL 経由で YouTube フィードを受け取ります: http://gdata.youtube.com/feeds/base/users/#userid#/uploads?alt=rss&v=2&orderby=published&client=ytapi-youtube-profile

チャンネルからリンク、説明、サムネイルを抽出する方法は既に知っていますが、チャンネルからすべてのビデオ ID を抽出したい (例: http://www.youtube.com/watch?v= WWooNnPnHTs )

4

7 に答える 7

4

これが私のやり方です。遅いですが、うまくいきます。:)

function getVideos($channel){
    if($channel == ""){
        return false;   
    }
    /* Get number of videos */
    $books = simplexml_load_file('http://gdata.youtube.com/feeds/base/users/'.$channel.'/uploads?max-results=1&start-index=1');
    $numb_videos = $books->children( 'openSearch', true )->totalResults; 
    settype($numb_videos, "integer");

    $ids = array();
    $i = 1;
    for($i = 1; $i <= $numb_videos; $i++){
        $books = simplexml_load_file('http://gdata.youtube.com/feeds/base/users/'.$channel.'/uploads?max-results=1&start-index='.$i);
        $ApiLink  = $books->entry->id;
        settype($ApiLink, "string");
        $ApiLink = str_replace("http://gdata.youtube.com/feeds/base/videos/", "", $ApiLink);
        array_push($ids, $ApiLink);
    }
    return $ids;    
}
于 2013-07-15T15:03:57.737 に答える
4

これを使って:

GET https://www.googleapis.com/youtube/v3/search?part=id&channelId=UC9MAhZQQd9egwWCxrwSIsJQ&maxResults=10&order=date&key= {YOUR_API_KEY}

上記の URL の結果は次のようになります。

200 OK

- Show headers -

{
"kind": "youtube#searchListResponse",
"etag": "\"qQvmwbutd8GSt4eS4lhnzoWBZs0/WiiEAt3fgPkFw_831Iveo6mV-IU\"",
"nextPageToken": "CAQQAA",
"pageInfo": {
"totalResults": 1046,
"resultsPerPage": 4
},
"items": [
{
"kind": "youtube#searchResult",
"etag": "\"qQvmwbutd8GSt4eS4lhnzoWBZs0/OtU1Ja-W-gNf83iiXWzodKk3Ce0\"",
"id": {
"kind": "youtube#video",
"videoId": "jKLMD-LXIgk"
}
},
{
"kind": "youtube#searchResult",
"etag": "\"qQvmwbutd8GSt4eS4lhnzoWBZs0/EUhMCxemh2UGmf2ufGS0IYdcMUs\"",
"id": {
"kind": "youtube#video",
"videoId": "glCQQeH_ddw"
}
},
{
"kind": "youtube#searchResult",
"etag": "\"qQvmwbutd8GSt4eS4lhnzoWBZs0/2IMOnedhjKXxnFZy-PNg5o80kkY\"",
"id": {
"kind": "youtube#video",
"videoId": "yB78MIcmDxs"
}
},
{
"kind": "youtube#searchResult",
"etag": "\"qQvmwbutd8GSt4eS4lhnzoWBZs0/oEb7q9_GwGdXcHsvuRDuNmh_rGQ\"",
"id": {
"kind": "youtube#video",
"videoId": "NnkDja1cXlo"
}
}
]
}

詳細については、こちらをご覧ください

于 2014-01-15T12:41:55.013 に答える
0

私はそれが古い質問であることを知っていますが、ここで求められていることを行うものを書きました:

https://gist.github.com/gport/5693404

23行目を編集するだけです:

return $videoids[array_rand($videoids)];

に:

return $videoids;

これは、ユーザーのビデオ ID を含む配列を返します:)

編集:申し訳ありませんが(@testing、@Code_Ed_Student)、要点がもう存在しない理由はわかりませんが、アーカイブ、以下のコードで見つけました。実装は古い例とは少し異なりますが、これは同じことを実現します (配列を他のロジックで置き換えることができます)。

    $feedresult = simplexml_load_file('http://gdata.youtube.com/feeds/api/users/wondervol/uploads');

    if($feedresult) {

    $videoids = array();

    foreach ($feedresult->entry as $video) {

            $media = $video->children('media', true);
            $url = (string)$media->group->player->attributes()->url;
            $index = strrpos($url, "&");
            $url = substr($url, 0, $index);
            $index = strrpos($url, "watch");
            $url = substr($url, $index + 8, strlen($url) - ($index + 8)); 

            $videoids[] = $url;

    }
于 2013-06-02T11:54:01.093 に答える
0

こんにちは、ビデオのリンクにある v パラメータから値を取得する必要があると思います。正規表現または部分文字列を使用できます...

于 2011-06-13T15:03:54.357 に答える
-4

注意: での配列から文字列への変換

C:\wamp\www\youtube-vimeo-api-playlist-to-database-importer-master\youtube-vimeo-api-playlist-to-database-importer.php

28行目

于 2014-04-21T13:33:00.717 に答える