Закрытые подписи в YouTube API v3



Мне нужно прочитать закрытый текст подписи из 3-го стороннего общедоступного видео YouTube в моем java webapp, т. е. я не загрузил контент.



В то время как v2 API данных YouTube ограниченный доступ к информации подписи к человеку, который загрузил видео это кажется очень странным ограничением, чтобы дать доступ ко всему, кроме этой части данных. Я ожидал увидеть это ограничение удаленным в v3 API , но теперь только ссылка на закрытый заголовок-это логический метод для подтверждения того, что CC прикреплен к видео. Даже владелец, кажется, не может загрузить его сейчас. (Собирается ли Google добавить его обратно, по крайней мере?)



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


Используя YouTube Data API v3 (используя Google Java API client), я смог найти, аутентифицировать и получить ресурсы YouTube (видео, плейлисты, каналы и т. д.). Я могу сделать почти все, что API сделал доступным, я просто не могу прочитать текст подписи.



У меня есть также пробовал неопубликованный временный текстовый обходной путь, но это непоследовательно, не работает для более нового контента и имеет много ошибок кодирования в содержимом, которое он покрывает.



Мне интересно, знает ли кто-нибудь о методе извлечения текста заголовка из видео YouTube с java (не a .JS plugin)?



[в худшем случае, кто-нибудь знает библиотеку, которая позволяет мне программно взаимодействовать с 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<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 = ???????


Любая помощь принимается с благодарностью.

Спасибо,



Грег.

556   2  

2 ответов:

Мы надеемся вскоре получить поддержку субтитров на Data API v3. Вам не нужно будет очищать сайт.

Обновление: теперь это реализовано. документы можно найти здесь.

Они, наконец, ввели функцию:

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

Comments

    Ничего не найдено.