Закрытые титры в YouTube API v3
Мне нужно прочитать текст с субтитрамиСторонние общедоступные видео на YouTube в моем веб-приложении на Java, т.е. я НЕ загрузил содержимое.
в то время какv2 API данных YouTube ограниченный доступ к информации подписи для человека, который загрузил видео кажется очень странным ограничением предоставлять доступ ко всему, кроме этой части данных. Я ожидал увидеть это ограничение вv3 API но теперь единственная ссылка на скрытую подпись - это логический метод для подтверждения того, что CC прикреплен к видео. Даже владелец можетКажется, сейчас его не скачивают. (Google собирается добавить это назад по крайней мере?)
Boolean hasCaptions = video.getContentDetails().getCaption()
Используя API данных YouTube v3 (используяКлиент Google Java API) Мне удалось найти, аутентифицировать и получить ресурсы YouTube (видео, плейлисты, каналы и т. Д.). Я могу сделать почти все, что API сделал доступным, я просто могуне читать фактический текст заголовка.
мы также попробовалинеопубликованные временные ссылки но это противоречиво, не так лине работает для нового контента и имеет много ошибок кодирования в контенте, который он покрывает.
Интересно, знает ли кто-нибудь о способе получения текста заголовка из видео YouTube из Java (не плагин .js)?
[В худшем случае, кто-нибудь знает библиотеку, которая позволяет мне программно взаимодействовать с YouTube, как браузер ипозволяет мне нажать кнопку расшифровки на экране, и я могу вытащить стенограмму оттуда?Prowser Безразлично»т разрешить взаимодействие с кликом иJxBrowser составляет $ 1300 +]
Приведенный ниже код отлично работает и возвращает меня ко всем видеоданным, так чтоЭто последний шаг, на котором мне нужна помощь. Я'мы включили его сюда на случай, еслиЭто полезно для тех, кому нужно далеко зайти.
// 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 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 = ???????
Любая помощь с благодарностью получена.
Спасибо,
Грег.