Gre*_*edy 13 java google-api youtube-api closed-captions
我需要在我的java webapp中阅读来自第三方公开提供的YouTube视频的隐藏字幕文本,即我没有上传内容.
虽然YouTube数据API的v2 限制了对上传视频的用户的字幕信息的访问权限,但除了这一段数据之外,访问除了这一项之外的所有内容似乎是一个非常奇怪的限制.我希望在API的v3中删除此限制,但现在对隐藏式字幕的唯一引用是一种布尔方法,用于确认CC是否附加到视频.即便是所有者现在也无法下载它.(谷歌至少会把它添加回来吗?)
Boolean hasCaptions = video.getContentDetails().getCaption()
Run Code Online (Sandbox Code Playgroud)
使用YouTube Data API v3(使用Google Java API客户端),我能够查找,验证和检索YouTube资源(视频,播放列表,频道等).我可以做几乎所有API提供的东西我只是无法读取实际的标题文本.
我还尝试了未发布的定时文本链接解决方法,但这是不一致的,不适用于较新的内容,并且在其覆盖的内容中有许多编码错误.
我想知道是否有人知道从java(不是.js插件)中检索YouTube视频中的字幕文本的方法?
[最糟糕的情况是,有没有人知道一个图书馆,它允许我像浏览器一样以编程方式与YouTube互动,并允许我点击屏幕上的成绩单按钮,我可以从那里提取成绩单?Prowser不允许点击交互,JxBrowser是$ 1,300 +]
下面的代码工作正常,让我得到所有的视频数据,所以这是我需要帮助的最后一步.我把它包括在这里,以防它对任何需要这么做的人都有帮助.
// 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 = ???????
Run Code Online (Sandbox Code Playgroud)
感谢任何帮助.
谢谢,
格雷格.
Ibr*_*aya 14
我们希望尽快为Data API v3提供Captions支持.你不需要刮网站.
更新:现已实施.文档可以在这里找到.
| 归档时间: |
|
| 查看次数: |
4789 次 |
| 最近记录: |