在 AssemblyAI 最近的一篇教程中,开发者可以学习如何使用 Node.js 转录 YouTube 视频并生成 SRT 字幕。本指南不仅涵盖了转录过程,还演示了如何创建字幕并利用 LeMUR 框架使用大语言模型 (LLM) 进行视频提示。
步骤 1:设置开发环境
首先,开发者需要安装 Node.js 18 或更高版本。在设置项目目录并初始化一个新的 Node.js 项目后,package.json 文件应配置为使用 ES Module 语法。
接下来,安装必要的 NPM 模块:
assemblyai
:安装 AssemblyAI JavaScript SDK,以便与 AssemblyAI API 交互。youtube-dl-exec
:yt-dlp CLI 工具的包装器,用于检索和下载 YouTube 视频信息。tsx
:允许在无需额外设置的情况下执行 TypeScript 代码。
此外,还需要安装 Python 3.7 或更高版本以支持 youtube-dl-exec
。还需要一个 AssemblyAI API 密钥,可以将其配置为机器上的环境变量。
步骤 2:检索 YouTube 视频的音频
要转录视频,需要公共音轨 URL。YouTube 将音频和视频分开存储,youtube-dl-exec
模块可以检索此信息。以下脚本从 YouTube 视频中检索音频 URL:
import { youtubeDl } from "youtube-dl-exec";
const youtubeVideoUrl = "https://www.youtube.com/watch?v=wtolixa9XTg";
console.log("从 YouTube 视频检索音频 URL");
const videoInfo = await youtubeDl(youtubeVideoUrl, {
dumpSingleJson: true,
preferFreeFormats: true,
addHeader: ["referer:youtube.com", "user-agent:googlebot"],
});
const audioUrl = videoInfo.formats.reverse().find(
(format) => format.resolution === "audio only" && format.ext === "m4a",
)?.url;
if (!audioUrl) {
throw new Error("未找到仅音频格式");
}
console.log("音频 URL 成功检索");
console.log("音频 URL:", audioUrl);
有了音频 URL,就可以使用 AssemblyAI 转录音频。
步骤 3:保存转录文本和字幕
一旦转录完成,就可以将转录文本保存到文件中。以下代码可保存转录文本并生成 SRT 字幕:
import { writeFile } from "fs/promises"
console.log("将转录文本保存到文件中");
await writeFile("./transcript.txt", transcript.text!);
console.log("转录文本保存到文件 transcript.txt 中");
console.log("检索转录文本为 SRT 字幕");
const subtitles = await aaiClient.transcripts.subtitles(transcript.id, "srt");
await writeFile("./subtitles.srt", subtitles);
console.log("字幕保存到文件 subtitles.srt 中");
要生成 WebVTT 字幕,只需将 "srt"
替换为 "vtt"
并保存文件扩展名为 .vtt。
步骤 4:运行脚本
要执行脚本,使用以下命令:
npx tsx index.ts
转录文本和字幕将被保存到磁盘上,处理时间取决于 YouTube 视频的长度。
奖励:使用 LeMUR 提示 YouTube 视频
AssemblyAI 的 LeMUR 框架允许开发者构建生成性 AI 功能。通过为 LLM 编写提示,开发者可以基于转录文本生成响应。例如,使用项目符号总结视频的提示可以实现如下:
console.log("提示 LeMUR 总结视频");
const prompt = "使用项目符号总结这个视频";
const lemurResponse = await aaiClient.lemur.task({
transcript_ids: [transcript.id],
prompt,
final_model: "default"
});
console.log(prompt + ": " + lemurResponse.response);
有关更多自定义选项,请参阅 LeMUR 文档中列出的各种支持模型。
下一步
在本教程中,开发者学习了如何从 YouTube 视频中检索音频、转录音频、生成字幕以及使用 LeMUR 总结视频。欲了解更多功能,请查看 AssemblyAI 的 音频智能模型和 LeMUR。
Image source: Shutterstock