SupadataClient 获取视频字幕
java-openai 提供 SupadataClient,用于获取 YouTube 视频字幕。本节从 字幕问答系统 中分离客户端调用说明;数据库缓存、会话和问答流程仍在 ai_agent 章节。
配置与调用
在应用配置中设置 SUPADATA_API_KEY,在客户端调用前加载配置。
import nexus.io.model.http.response.ResponseVo;
import nexus.io.supadata.SubTitleResponse;
import nexus.io.supadata.SupadataClient;
import nexus.io.tio.utils.environment.EnvUtils;
import nexus.io.tio.utils.json.JsonUtils;
EnvUtils.load();
String videoId = "kIo2BAubO6k";
ResponseVo response = SupadataClient.get(videoId);
if (!response.isOk()) {
throw new IllegalStateException("字幕请求失败:" + response.getBodyString());
}
SubTitleResponse subtitle = JsonUtils.parse(response.getBodyString(), SubTitleResponse.class);
System.out.println(JsonUtils.toJson(subtitle));
get(videoId) 接收视频 ID,返回包含服务端响应的 ResponseVo。需要直接获取对象时,也可调用 SupadataClient.getSubTitle(videoId);HTTP 失败时该方法返回 null,网络异常仍可能抛出。业务侧需要区分请求失败、没有字幕和字幕内容为空。
当前客户端请求 /v1/youtube/transcript?videoId=...,并通过 x-api-key 请求头传递配置中的密钥。它负责获取字幕,不负责保存字幕、生成回答或维护对话历史。
