故障排查
常见错误
playwright-core is not installed
Error: playwright-core is not installed. Install it with: npm install playwright-core
If you only need the yt-dlp + FFmpeg path, playwright-core is not required.原因: 阶段 1(yt-dlp)失败或被跳过,阶段 2 需要 playwright-core 但未安装。
解决方法: 安装 playwright-core,或设置 VIDEO_VISION_MODE=ytdlp 以保持在 yt-dlp 路径上,失败时会获得更明确的错误信息。
yt-dlp + FFmpeg failed to extract frames
Error: yt-dlp + FFmpeg failed to extract frames and VIDEO_VISION_MODE is set to "ytdlp" (no browser fallback).原因: yt-dlp 无法获取视频信息,或 FFmpeg 无法提取帧,且浏览器回退已禁用。
可能的解决方法:
- 验证 yt-dlp 已安装且为最新版本:
yt-dlp --version - 验证 FFmpeg 已安装:
ffmpeg -version - 检查 URL 是否被支持:
yt-dlp --list-formats <url> - 尝试使用代理:
--proxy=http://... - 尝试使用 Cookie 访问受限内容:
--cookies=~/cookies.json
FFmpeg failed (exit N) / HTTP 403
原因: YouTube 视频 URL 与 IP 绑定。FFmpeg 可能使用了与 yt-dlp 不同的 IP 连接。
解决方法: 自 v1.1 起已自动处理 — 工具会通过 yt-dlp 下载视频到本地文件,然后再提取帧。如果仍然遇到此问题,请升级 yt-dlp:
bash
pip install --upgrade yt-dlpVIDEO_VISION_API_KEY is not set
Error: VIDEO_VISION_API_KEY is not set.解决方法:
bash
export VIDEO_VISION_API_KEY="sk-..."Incorrect API key provided
原因: API 密钥与端点不匹配。例如,在默认 OpenAI 端点使用了非 OpenAI 的密钥。
解决方法: 为你的服务商设置正确的 VIDEO_VISION_API_URL:
bash
export VIDEO_VISION_API_URL="https://your-provider/v1/chat/completions"
export VIDEO_VISION_API_KEY="your-key"yt-dlp 版本警告 / SABR 流媒体
WARNING: [youtube] Some web client https formats have been skipped as they are missing a url.
YouTube is forcing SABR streaming for this client.原因: yt-dlp 版本过旧。YouTube 经常更改其内部实现。
解决方法:
bash
pip install --upgrade yt-dlp在 Android/PRoot 上,apt 版本可能落后。通过 pip 安装并确保 pip 二进制文件优先:
bash
pip install yt-dlp
# 验证版本
yt-dlp --version无 JavaScript 运行时(yt-dlp)
WARNING: No supported JavaScript runtime could be found.原因: 较新版本的 yt-dlp 需要 JS 运行时(deno 或 Node.js)来处理 YouTube 提取。
解决方法: Node.js 通常已经安装。如果使用 deno:
bash
curl -fsSL https://deno.land/install.sh | sh调试技巧
独立测试 yt-dlp
bash
# 检查 yt-dlp 是否能获取视频信息
yt-dlp -j --no-download "https://youtube.com/watch?v=xxx"
# 尝试下载
yt-dlp -f 'best[height<=480][ext=mp4]/best' -o /tmp/test.mp4 "https://youtube.com/watch?v=xxx"独立测试 FFmpeg
bash
ffmpeg -i /tmp/test.mp4 -vf 'fps=1/10' -vframes 5 -q:v 2 /tmp/frame_%04d.jpg -y测试模块加载
bash
node -e "require('./src/index.js')"无输出 = 成功。任何报错意味着依赖问题。