2016-06-17 9 views
0

Ich verwende den youtube api-samples Java-Code, um Video nach ID aufzulisten. Ich habe die Datei Topics.java verwendet, aber es gibt mehr als 1 Ergebnis, das das richtige enthält. Außerdem wird die Video-ID nicht angewendet (wenn ich sie ausgedruckt habe, gibt sie die Video-ID als 0 an), und so gab ich auch die Video-ID für den Suchbegriff an. Unten ist der Screenshot der Ein- und Ausgänge.YouTube-Daten API-Liste Video von ID

enter image description here

Was ich zu erreichen versuche, ist genau ein Ergebnis für die gegebene Video-ID bekommen wie, wie es funktioniert auf der YouTube Data API code snippet.

Leite ich den falschen Code oder gebe ich falsche Eingaben? Bitte beraten.

Update: Datei VideoLocalizations.java wirft Null-Zeiger-Ausnahme für "Sprache" enter image description here

Antwort

1

Die Topics.java Datei ist Demo-ing die Topics API, was ich denke, ist mehr als Sie tun möchten.

Um einfach die Details für eine Video-ID zu erhalten, überprüfen Sie Videos.list. Sie können den API-Explorer unten auf der Seite verwenden, um eine Basisanforderung zu erstellen, z.

GET https://www.googleapis.com/youtube/v3/videos? 
    part=id%2Csnippet&id=5vY8EWokf40&key={YOUR_API_KEY} 

... die zurückgibt:

{ 
"kind": "youtube#videoListResponse", 
"etag": "\"5g01s4-wS2b4VpScndqCYc5Y-8k/v-nx5E3jmblZ7cA3yNCjAAKmywQ\"", 
"pageInfo": { 
    "totalResults": 1, 
    "resultsPerPage": 1 
}, 
"items": [ 
    { 

    "kind": "youtube#video", 
    "etag": "\"5g01s4-wS2b4VpScndqCYc5Y-8k/rsLwePwmFcmdkMVDPrQB20sLp1Q\"", 
    "id": "5vY8EWokf40", 
    "snippet": { 
    "publishedAt": "2015-06-27T03:02:46.000Z", 
    "channelId": "UCz0Am9KlCDydaIifIL16hfw", 
    "title": "Hajar Film - Sirin Hamsho | فيلم هاجر - سيرين حمشو", 
... 

dies in Java zu tun, Blick auf die Beispiele Abschnitt auf der gleichen Seite. Im Wesentlichen müssen Sie ein com.google.api.services.youtube.YouTube Objekt erstellen, videos().list() aufrufen und das VideoListResponse behandeln. kann

// This object is used to make YouTube Data API requests. 
youtube = new YouTube.Builder(Auth.HTTP_TRANSPORT, Auth.JSON_FACTORY, credential) 
    .setApplicationName("youtube-cmdline-localizations-sample").build(); 

... 

// Call the YouTube Data API's videos.list method to retrieve videos. 
VideoListResponse videoListResponse = youtube.videos(). 
    list("snippet,localizations").setId(videoId).execute(); 

// Since the API request specified a unique video ID, the API 
// response should return exactly one video. If the response does 
// not contain a video, then the specified video ID was not found. 
List<Video> videoList = videoListResponse.getItems(); 
if (videoList.isEmpty()) { 
    System.out.println("Can't find a video with ID: " + videoId); 
    return; 
} 
Video video = videoList.get(0); 

Sie am JavaDoc reference for the YouTube Data API zur Verwendung der Java-Bibliothek, um weitere Informationen suchen:

2 Beispiel Blick auf die JAVA #, können Sie dies als siehe unter Beweis gestellt.

+0

Beim Importieren von com.google.api.services.youtube.model.VideoLocalization ist ein Fehler aufgetreten. Bitte beachten Sie die aktualisierte Frage mit dem Screenshot der Kommandozeile. –

+0

Das Problem wurde behoben, indem die 176-Version hinzugefügt wurde, die sich zuvor auf 107 bezog. Trotzdem wird in Zeile 193 eine Nullzeiger-Ausnahme ausgelöst. Die Frage wird mit einem Screenshot aktualisiert. –

+0

Die einfache GET-Anfrage funktioniert. Vielen Dank! –