Я написал программу на Java для загрузки скрытых титров видео с Youtube:
YouTube.Captions.List request = youtube.captions()
.list("snippet", videoId).setKey(apiKey);
CaptionListResponse response = request.execute();
List<Caption> captions = response.getItems();
for (Caption caption : captions) {
CaptionSnippet snippet = caption.getSnippet();
System.out.println("ID: " + caption.getId());
System.out.println("Name: " + snippet.getName());
System.out.println("Language: " + snippet.getLanguage());
String captionID = caption.getId();
OutputStream output = new FileOutputStream("captions"+captionID);
YouTube.Captions.Download req = youtube.captions()
.download(captionID).setKey(apiKey);
req.getMediaHttpDownloader();
req.executeMediaAndDownloadTo(output);
}
Но req.executeMediaAndDownloadTo (output); call вызывает следующее исключение:
There was an IO error: null : 401 Unauthorized
Login Required
Я что-то не так делаю? Почему следует авторизоваться для загрузки скрытых титров? Особенно учитывая тот факт, что скрытые титры свободно доступны через сам Youtube:
- "..." below the youtube player
- Open transcript