2013-08-12 11 views
12

Ich muss Untertitel Text von 3rd Party, öffentlich verfügbaren YouTube Videos in meinem Java Webapp lesen, d. H. Ich habe den Inhalt nicht hochgeladen.Geschlossene Bildunterschriften in YouTube API v3

Während v2 of the YouTube Data APIeingeschränkten Zugriff auf die Bildunterschrift Informationen für die Person, die das Video hochgeladen hat, scheint es wie eine sehr seltsame Einschränkung Zugriff auf alles außer diesem einen Stück Daten zu geben. Ich erwartete, diese Einschränkung in v3 of the API aber jetzt ist der einzige Hinweis auf Titel entfernt, um zu sehen ist eine boolean Methode, um zu bestätigen, ob CC an das Video angebracht ist. Selbst der Besitzer kann es anscheinend nicht herunterladen. (Geht Google es mindestens hinzufügen zurück?)

Boolean hasCaptions = video.getContentDetails().getCaption() 

Mit YouTube Data API v3 (mit den Google Java API client) ich in der Lage gewesen zu finden, zu authentifizieren und YouTube-Ressourcen (Videos, Playlists, Kanäle abrufen usw.). Ich kann so ziemlich alles machen, was die API zur Verfügung gestellt hat. Ich kann einfach nicht den eigentlichen Text lesen.

Ich habe auch versucht, die unpublished timed text link workaround, aber das ist inkonsistent, funktioniert nicht für neuere Inhalte und hat viele Codierungsfehler in den Inhalt deckt es.

Ich frage mich, wenn jemand eine Methode kennt Titeltext aus einem YouTube-Video von Java (kein Js Plugin) für die Beschaffung?

[Im schlimmsten Fall, weiß jemand, eine Bibliothek, die ich mit YouTube programmatisch aufeinander wirkt wie ein Browser ermöglicht und ermöglicht es mir, die Mitschrift Taste auf dem Bildschirm zu klicken, und ich kann das Transkript von dort ziehen? Prowser erlaubt keine Klick-Interaktion und JxBrowser ist $ 1,300 +]

Der folgende Code funktioniert gut und bringt mich zu allen Videodaten, also ist es der letzte Schritt, ich brauche Hilfe. Ich habe es hier für den Fall aufgenommen, dass es für jeden hilfreich ist, der so weit kommen muss.

// Build a YouTube resource 
YouTube youtube = new YouTube.Builder(new NetHttpTransport(), 
          new JacksonFactory(), 
          new HttpRequestInitializer()) 
        .setApplicationName("caption-retrieval") 
        .build(); 

// Create the video list request, it should only return one 
// result 
YouTube.Videos.List listVideosRequest = youtube.videos().list("id, snippet, contentDetails"); 
listVideosRequest.setKey(API_KEY)); 
listVideosRequest.setId(VIDEO_ID); 

// Request is executed and video list response is returned 
VideoListResponse listVideosResponse = listVideosRequest.execute(); 

List<Video> videos = listVideosResponse.getItems(); 

// Since a unique video id is given, it will only return 
// one video. Would check if video has been removed in 
// production code. 
Video video = videos.get(0); 

// Read the remaining meta information 
title = video.getSnippet().getTitle().trim(); 
author = video.getSnippet().getChannelTitle(); 

captionText = ??????? 

Jede Hilfe wird dankbar angenommen.

Danke,

Greg.

Antwort

14

Wir hoffen, Bildunterschriften haben Unterstützung auf Data API bald v3. Sie müssen die Website nicht abkratzen.

Update: Dies wurde nun umgesetzt. The docs can be found here.

+2

Dank @IbrahimUlukaya. Das sind gute Nachrichten. Hast du einen Sinn, wie schnell das sein könnte? Wochen, Monate usw.? –

+1

Irgendwelche Updates zu diesem Thema? –

+1

Haben Sie ein Update für uns? –

0

Sie führten schließlich das Merkmal:

https://developers.google.com/youtube/v3/docs/captions 
Verwandte Themen