2016-08-05 88 views
0

我试图获取当前活动的频道列表的直播流。我知道,有search/list方法,但它需要100个单位的api配额,并且只适用于每个请求一个通道。对于每天总配额​​为1M api单位的大量频道,频繁更新流可用性是不可能的。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

相关问题