视频号素材解析
概述
本技能提供一套完整可部署的「视频号素材解析」方案:
- 解析能力:粘贴视频号分享短链 → 官方接口返回真实标题/作者/封面/互动数(无 Cookie 可用);配置元宝 Cookie 后可拿视频直链下载
- 交付物:零依赖 Node.js 服务端(
assets/sph-server,11 个 API + 管理接口)+ 原生微信小程序(assets/sph-miniprogram,3 tab + 3 二级页) - 知识库:2026-10 实测接口情报、部署指南、合规上架要点
能力边界(必须先向用户说明):不配元宝 Cookie 时只能拿封面与公开信息,拿不到视频直链——这是腾讯 Web API 的硬限制,不是实现缺陷。
工作流
场景 1:用户给了链接,想验证解析效果
- 运行
scripts/probe-feed.js <链接>(零依赖:node scripts/probe-feed.js <链接>) - 按输出判读:201 + 互动数据 = 链路健康;只有一个 finder.video URL = 那是封面;412 = UA/Content-Length 问题(见 references/api-intel.md 坑清单)
- 向用户如实报告能拿到什么、拿不到什么,不要把降级结果包装成完整能力
场景 2:用户要搭建解析服务
- 复制
assets/sph-server/到目标目录(剔除 data/ 运行时数据后再复制) PORT=8092 node server.js启动;MOCK=1为演示模式(假数据,必须向用户言明)- 跑
node tools/selftest.js回归(解析→解锁→下载全链路) - 生产部署按 references/deploy.md(宝塔 + pm2 + nginx 静态直出中转)
- 元宝 Cookie 写入
data/secrets.json的yuanbao数组(多组轮换热加载);失效自动降级为"仅封面与信息",不白屏
场景 3:用户要做小程序
- 先还原工程(因技能市场文件类型白名单,包内小程序源码做了兼容改名):
node scripts/restore-miniprogram.js [输出目录]
—— 自动把.css→.wxss、.html→.wxml改回原名,并重新生成 tabBar 图标 PNG - 微信开发者工具导入还原后的目录,
app.js的apiBase指向服务端 - 上架合规按 references/compliance.md 过检查清单:命名禁用词、企业主体、首启协议弹窗、广告位配置
- 提醒三份独立白名单(request/downloadFile/uploadFile)与正式 AppID
⚠️ 本包文件改名说明(技能市场兼容)
| 包内 | 还原后 | 说明 |
|---|---|---|
assets/sph-miniprogram/**/*.css |
*.wxss |
微信小程序样式表 |
assets/sph-miniprogram/**/*.html |
*.wxml |
微信小程序页面结构(assets/sph-server/public/index.html 不受影响,无需改) |
images/tab-*.png |
已剔除 | 用 tools/gen-icons.js 零依赖重新生成(restore 脚本会自动执行) |
场景 4:解析失败排查
- 先跑
scripts/probe-feed.js看接口原始返回 - 对照 references/deploy.md 的「故障排查速查表」定位
- 常见根因:字段名(Fmt 后缀)、封面/视频 CDN 同路径、Cookie 熔断误伤、chunked 编码 412
关键事实速记
- 接口状态码是 201 不是 200;互动数字段是
likeCountFmt格式化串("1.2万") - 封面与视频共用 CDN 路径,靠
picformat参数区分;把封面存成 .mp4 是高频事故 - 下载必须经自己域名中转(腾讯 CDN 进不了小程序白名单),鉴权靠 15 分钟 URL 票据
- Cookie 熔断只认 401/403/20000;网络超时与 429 绝不判死
- 解析出的直链数小时失效,即时解析即时下载,不做缓存