跳转至

整理视频为笔记(video-note)

整理视频为笔记的维护记录。下面「翻译之外的改动」记的是 2026-10-17 拆分之前那版,拆分本身见最后一节。

  • 上游:Rimagination/bili-note1,作者署名 Bili Note contributors,MIT,许可证原文不随附。上游是给 Codex 写的,命令都是 Windows PowerShell,和作者的另一个 skill DyNote(抖音笔记)共用 Qwen3-ASR 环境
  • commit:钉在 08fe812(2026-09-22),2026-10-16 读时仍是最新
  • 跳过:
    • agents/openai.yaml:Codex 的界面元数据(显示名、一句话简介、默认 prompt),不是 Claude Code 插件里的 agent
    • README.md、.gitignore、assets/bili-note-logo.png(README 用的 logo)、tests/ 下 9 个测试
    • 网页 AI 字幕整条路线:fetch_browser_ai_subtitles.py、edge_cdp.py。它让已登录 B站的浏览器页面自己请求 /x/player/wbi/v2 拿 AI 字幕地址,要带图形界面的浏览器开远程调试端口,Chrome 版还依赖外部的 web-access skill;Agent 跑在无图形界面的服务器上用不上,没字幕直接转写
    • 本地 ASR:setup_qwen_asr_env.py、run_qwen_asr.py 和 extract_bilibili.py 里 Qwen3-ASR、faster-whisper、openai-whisper、FunASR 四个后端;yt-dlp 和 B站 playurl 接口两条下载路线
  • 翻译之外的改动:
    • SKILL.md 改名 index.md;name 改成「视频笔记」,description 由英文改写成什么时候用、做什么;开头补一段这个 skill 解决什么问题,页尾加维护记录的链接
    • 正文原本就是中文,按新路线重排:PowerShell 命令改成 bash,$env:USERPROFILE\.codex\skills\bili-note 改成入口页一句话指向整包 video-note.tar.gz,调用不到 2 次就远程逐个取;命令一律写相对 skill 根的 scripts/xxx.py;「B站字幕注意事项」「B站图文注意事项」两节合成「各平台的坑」的 B站一节;Chrome / Edge 两条网页字幕的命令和 --browser-target 等参数删掉
    • 加一条:预检显示没有公开字幕时直接转写,下载狗额度和转写费用事后报,不停下来问(2026-10-17 改;原先是和关键帧一起问用户)
    • 下载视频改走 解析分享链接:extract_bilibili.py 按 ?p=N 解析分P,核对直链里的 cid,解析失败重试 3 次;视频缓存在工作目录的 video/,转写和 extract_video_keyframes.py 共用,同一个分P只扣一次额度。关键帧脚本删掉 --video-source、--cookies-from-browser
    • 抽关键帧的 ffmpeg 把 -ss 挪到 -i 前面:上游从播放接口拿 480p,从片头解码到每个时间点还不算慢;下载狗给的是 1080p,50 分钟的课抽 12 帧要 21 分钟,改完 1.6 秒,画面逐像素一样
    • 转写改走 转录音频:ffmpeg 抽 16 kHz 单声道 32 kbps mp3,默认 10 分钟一块,请求带 verbose_json、词级时间戳和 diarization;单人讲话一块只回一个 segment,所以按词级时间戳和标点重新切成字幕行。参数换成 --transcribe、--asr-language、--asr-chunk-seconds,原来的 --download-audio 和 --asr-*、--qwen-*、--whisper-* 都删掉
    • 转写结果另写 transcript_manifest.json,archive_materials.py 优先读它:上游只记在 run_summary.json 里,总入口重跑提取那一步会把它覆盖成空,转写就归档不进去
    • run_video_note.py 加转写阶段:--transcribe 只在没有公开字幕时转,排在轻量预检之前,预检的字幕密度把转写字数算进去;--subtitle-mode 去掉 browser
    • check_environment.py 重写能力判断:只查 Python、脚本齐不齐、B站公开接口、ffmpeg 和 ffprobe、MY_API_KEY 有没有设置(不打印值)
    • references/bilibili-api-notes.md 由英文译成中文;「音频」「本地转写」两节换成「音视频」「转写」,写新路线的接口要点;「字幕」一节补上 ai-zh 地址为空不等于没有字幕
    • 2026-10-17 从 B站专用改成通用的视频笔记:目录 bili-note 改 video-note,run_bili_note.py、archive_bili_materials.py、score_bili_note.py 改成 run_video_note.py、archive_materials.py、score_note.py。取材分两条,B站链接照旧,其余分享链接走新增的 extract_share_link.py:下载狗给标题、简介和点赞、评论、收藏数,解析完马上下载(抖音直链一小时左右过期),ffprobe 读时长,按一个分P写成和 B站相同的工作目录,后面的流程不分平台
    • 分享链接解析、下载、抽音频、转写从 extract_bilibili.py 挪进 agent_io.py,两条取材共用;解析成功一次扣一次额度,所以只在失败时重试
    • 关键帧脚本不再调 B站接口,改读工作目录的 metadata.json;--force 只重抽帧、不重下视频,分享链接重下要再扣额度;竖屏视频抽 540×960 的帧,联系图格子也竖排,横屏照旧 960×540
    • 预算:没有播放量时互动倍率取 1.0,点赞等计数照记;不到 3 分钟的视频记为 clip,下限从 1200 字降到 400 字、按关键帧数加字,入口页配一套短视频的精简结构;既没字幕也没转写的视频画面依赖至少记 medium
    • 归档修两处:B站公开字幕清单是列表,路径直接写在每一项上、不在 files 里,原来一条都归档不进去,最后在 manifest.get 上报错退出;公开字幕清单和无字幕的视频都不带时长,预算按 0 分钟算,改从 metadata.json 的分P时长补
    • b23.tv 短链不带 BV 号,原来报找不到 BVID 退出,现在交给通用取材

2026-10-17 拆成三段

用户觉得 agent-io 对各家链接怎么取讲不清,全被包在视频笔记里,定下「视频笔记拆成下载、分析、输出几个环节,agent-io 提供底层接口和稍微封装的中级脚本,视频笔记改名整理视频为笔记」。

  • 下载并进 agent-io 的解析分享链接:extract_bilibili.py、extract_bilibili_opus.py、extract_share_link.py 和 agent_io.py 里解析、下载的部分并进那边的脚本;references/bilibili-api-notes.md 改写成那边的 B 站页,旧地址加了跳转
  • 分析并进 agent-io 的阅读视频:extract_video_keyframes.py 和 agent_io.py 里转写的部分变成 video_read.py,见它的维护记录
  • 输出段留在这里:1347 行的 archive_materials.py 换成约 300 行的 prepare_note.py。原来大半代码在适配旧工作目录的各种清单;新文件夹各平台一个形状,读起来简单得多
    • 照搬:篇幅预算公式、互动质量倍率(0.85–1.4,没有播放量取 1.0)、画面依赖判断、字幕证据 550 字或 14 行一块、P01@时:分:秒-时:分:秒 和 KF-P01-03、C<rpid> 的编号、学习型 13 节结构和短视频精简结构
    • 改了:图文证据 O<id>-E001 改成 A-001,新加图片 IMG-01;不足 1500 字的短图文另有一条公式,原来按长文章算,456 字的小红书帖子要写 900 字
    • 删了:update_note_budget_section.py(把预算写回笔记正文,已发布的笔记没用上);check_environment.py(agent-io 的脚本缺 ffmpeg 或 key 会直接报);run_video_note.py 的「先预检、问要不要开关键帧、再重跑」(用户定下花钱不打断,分析段默认就抽帧);把材料复制进另一个归档目录(下载段的文件夹本身就是归档)
  • 证据脚注:原来正文写 [1][2]、单列一节「证据脚注」链到归档目录;和写作规范的 [^名] 脚注、已发布笔记的写法打架,统一成 [^名],脚注写证据 ID 加原视频时间点,全文在材料文件夹的 note/evidence.md
  • 端到端验收后改的:新 agent 只拿「把这个视频整理成学习笔记,按本wiki的方法来」和那条抖音教程,三段走通,笔记打分 ok,证据 14 条全用上。它报的问题对应改了:打分不再把 frontmatter、HTML 标签、图片属性算进字数,用了写作规范推荐的并排图就超预算的问题没了;证据写成区间也算区间里的每一条;口播里有「指令」「提示词」「描述词」「这段」这类指向画面的词,画面依赖至少判「中」,原来这条 46 秒教程判成「低」;画面上的提示词、命令允许照原文抄;写明笔记放哪、visual_review.md 怎么用、抖音没有按秒跳转的链接;转写的坑补上平台名听错(「即梦」转成「小梦」)。它看补抽的帧发现已发布那篇笔记的两处事实写错(标题不是等花开完才浮现、16 积分不是一张图的价),核对关键帧后改了

  1. Rimagination/bili-note @ 08fe812,2026-10-16 读。 ↩