如何使用AI生成解析B站视频的逻辑
这里为你准备了一份专门针对 AI 代码编辑器(如 Cursor、Windsurf 或 VS Code + Cline/Copilot)的 Prompt(提示词)。
你可以直接将下面框中的内容复制到 AI 编辑器的 Chat 窗口中,它会为你一键生成符合 Next.js 最新规范(App Router)的后端解析逻辑。
📋 复制以下内容发送给 AI 代码编辑器:
我想在 Next.js (App Router) 项目中实现一个 B 站(Bilibili)视频链接解析的后端 API 路由。
为了简化前端处理,我需要直接获取到【自带声音的完整 MP4 直链】(也就是利用 B 站老版本的 durl 方案,而不是音视频分离的 DASH 方案)。
请帮我创建或修改以下文件:`app/api/parse/route.ts`
具体需求如下:
1. **请求类型**:POST 接口,接收前端传入的 `url`(例如:https://www.bilibili.com/video/BV1xxx/)。
2. **URL 解析**:用正则表达式从传入的 URL 中提取出 `bvid`(BV号)。如果提取不到,返回 400 错误。
3. **步骤一(获取 cid)**:
- 请求 B 站官方接口:`https://api.bilibili.com/x/web-interface/view?bvid=${bvid}`
- 从中提取视频的 `cid`、`title`(标题)和 `pic`(封面图)。
4. **步骤二(获取 MP4 直链)**:
- 请求 B 站播放地址接口:`https://api.bilibili.com/x/player/wbi/playurl`
- **核心参数配置**:必须带上 `bvid`, `cid`, `qn=80`, `fnval=0`, `fnver=0`, `fourk=1`, `platform=html5`。其中 `fnval=0` 和 `platform=html5` 是为了强制 B 站返回自带声音的 MP4 格式。
- **请求头(Headers)**:加入常见的浏览器 User-Agent(建议模拟移动端或标准 Chrome),并补充 `Referer: https://www.bilibili.com` 以防止被 B 站拦截。
5. **返回值**:
- 解析成功后,从 `data.durl[0].url` 中提取 MP4 直链。
- 向前端返回 JSON 数据,格式如下:
{
"title": "视频标题",
"cover": "封面图URL",
"mp4Url": "有声音的MP4下载直链"
}
6. **错误处理**:加入完善的 try-catch 块,对 B 站接口返回的 code 不为 0 的情况进行捕获,并返回友好的错误提示。
请直接生成完整的、带有 TypeScript 类型定义的 Next.js Route Handler 代码。
💡 为什么这么写 Prompt 效果最好?
- 明确了框架规范:指定了
Next.js (App Router)和文件路径app/api/parse/route.ts,AI 不会写出过时的 Pages Router (res.status) 代码。 - 点出了核心技术关键点:明确要求
fnval=0和platform=html5,这是让 AI 准确吐出“带声音 MP4”的核心,防止 AI 误使用了默认的 DASH 方案。 - 规范了输入输出:限定了前后端交互的数据结构,方便你后续直接和前端 UI 对接。
