2016-08-05 3 views
0

Ich versuche, die derzeit aktiven Live-Streams für die Liste der Kanäle zu bekommen. Ich weiß, dass es search/list Methode gibt, aber es kostet 100 Einheiten von API-Kontingent und nur für einen Kanal pro Anfrage. Es ist unmöglich, die Verfügbarkeit von Streams für eine große Anzahl von Kanälen mit einer Gesamtquote von 1 Mio. API pro Tag zu aktualisieren.Youtube api v3 bekommen aktive Streams für die Kanalliste

Also, gibt es eine andere Möglichkeit, kann ich aktive Streams für den Kanal oder eine Liste von Kanälen, Vermeidung "schwerer" Suchmethode?

Antwort

0

Sie können direkt Live Streaming API - LiveStreams:list verwenden, LiveStreams: list gibt eine Liste von Videostreams zurück, die den API-Anforderungsparametern entsprechen.

HTTP-Anfrage:

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

Beachten Sie, dass in jeder Anforderung Zugriff auf provate Benutzerdaten benötigt die Genehmigung. Sie müssen OAuth 2.0 implementieren.

Fügen Sie den Parameter onBehalfOfContentOwner hinzu. Dieser Parameter ist für YouTube-Inhaltspartner gedacht, die viele verschiedene YouTube-Kanäle besitzen und verwalten. Es ermöglicht Inhaltseigentümern, sich einmal zu authentifizieren und Zugriff auf alle ihre Video- und Kanaldaten zu erhalten, ohne für jeden einzelnen Kanal Authentifizierungsinformationen angeben zu müssen.

HTTP-Antwort:

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

Hier ist ein Beispielcode-Snippet wie Live-Stream Ressourcen anfordern:

// 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

Ich denke, das api Verfahren für Fälle ist, wenn Strom durch Konto gehört, der sendet anfordern. In meinem Fall versuche ich nur herauszufinden, wenn einige meiner "Abonnements" neues Live-Video streamen. – SergeyK

Verwandte Themen