用途:为 B 站视频抓取真实、可核验的数据,便于引用而非猜测。互动数据是分析“为什么表现好”的基础,手写或估算的数字会让知识库迅速失效,该技能让取数变得廉价。
主要能力:scripts/bili-fetch.sh <ref> 一次 view/detail API 调用返回单个 JSON 对象,含 bvid、aid、fetched_at、url、title、up(name/mid/fans)、pubdate、tname、tags、videos、duration_s、stat(view/like/coin/favorite/share/reply/danmaku)与 pages[](每分 P 的 cid、page、part、duration)。脚本接受 BVID、av 号、b23.tv 短链或完整 URL 并归一化;多分 P 视频返回每个分 P 的 cid,用于抓取该分 P 的弹幕或字幕。scripts/bili-danmaku.sh <ref> [P] 获取某分 P 的弹幕全文,复用 bili-fetch.sh 解析 cid,两者须同处 scripts/ 目录。scripts/bili-subs.sh <ref> [browser] 获取字幕/转写,需登录。scripts/bili-selftest.sh 测试匿名元数据、弹幕与部分 API 形态。scripts/bili-access.py 诊断身份、权限、字幕形态与分 P 媒体,仅用显式 cookie 文件。
使用方式:先运行 scripts/bili-fetch.sh BV1xxxxxxxxx;弹幕用 scripts/bili-danmaku.sh BV1xxxxxxxxx(多分 P 加序号);字幕用 scripts/bili-subs.sh BV1xxxxxxxxx chrome(或 firefox/safari/edge),因读取用户登录会话,运行前须征得用户同意。
限制与注意:实时指标须引用 fetched_at,同一视频数分钟后重取会漂移,这是数据实时的证明;无法获取的数字写“未获取/未核实”,绝不估算。脚本已处理网络问题:剥离本地代理、发送浏览器 User-Agent 与 Referer、失败退避重试。Python urllib 在无代理环境变量时会回退 macOS 系统代理,导致批量 503,需显式 ProxyHandler({})。中文文本或文件名用 grep/sort 时 CJK 排序会误报缺失,应用 find -name 或 grep -F 核验。统计与弹幕免登录;字幕必须登录,公开播放器 API 对匿名请求返回空字幕列表,yt-dlp 提示“Subtitles are only available when logged in”,无免登录路径。ai-zh 为 B 站 AI 生成字幕,应标注为 AI-ASR,不得声称人工逐字校对;无字幕轨则无可抓取内容。下载前先消费 download_allowed,ASR 前先消费 asr_allowed;登录身份不等于目标付费视频权限,遇付费预览、拒绝或未知权限应停止。接口漂移后运行 scripts/bili-selftest.sh 健康检查,失败时参考 references/bilibili_api.md 更新端点、字段与 WBI 签名。