2016-08-05 7 views
0

チャンネルのリストのために現在アクティブなライブストリームを取得しようとしています。私は、search/listメソッドがあることを知っていますが、それは100単位のAPIクォータを要し、要求ごとに1つのチャネルに対してのみ適用可能です。多数のチャンネルで頻繁にストリームの利用可能性を更新することは不可能です.1分間に1MAPIユニットのクォータが割り当てられます。YouTubeのAPI v3でチャンネルリストのアクティブなストリームを取得

他の方法はありますか?「重い」検索方法を避けて、チャンネルやチャンネルリストのアクティブなストリームを取得できますか?

答えて

0

Live Streaming API - LiveStreams:listを直接使用すると、LiveStreams:listはAPIリクエストパラメータに一致するビデオストリームのリストを返します。

HTTPリクエスト:

GET https://www.googleapis.com/youtube/v3/liveStreams 

注リクエストごとにprovateユーザーデータへのアクセスを許可する必要があること。 OAuth 2.0を実装する必要があります。

このパラメータは、onBehalfOfContentOwnerパラメータを含みます。このパラメータは、さまざまなYouTubeチャンネルを所有し管理するYouTubeコンテンツパートナーを対象としています。コンテンツ所有者は、個々のチャンネルごとに認証資格情報を入力しなくても、一度認証してすべてのビデオとチャンネルのデータにアクセスできます。

HTTPレスポンス:

{ 
    "kind": "youtube#liveStreamListResponse", 
    "etag": etag, 
    "nextPageToken": string, 
    "prevPageToken": string, 
    "pageInfo": { 
    "totalResults": integer, 
    "resultsPerPage": integer 
    }, 
    "items": [ 
    liveStream Resource 
    ] 
} 

ここでは、サンプルコードだライブストリームのリソースを要求する方法をスニペット:

// This object is used to make YouTube Data API requests. 
      youtube = new YouTube.Builder(Auth.HTTP_TRANSPORT, Auth.JSON_FACTORY, credential) 
        .setApplicationName("youtube-cmdline-liststreams-sample") 
        .build(); 
     // Create a request to list liveStream resources. 
     YouTube.LiveStreams.List livestreamRequest = youtube.liveStreams().list("id,snippet"); 

     // Modify results to only return the user's streams. 
     livestreamRequest.setMine(true); 

     // Execute the API request and return the list of streams. 
     LiveStreamListResponse returnedListResponse = livestreamRequest.execute(); 
     List<LiveStream> returnedList = returnedListResponse.getItems(); 

     // Print information from the API response. 
     System.out.println("\n================== Returned Streams ==================\n"); 
     for (LiveStream stream : returnedList) { 
      System.out.println(" - Id: " + stream.getId()); 
      System.out.println(" - Title: " + stream.getSnippet().getTitle()); 
      System.out.println(" - Description: " + stream.getSnippet().getDescription()); 
      System.out.println(" - Published At: " + stream.getSnippet().getPublishedAt()); 
      System.out.println("\n-------------------------------------------------------------\n"); 
     } 
+1

私は、ストリームが送信し、そのアカウントによって所有されている場合、このAPIメソッドは、例のためだと思います要求。私の場合は、自分の「購読」の一部が新しいライブビデオをストリーミングしているときを検出しようとしています。 – SergeyK

関連する問題