2012-10-17 19 views

答えて

31

最初の手順では、そのユーザーのチャンネルIDを取得しています。私たちはChannelsサービスへのリクエストでこれを行うことができます。ここにJSの例があります。

var request = gapi.client.youtube.channels.list({ 
    // mine: true indicates that we want to retrieve the channel for the authenticated user. 
    mine: true, 
    part: 'contentDetails' 
}); 
request.execute(function(response) { 
    playlistId = response.result.channels[0].contentDetails.uploads; 
}); 

我々はプレイリストIDを取得したら、我々はPlaylistItemsサービスからアップロードされた動画の一覧を照会するためにそれを使用することができます。

var request = gapi.client.youtube.playlistItems.list({ 
    playlistId: playlistId, 
    part: 'snippet', 
}); 
request.execute(function(response) { 
    // Go through response.result.playlistItems to view list of uploaded videos. 
}); 
+0

私にとっては、 '.list'メソッドは返されません。私はメソッドの呼び出しの前後に2つの単純なログを持っています。最初は実行され、2つ目は実行されません。何か案は? –

40

クライアントを使用している場合、Gregの答えは正しいです。基本的な要求で同じことを行うには、次の2つの要求を行います。

part=contentDetails 
mine=true 
key={YOUR_API_KEY} 

とヘッダ:

  1. はパラメータでhttps://www.googleapis.com/youtube/v3/channels

    をGET

    ​​3210

    このことから次のようなJSONレスポンスが得られます:

    これから、「アップロード」チャンネルIDを解析します。

  2. はパラメータでhttps://www.googleapis.com/youtube/v3/playlistItems

    をGET:

    part=snippet 
    maxResults=50 
    playlistId={YOUR_UPLOAD_PLAYLIST_ID} 
    key={YOUR_API_KEY} 
    

    やヘッダ:

    { 
    "kind": "youtube#playlistItemListResponse", 
    "etag": "\"some-string\"", 
    "pageInfo": { 
        "totalResults": 1, 
        "resultsPerPage": 50 
    }, 
    "items": [ 
        { 
    
        "id": "some-id", 
        "kind": "youtube#playlistItem", 
        "etag": "\"another-string\"", 
        "snippet": { 
        "publishedAt": "some-date", 
        "channelId": "the-channel-id", 
        "title": "video-title", 
        "thumbnails": { 
        "default": { 
         "url": "thumbnail-address" 
        }, 
        "medium": { 
         "url": "thumbnail-address" 
        }, 
        "high": { 
         "url": "thumbnail-address" 
        } 
        }, 
        "playlistId": "upload-playlist-id", 
        "position": 0, 
        "resourceId": { 
        "kind": "youtube#video", 
        "videoId": "the-videos-id" 
        } 
        } 
        } 
    ] 
    } 
    
  3. :このことから

    Authorization: Bearer {YOUR_TOKEN} 
    

    を使用すると、以下のようなJSONレスポンスを受信します

この方法では、任意の言語を使用して情報を取得することができます。最初の50件以上の結果が必要な場合は、2番目のリクエストを使用して複数のクエリを実行し、ページリクエストを渡す必要があります。これについての詳細は、http://developers.google.com/youtube/v3/docs/playlistItems/list

+0

あなたは何をしているのかの例を作成できますか? –

+0

@PratikCJoshi https://developers.google.com/youtube/v3/docs/channels/list @こちらのデモをご覧ください。私は渡している:https://www.diigo.com/item/image/5enzo/a9ey "アップロード"を産む: "UUhS0SPpEqGMGRim7mebedPg"。 @ https://developers.google.com/youtube/v3/docs/playlistItems/listここで私はこれをやっている:https://www.diigo.com/item/image/5enzo/up3b ...色んなことコンテンツの長さが含まれていないことです。 「duration」のように表現された/ videosのcontentDetailsでそれを見つけることができます: "PT7M18S";私はそれがこの狂気のビデオごとのクエリなしで含まれていたらいいと思う。 – kristopolous

+0

一貫した実装では、https://github.com/kristopolous/ytmix/blob/master/import/parse.jsをv2からv3にアップグレードする予定です(私はそうしているからです)。これをクリックするとv3になります。 – kristopolous

関連する問題