当前位置: 首页 > 面试题库 >

YouTube API v3中的隐藏式字幕

班安平
2023-03-14
问题内容

我需要从Java网络应用程序中的 第3方(公开可用的YouTube视频) 中读取隐藏字幕文本,即我尚未上传内容。

尽管YouTube数据API的v2


限制了对字幕信息的访问权限,但上传视频的人
却似乎很奇怪,它只能访问除这一项数据以外的所有内容。我希望可以在API的第3版中看到此限制,但现在唯一引用隐藏式字幕的方法是布尔方法,以确认CC是否已附加到视频。甚至所有者也似乎无法立即下载它。(Google至少会添加回去吗?)

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

使用YouTube数据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 = ???????

非常感谢您的帮助。

谢谢,

格雷格


问题答案:

我们希望很快对Data API v3提供字幕支持。您无需抓取该网站

更新:现在已实施。可以在这里找到文档。



 类似资料:
  • 问题内容: 在以下情况下: 学生“隐藏人的ID字段。 如果我们想在内存中表示以下内容: 约翰对象会为storint Person.ID及其自己拥有两个单独的存储位置吗? 问题答案: 正确。示例中的每个类都有其自己的int IDid字段。 您可以通过以下方式从子类中读取或分配值: 或在外部(当它们是公开的时):

  • 排除不显示字段 Model.findAll({ attributes: { exclude: ['baz'] } });

  • 我在努力使用我的应用程序。它应该像下面这样工作。

  • 我们想隐藏“有优惠券吗?添加一张…”在WooCommerce结账时,如果已添加优惠券或客户在结账页面上添加优惠券。 目前,我们在下面有此代码,当客户在购物车页面输入优惠券,然后导航到结帐页面时,此代码有效。在这种情况下,“拥有优惠券?添加一张…”消息不可见。如果购物车页面上未添加优惠券,则消息可见。 这很好用!但是,当客户在结账页面上添加优惠券时,它不起作用。 1.)我们收到消息“优惠券已添加”,

  • 问题:如果距离为空/null,我试图隐藏一个值。 我尝试了以下操作,但该值仍在显示: 和 什么是实现我所期待的正确方法。 以下是我在coldfusion中定义距离的方式: 当我做以下建议时: ng-show="e.distance===未定义" 当我执行其他建议时,例如ng hide=“e.distance”, 以下是提供商包含的内容:

  • 问题内容: 我的html中有这样的标签: 使用CSS我想用我的实际徽标替换文本。我已经通过调整标签大小并通过css将背景图像放到徽标中了,没有问题。但是,我不知道如何摆脱文本。我以前看过基本上是通过将文本从屏幕上推送来完成的。问题是我不记得在哪里看到它。 问题答案: 这是一种方法: 这是隐藏文本的另一种方式,同时避免了浏览器将创建的9999像素大框: