67

Youtube api v2 を使用すると、動画を簡単に取得できます。次のようなクエリを送信するだけです。

http://gdata.youtube.com/feeds/mobile/videos?max-results=5&alt=rss&orderby=published&author=OneDirectionVEVO

Youtube api v2 には、クエリを作成するためのインタラクティブなデモ ページもあります: http://gdata.youtube.com/demo/index.html

Youtube api v3で、対応方法がわかりません。API v3で道を教えてください。

ありがとうございました!

4

13 に答える 13

133

channels#listメソッドは、「アップロード」プレイリストのプレイリスト ID など、チャンネルに関するいくつかの情報を含む JSON を返します。

https://www.googleapis.com/youtube/v3/channels?part=contentDetails&forUsername=OneDirectionVEVO&key={YOUR_API_KEY}

プレイリスト ID を使用すると、 playlistItems#listメソッドで動画を取得できます。

https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&playlistId=UUbW18JZRgko_mOGm5er8Yzg&key={YOUR_API_KEY}

ドキュメントページの最後でそれらをテストできます。

于 2014-03-24T17:30:48.853 に答える
25

これでうまくいくはずです。このコードはタイトルを取得して出力するだけですが、必要な詳細を取得できます

// Get Uploads Playlist
$.get(
   "https://www.googleapis.com/youtube/v3/channels",{
   part : 'contentDetails', 
   forUsername : 'USER_CHANNEL_NAME',
   key: 'YOUR_API_KEY'},
   function(data) {
      $.each( data.items, function( i, item ) {
          pid = item.contentDetails.relatedPlaylists.uploads;
          getVids(pid);
      });
  }
);

//Get Videos
function getVids(pid){
    $.get(
        "https://www.googleapis.com/youtube/v3/playlistItems",{
        part : 'snippet', 
        maxResults : 20,
        playlistId : pid,
        key: 'YOUR_API_KEY'},
        function(data) {
            var results;
            $.each( data.items, function( i, item ) {
                results = '<li>'+ item.snippet.title +'</li>';
                $('#results').append(results);
            });
        }
    );
}


<!--In your HTML -->
<ul id="results"></ul>
于 2014-09-26T17:42:48.777 に答える
4

API の V3 では多くのことが変更されました。これは、特定のチャネルにアップロードされた動画のリストを取得するために必要な v3 API 呼び出しについて、API Explorer を使用したライブ デモで説明する動画です。

YouTube Developers Live: v3 でチャンネルのアップロードを取得する- https://www.youtube.com/watch?v=RjUlmco7v2M

于 2014-12-11T02:00:04.327 に答える
3

ここで誰かを助ける場合に備えて、これは私が発見したものであり、これまでのところうまく機能しているようです. このリクエストを行う前に、OAuth 2.0 を介してメンバーを認証しています。これにより、認証されたメンバーのビデオが提供されます。いつものように、あなたの個人的なマイレージは異なる場合があります:D

curl https://www.googleapis.com/youtube/v3/search -G \
-d part=snippet \
-d forMine=true \
-d type=video \
-d order=date \
-d access_token={AUTHENTICATED_ACCESS_TOKEN}
于 2015-12-15T19:08:03.760 に答える
0

300 以上の動画を含むプレイリストの動画を取得する場合は、playlistitems.list を使用しないでください。「試してみる」セクションの Google リンク「 https://developers.google.com/youtube/v3/docs/playlistItems/list 」でライブで試すことができます。未定義を返します。

私のプロジェクトでも使用しました。undefined のみを返します。

于 2015-03-11T15:51:57.853 に答える
0

別の方法として、現在 oauth 認証されているユーザーのプレイリストを次の方法で取得することもできます: property mine=true

ここで、認証後に oauth access_token が取得されます: https://developers.google.com/youtube/v3/guides/authentication

https://www.googleapis.com/youtube/v3/playlists?part=id&mine=true&access_token=ya29.0gC7xyzxyzxyz
于 2014-12-04T22:14:49.370 に答える
0

PHP: pageToken 属性を使用して、プレイリストのすべてのページに移動しました。

//step 1: get playlist id

 $response = file_get_contents("https://www.googleapis.com/youtube/v3/channels?key={$api_key}&forUsername={$channelName}&part=contentDetails");
 $searchResponse = json_decode($response,true);
 $data = $searchResponse['items'];
 $pid =  $data[0]['contentDetails']['relatedPlaylists']['uploads'];

//step 2: get all videos in playlist

 $nextPageToken = '';
 while(!is_null($nextPageToken)) {
     $request = "https://www.googleapis.com/youtube/v3/playlistItems?key={$api_key}&playlistId={$pid}&part=snippet&maxResults=50&pageToken=$nextPageToken";

    $response = file_get_contents($request);
    $videos = json_decode($response,true);

    //get info each video here...

   //go next page
    $nextPageToken = $videos['nextPageToken'];
}
于 2015-07-26T06:58:30.530 に答える
0

function tplawesome(e,t){res=e;for(var n=0;n<t.length;n++){res=res.replace(/\{\{(.*?)\}\}/g,function(e,r){return t[n][r]})}return res}



$(function() {


    $(".form-control").click(function(e) {


       e.preventDefault();


       // prepare the request


       var request = gapi.client.youtube.search.list({


            part: "snippet",


            type: "video",


            q: encodeURIComponent($("#search").val()).replace(/%20/g, "+"),


            maxResults: 20,


            order: "viewCount",


            publishedAfter: "2017-01-01T00:00:00Z"


       }); 


       // execute the request


       request.execute(function(response) {


          var results = response.result;


          $("#results").html("");


          $.each(results.items, function(index, item) {


            $.get("tpl/item.html", function(data) {


                $("#results").append(tplawesome(data, [{"title":item.snippet.title, "videoid":item.id.videoId ,"descrip":item.snippet.description ,"date":item.snippet.publishedAt ,"channel":item.snippet.channelTitle ,"kind":item.id.kind ,"lan":item.id.etag}]));


            });


            


          });


          resetVideoHeight();


       });


    });


    


    $(window).on("resize", resetVideoHeight);


});



function resetVideoHeight() {


    $(".video").css("height", $("#results").width() * 9/16);


}



function init() {


    gapi.client.setApiKey("YOUR API KEY .... USE YOUR KEY");


    gapi.client.load("youtube", "v3", function() {


        // yt api is ready


    });


}

ここで完全なコードを確認してください https://thecodingshow.blogspot.com/2018/12/youtube-search-api-website.html

于 2018-12-08T05:52:39.930 に答える