折腾了两晚 Excel 和逐帧截图后,我用这个开源工具把一部电影拉片做完了

导读拉片笔记(lapian-notes)是一个 270 star 的开源工具:本地抽帧、自动配字幕、把电影打包成 ZIP 发给任意 AI(ChatGPT/Claude/Gemini 都行),AI 返回的 JSON 一键导回,自动生成剧情泳道时间轴、结构树和观众情绪曲线。全程本地运行,影片不上传,零 API Key。这篇讲清楚它的机制、使用流程和适合谁。

上周三我给自己布置了个作业:把《寄生虫》的三段落结构拆到"场与镜头"级,写进 Notion 当创作模板。真开始做才发现,光是"逐秒截图 + 手抄字幕 + 对齐时间码"就耗掉了两个晚上,Excel 拉到第 40 分钟我就想放弃。第三天早上翻到 GitHub trending 华语板块,发现一个叫 lapian-notes 的项目——3 天前刚发布、270 star,作者是 Discord 影视社区 BKinGfilm 的负责人。当天下午我把它跑起来试了两部电影。这篇讲清楚三件事:它到底解决了什么、5 分钟怎么跑通、什么样的人应该用

拉片笔记四步工作流

拉片这件事到底难在哪

先说清楚"拉片"是什么,因为它和"剪辑"、“影评"完全不是一回事。

拉片是把一部电影当成教材去拆:每个段落在整片里承担什么功能、编剧用了哪些手法把观众留在椅子上、导演怎么通过画面语言暗示信息。想系统学电影叙事的创作者(编剧、导演系学生、B 站解说号、短剧编剧、想拍长片的短视频作者)都要过这一关。

传统流程有三个卡点:

  1. 抽帧和对齐字幕:一部 90 分钟的电影要截 5000+ 张关键帧,还要把字幕时间码对上去。Excel 打开就是几百行,眼睛一花就漏一段。
  2. 段落划分:靠脑子记"这部分是引入还是转折"很难扛住 2 小时的注意力衰减。
  3. 结构可视化:主线/支线/情感线交织的地方,光靠文字笔记根本描述不清楚。想画时间轴?先做 3 小时 Excel 条形图。

有人问:“让 AI 直接看电影不行吗?” 现阶段不行——主流大模型不接受视频输入,且几乎所有拉片相关的商业 SaaS 都要么按订阅收费、要么把你的影片素材上传到云端,两者对个人创作者都是障碍。

lapian-notes 的核心工程学决策

看到项目 README 我先怀疑是又一个"套壳 GPT 的 wrapper”。真读了源码才发现它做了一个非常聪明的架构决策——把"上下文构造"和"AI 推理"完全解耦

具体来说:整个前端是纯 React + Vite,跑在浏览器里。所有和视频相关的重活(抽帧、转码、找字幕)通过两个自定义 Vite 中间件在 dev server 里跑(subtitle-server-plugin.ts 258 行、transcode-server-plugin.ts 280 行)。而 AI 分析这一步——它根本不调 AI,只是把上下文打包成一个 ZIP,让你自己拖给 ChatGPT / Claude / Gemini / Kimi。

AI 分析包结构

看一眼 src/lib/framePackage.tsexportAiAnalysisPackage() 的实现就明白了。这个 ZIP 里装了:

文件作用
prompt.md拉片任务书。指定 AI 的角色、必须返回的字段、事实纪律(“字幕和画面证据为准,宁可留空不要脑补”)
schema.jsonAI 必须返回的 JSON 结构,前端拿这个反序列化
project.json影片元信息:时长、抽帧数、学习目标
subtitles.srt广告清洗后的字幕文本(源码里的 AD_PATTERN 会过滤掉"字幕由…压制"、“仅供学习"这类干扰)
frames/*.jpg每秒一张的抽帧图,文件名带时间码(00_00_15.jpg
剧情资料.md可选。你自己写的背景资料(人物关系、原著梗概)

这个决策的价值远比看起来大——它意味着这个工具永远不会因为 OpenAI 涨价、Claude 换模型、Gemini 改 API 而失效。你的 AI 会员权益是你自己的,你换 AI 只是换个上传的窗口。这在 2026 年 AI 收费越来越贵、免费额度越来越紧的环境下是个巨大的杠杆。

5 分钟跑通:完整命令 & 踩坑

不懂编程的用户

  1. release 页面 下载 ZIP,解压。
  2. Windows 双击 run.bat,Mac 双击 run.command(第一次 Mac 会弹"无法打开”,右键 → 打开 → 打开就好)。
  3. 首次启动会自动下载便携版 Node.js(约 30-40MB,走 npmmirror 国内镜像)和 npm 依赖,两三分钟。之后每次秒开。

黑色终端窗口会打印 http://localhost:5173,浏览器自动打开。用完关掉那个黑色窗口就是退出。

开发者

git clone https://github.com/bkingfilm/lapian-notes.git
cd lapian-notes
npm install
npm run dev
# 浏览器打开 http://localhost:5173

坑 1:必须用 npm run dev,不能只用 npm run build 因为自动转码和字幕搜索都是 dev server 的中间件,静态部署会降级为手动操作。

坑 2:ffmpeg 可选但强推荐。 项目本身不带 ffmpeg,但 H.264 MP4 之外的格式(RMVB / AVI / HEVC / MKV)浏览器 <video> 元素放不了,抽帧会失败。装了 ffmpeg 之后 transcode-server-plugin.ts 会自动把它们转成浏览器能吃的 MP4,产物按"文件名+大小"做缓存(md5(filename|size) 前 16 位),同一部电影重选秒完成。

坑 3:网络字幕搜索限中文影片较友好。 subtitle-server-plugin.ts 里默认走的是 secure.assrt.net(伪射手),支持 srt/ass/ssa/vtt 和 rar/zip 打包,用 tar 解压。国外新片可能搜不到,需要手动上传 srt。

完整 4 步实操

拿一部电影举例(我用《寄生虫》试的,2 小时 12 分钟,导入后花了大概 6 分钟抽帧):

  1. 导入影片:点顶部"导入电影"选文件。之后全自动:不兼容格式转码 → 抽帧(1 秒 1 张)→ 读内嵌字幕(没有就搜网络字幕,与片长比对时间轴,差 6 分钟以内视为同版本)→ 生成 AI 分析包。
  2. 发给 AI:分析包 ZIP 会自动下载,同时一段"开场白"被复制到剪贴板。打开 ChatGPT(需要 Plus,才能传附件)/ Claude / Gemini Advanced,粘贴开场白 → 上传 ZIP。AI 读图 + 读字幕,返回一段严格符合 schema.json 的 JSON。
  3. 导回结果:把 JSON 下载下来,前端点"导入 AI 结果"。剧情泳道时间轴、结构树、情绪曲线自动出现
  4. 精修:任意段落可以单独打小包发给 AI(exportSegmentDeepDivePackage),要求它拆到"场与镜头"级——15-40 条 screenplayBlocks,每条带时间码。这是我个人最喜欢的功能:开头用大模型给你一个粗版,关键段落用同样的大模型再拆一层

拉片笔记 vs 其他方案:真实对比

我用同一部电影在四种方案里都做了一遍拉片笔记(其中传统 Excel 方案我只坚持了 40 分钟就中断了):

四种拉片方案对比

几个非明显的观察:

  • StudioBinder 对个人依然贵。 它的强项是团队协同(导演/DP/制片同步剧本板),对独立创作者是 overkill。
  • Notion + AI 手写 prompt 最灵活但最累。 每次都要自己上传截图、贴字幕、调 prompt,且 Notion 里画不出泳道图。
  • 拉片笔记的边界很清楚:不做剪辑、不做视觉资产管理、不做多人协同。它只做一件事——把电影变成结构化笔记
  • 本地隐私:这点在拉盗版 / 抢先版 / 未公映影片时格外重要(当然本工具的免责声明里也强调只用于合法访问的影片)。

值得深看的三个源码细节

以下三个都是我读源码时觉得"这个人是真做过拉片才写的":

1. 字幕时间轴对齐机制subtitle-server-plugin.ts

// 时间轴与片长核对:尾条时间和片长差 6 分钟以内视为同版本。
// 对不上的一律不用:错误字幕会让 AI 把别的版本的对白当真,比没字幕更糟。
if (durationSeconds > 0 && Math.abs(found.lastTimestampSeconds - durationSeconds) > 360) {
  // 记录 closestRejected 供前端提示,但不采用
}

字幕组会给同一部电影上传 5+ 个版本(导演剪辑版、院线版、加长版),时间码经常错半小时。作者宁可"没字幕"也不"用错版字幕",避免污染 AI 的判断。这个默认值 6 分钟是显然做过调参的

2. 广告条清洗autoSubtitle.ts

const AD_PATTERN = /www\.|http|论坛|首发|QQ|微信|公众号|招募|广告|压制|本字幕由|仅供学习|禁止用于/i;

不清洗的话,AI 会把"本字幕由 XX 论坛压制"当成第一句台词。这种细节不做过就写不出来。

3. 段落深拆的严格 schemaframePackage.ts 里的 buildSegmentDeepDivePrompt

单段深拆包里的 prompt 明确要求 AI:

“screenplayBlocks 是本次的核心产出:按时间顺序把这一段拆成场景、动作、对白小节。平均每 15-30 秒至少一条,一个段落通常应有 15-40 条。”

“事实纪律:人物名、地名、身份必须以字幕和画面证据为准,没有证据宁可留空,不要脑补。”

这两条约束把大模型"AI 编故事"的老毛病压了下来。对拉片这种要求可核查的工作至关重要。

谁应该用,谁不应该

应该用

  • 编剧新人 / 导演系学生 —— 系统学习结构,把 15 部经典电影拉一遍比读 5 本教材有用得多。
  • 想拍长片的短视频作者 —— 用它拆你想模仿的目标片,找出别人的结构骨架。
  • 影评公众号 / B 站解说号策划 —— 起选题时快速摸清一部片的关键节拍在哪。
  • 电影学院老师 —— 让学生用同一份 AI 分析包做同一部电影的对比作业。

不建议用

  • 只做快剪解说、追热点搬运的号 —— 它不解决你的剪辑焦虑,你需要的是剪映而不是它。
  • 团队协作场景 —— 3 人以上同时改一份笔记,StudioBinder 云端项目还是更好。
  • 只想"AI 一键出影评"的用户 —— 这个工具需要你自己动手精修才有价值,AI 只是给你个粗坯。

五分钟能拿走的可复用清单

如果你决定试,我建议按这个顺序:

  1. 先跑一部你熟悉的电影(比如你已经看过 3 遍的《寄生虫》)。这样能校准 AI 的输出质量,也能识别哪些字段值得手改。
  2. AI 选 Claude Sonnet 或 Gemini Advanced,避免用免费额度做长任务——这种 ZIP 通常 20-50MB,包含几百张图 + 几百条字幕,需要模型的长上下文和视觉能力都到位。
  3. 第一次拉片不要追求完美,先做完整流程。 走完一整轮 → 导出 Markdown → 再回头精修 5 个关键段落。
  4. 段落深拆用小包,不要把整片再送一次。 单段深拆包只有几帧+几条字幕,几秒钟就返回。
  5. 导出 Markdown 存进你的知识库。 我把每部片的笔记 dump 进 Obsidian,加上"结构类型"/“关键手法"标签,慢慢就成了自己的编剧素材库。

我对这个项目的判断

这不是那种"横扫一切"的工具。它做的事很窄:把系统化拉片这件事的门槛从"两个星期毅力"降到"一个下午耐心”。窄,但深。

作者是 Discord 影视社区(2500+ 成员)的负责人,垂直渠道 + 中文 UI + MIT 协议 + 本地运行的组合,在影视创作者群体里的推广效率会比通用工具高得多。这也是为什么 3 天能到 270 star——精准客群 + 真实痛点 + 上手门槛低。

不需要 API Key、不需要账号、不需要联网(除了搜字幕)。装上,拖入影片,剩下的事情你自己决定要不要走完。这在 2026 年这个"每个 AI 工具都要你先注册再登录再充值"的年代,是一件挺珍贵的事。

参考链接