blurred image
如何使用AI生成解析B站视频的逻辑 thumbnail image

如何使用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 效果最好?

  1. 明确了框架规范:指定了 Next.js (App Router) 和文件路径 app/api/parse/route.ts,AI 不会写出过时的 Pages Router (res.status) 代码。
  2. 点出了核心技术关键点:明确要求 fnval=0platform=html5,这是让 AI 准确吐出“带声音 MP4”的核心,防止 AI 误使用了默认的 DASH 方案。
  3. 规范了输入输出:限定了前后端交互的数据结构,方便你后续直接和前端 UI 对接。