Skip to content

Releases

Video2Doc v0.12.0 — 图文稿自动精简

Choose a tag to compare

@GoodWay0223 GoodWay0223 released this 11 Oct 09:17

重点更新

🖼️ 图文稿更紧凑

  • 默认自动精简截图:讲解很短的画面,以及和上一张几乎一样的画面(逐步出现的幻灯片、重复回看的页面),都会并入上一张保留的截图,时间段一起合并。
  • 文字一字不少,只是不再每隔几秒就插一张图,阅读和对照学习更顺。
  • 实测三场 CEDEC 讲座:从 160 张截图精简到约 90 张,和人工挑选的结果(82 张)接近。

Video2Doc v0.11.0 — 发布到飞书/Lark 文档、识别后替换

Choose a tag to compare

@GoodWay0223 GoodWay0223 released this 11 Oct 08:46

重点更新

继续来自同一次真实使用:把三场 CEDEC 讲座的“截图 + 原文”逐字稿写进团队的 Lark 文档。

📤 发布到飞书 / Lark 文档

python scripts/publish_lark.py --job output/<任务 ID> --new "讲座逐字稿"
python scripts/publish_lark.py --job output/<任务 ID> --doc <文档链接> --after-block <block_id>
  • 按“截图(带时间段说明)+ 原话”逐段写入,并附上文字稿 / SRT 字幕文件。
  • 可插入到已有文档的指定位置;中断后重跑从断点继续。
  • 需要先安装并登录官方 lark-cli(lark-cli auth login --domain docs --domain drive)。

✏️ 识别后替换

  • ⚙️ 设置 → 模型 中按行填写 错词 => 正确词,或命令行 --replace "错=>对"。
  • 导出前统一修正分段、全文、SRT 和图文稿,专门处理热词也纠正不了的固定错误。

Video2Doc v0.10.0 — 图文稿、热词识别与 B站 720p

Choose a tag to compare

@GoodWay0223 GoodWay0223 released this 11 Oct 08:06

重点更新

这一版来自一次真实使用:把三场 CEDEC 2020《集合啦!动物森友会》讲座整理成学习用的图文稿。过程中暴露的问题都已修进产品里。

🖼️ 图文稿

  • 自动检测幻灯片 / 画面切换,每张截图下面配上它在屏幕上时讲的原文,并标注时间段,方便对照视频学习。
  • 输出单文件离线 HTML(图片内嵌,可直接发给别人),以及 Markdown + 图片压缩包(可导入笔记 / 文档工具)。
  • Web 的“链接转文稿”“本地文件转文稿”勾选 生成图文稿;命令行加 --illustrated。图文稿出错时不影响文字稿。

🎯 热词与识别上下文

  • 人名、术语可以作为热词交给豆包 2.0(官方热词直传)和 Whisper,视频标题自动作为识别上下文。
  • 实测:讲座一里“京极彩”从完全识别错误变为 5/5 正确,CEDEC、毛吕功、狸克、关西方言等专名也一起修正。
  • 单个任务在转文稿窗口填写;常用热词在 ⚙️ 设置 → 模型 中全局配置;命令行 --hotwords "A,B"。

其他

  • B站免登录画质从 480p 提升到 720p/1080p,下载和图文稿截图更清晰。
  • 命令行进度输出到 stderr,--json 时 stdout 只有结果 JSON,便于脚本和 Agent 解析。

Video2Doc v0.9.0 — Web 设置页(Key/模型)与工具自动保持最新

Choose a tag to compare

@GoodWay0223 GoodWay0223 released this 11 Oct 07:38

重点更新

⚙️ Web 设置页

  • API Key:豆包语音、硅基流动各有“获取 Key ↗”直达链接,可在页面里粘贴、验证、保存、清除。Key 只保存在本机 ~/.video2doc/config.json,页面只显示掩码;同名环境变量仍优先。
  • 模型:AI 摘要模型直接列出你硅基流动账号可用的对话模型(也可自定义);本地 Whisper 的模型和识别语言可选;每个识别引擎用的具体模型和就绪状态一目了然。
  • 工具与更新:yt-dlp、FFmpeg、Playwright、Whisper、FunASR、Node.js、Python 的当前版本与最新稳定版,支持一键更新。
  • 登录态(可选):cookies.txt、抖音 storage_state、小红书 Cookie。

🔄 工具自动保持最新

  • 默认每天检查一次,自动把可更新的工具升级到最新稳定版,可在设置里关闭。
  • 只安装发布满 7 天的稳定版(跳过预发布和已撤回版本);原地替换,不在电脑上留第二份。
  • Windows 独立目录的 FFmpeg 从 gyan.dev 官方构建更新,下载后校验 SHA-256;winget / Homebrew 安装交给对应包管理器。
  • 有任务运行时不更新;Python、Node.js 等需要管理员权限的软件只显示升级命令。

其他

  • requirements.txt 改为 yt-dlp[default],一并安装 YouTube 所需的 yt-dlp-ejs。
  • 设置与更新接口只接受本机请求,局域网共享模式下其他设备无法读写 Key。

升级

解压 Video2Doc-v0.9.0.zip 到新目录,运行 python -m pip install -r requirements.txt 后启动,点右上角 ⚙️ 设置 即可配置 Key。已有的 ~/.video2doc/config.json 和环境变量继续有效。

Video2Doc v0.8.0 — 统一 CLI、字幕优先全平台化与流式大文件上传

Choose a tag to compare

@GoodWay0223 GoodWay0223 released this 11 Oct 07:10

重点更新

Video2Doc v0.8.0 从“输入 → 媒体 → 文字 → 文档”的本质出发,收敛重复实现、去掉不必要的下载与等待,并修复若干会让任务失败或结果失真的问题。

更快、更省

  • YouTube 也改为“字幕优先 → 仅音频”,不再为转文稿下载整段视频;字幕不再请求上百条机器翻译轨(此前会触发 HTTP 429)。
  • 抖音转文稿优先使用免浏览器的移动分享 MP4,不可用时不到 1 秒切换到 Playwright 签名音轨。
  • 所有音频识别前统一转为 16 kHz 单声道 MP3,云端上传体积通常缩小 4–8 倍;本地 FunASR/Whisper 模型进程内缓存。
  • Web 服务多线程化,大文件上传/下载期间页面与进度轮询不再卡住。

更可靠

  • 本地上传改为流式写盘,单文件上限 200 MB → 4 GB,并显示上传进度。
  • 豆包/TeleSpeechASR 超时随音频时长伸缩,长音频不再因固定 90/120 秒超时失败。
  • 任务写入 output/<任务 ID>/job.json,重启后历史自动恢复;任务队列默认最多并行 2 个。
  • 修复 Windows 下 tele_result.json 按 GBK 写入、下载失败原因被覆盖、引擎空结果无提示、YouTube 自动字幕重复行等问题。

更好用

  • 新增 video2doc.py 命令行,与 Web UI 完全共用 pipeline,支持链接/分享文本/本地文件、批量、仅下载、隐私模式和 JSON 输出。
  • Markdown 文稿包含标题、来源、时长、识别来源,并按停顿自动分段;云端摘要对长文稿取首/中/尾节选以覆盖全篇。

安全

  • 校验 Host 头阻止 DNS rebinding,POST 校验 Origin/Sec-Fetch-Site 阻止跨站请求。

升级

下载 Video2Doc-v0.8.0.zip 解压到新目录,运行 python -m pip install -r requirements.txt(yt-dlp 最低 2026.8.19)与 python scripts/check_setup.py 后启动。旧版本 output/ 目录可直接复制过来继续查看(无 job.json 的旧任务不会出现在历史列表中)。

Video2Doc v0.7.0 — B站/抖音采集链路优化

Choose a tag to compare

@GoodWay0223 GoodWay0223 released this 02 Aug 11:41

这次更新

  • B站链接转文稿改为“平台字幕 → 公共 DASH 音轨 → yt-dlp 兜底”,HTTP 412 不再原样盲重试。
  • 抖音建立 SSR、隔离 Playwright 签名媒体、显式 Cookie yt-dlp、MediaRecorder 的分层回退链。
  • 在线转录优先获取最小音频资产,不再为了 ASR 先下载完整视频。
  • 默认不读取正在运行的 Chrome Cookie;显式登录态只在对应平台路径使用。
  • 新增 ffprobe 完整性校验、分类错误和脱敏 download.trace.json。
  • 保留 v0.6.0 的字幕优先、豆包/TeleSpeechASR/FunASR/Whisper、多格式导出、隐私模式和 Web 安全加固。
  • Windows 配置兼容 UTF-8 BOM、UTF-8 与旧 GB18030,不依赖系统 UTF-8 Beta 开关。

验证

  • 71/71 Python 回归测试通过。
  • Python、JavaScript、Shell 语法和发布包构建通过。
  • Windows 真实 B站、抖音样本均完成“平台采集 → Whisper → MD/TXT/JSON/SRT”全流程。
  • 平台页面和风控会变化,真实验证不代表永久成功率承诺;失败时请查看任务内的脱敏策略追踪。

下载 Video2Doc-v0.7.0.zip,并用同名 .sha256 文件校验完整性。

Video2Doc v0.6.0 — Windows/macOS 兼容、隐私模式与安全加固

Choose a tag to compare

@GoodWay0223 GoodWay0223 released this 22 Jul 10:13
c5ecce7

重点更新

Video2Doc v0.6.0 是一次面向日常使用和后续迭代的基础版本更新:统一 Windows/macOS 核心运行路径,补齐隐私模式和安全边界,修正前端能力宣传,并建立可复现的正式发布流程。

Windows 与 macOS

  • 新增 start-video2doc.cmd 和 start-video2doc.command。
  • 自动发现 Windows WinGet/Scoop/Chocolatey/uv/虚拟环境,以及 macOS Homebrew/MacPorts 中的 ffmpeg、ffprobe、curl、yt-dlp 和浏览器。
  • Shell 入口统一验证 Python 3.10+,与当前 yt-dlp 的最低版本一致,并避免 Windows Store 无效 python3 别名。
  • GitHub Actions 在 windows-latest 和 macos-latest 上运行 Python 3.10/3.11 核心回归、启动器和打包 smoke。
  • 环境状态显示 Python、FFmpeg、ffprobe、curl、yt-dlp 与 JavaScript runtime 的本机版本,并离线核对 yt-dlp 最低要求。
  • 只有用户点击或执行 --check-updates 才向 PyPI 查询最新稳定版;程序只给出匹配安装形态的升级建议,不会自动升级。
  • Dependabot 每周提高 yt-dlp 已测试最低基线,计划 CI 同步在两个系统上重新验证当时的最新稳定版;更新需经 PR 与测试后才会进入发布。

隐私与安全

  • 本地文件新增“隐私模式:仅本机识别”。开启后,服务端只允许 FunASR → Whisper,并强制禁止豆包、TeleSpeechASR 和 SiliconFlow 内容增强。
  • 默认仅监听 127.0.0.1,移除通配 CORS。
  • 修复下载路径穿越、上传文件名越界、DOM XSS、超大请求体和不安全 URL 边界。
  • API Key 只从显式环境变量或 ~/.video2doc/config.json 读取,不写入仓库,也不放入子进程参数。

前端与正确性

  • 删除“95%+ 准确率”“高清无水印”“永久免费”等缺少验证依据的宣传。
  • 明确三个处理入口、字幕优先策略、MD/TXT/JSON/SRT 四种格式和小红书实验状态。
  • 增加本机能力状态、云端增强发送范围、隐私模式启用条件和完整开启教程。
  • 修复 yt-dlp Cookie 失败重试、Windows 空设备、校正规则、领域参数和单格式结果预览。

正式发布包

  • Video2Doc-v0.6.0.zip:Windows/macOS 共用的跨平台源码包。
  • Video2Doc-v0.6.0.zip.sha256:ZIP 的 SHA-256 校验值。
  • ZIP 内含 RELEASE-MANIFEST.json,记录每个文件的大小和 SHA-256。
  • 构建器会排除 .git、缓存、测试、运行输出、媒体和本地凭据,并在发现高置信密钥时中止发布。

从 v0.5.0 升级

  1. 下载并解压 v0.6.0 到新目录,不要直接覆盖正在运行的旧目录。
  2. 如需保留任务,先备份旧目录中的 output/;发布包不包含运行产物。
  3. API Key 继续使用系统环境变量或 ~/.video2doc/config.json。
  4. 重新执行 python -m pip install -r requirements.txt 和环境自检。

**网络监听变化:**v0.6.0 默认只监听 127.0.0.1。如需局域网访问,必须显式传入 --host 0.0.0.0;该模式目前没有认证或 HTTPS,请勿用于敏感内容。

验证范围

  • 本地 Windows:57/57 Python 回归、Python/JavaScript/Bash 语法和真实浏览器桌面/移动端检查。
  • GitHub Actions:Windows/macOS Python 3.10/3.11 核心回归、启动器和发布包 smoke。
  • 候选发布包:可复现性、SHA-256、包内清单、执行权限、CRLF/LF、敏感文件排除和解压运行检查。

CI 不调用真实平台媒体或收费 API,因此不代表所有平台页面、账号权限、地区限制、Key 有效性和额度均已端到端验证。

已知限制

  • FunASR/Whisper 是可选依赖;首次使用可能联网下载模型。
  • “链接转文稿”必须联网获取媒体,不能视为完全离线。
  • yt-dlp 更新频繁;可用 python scripts/check_setup.py --check-updates 显式联网检查。YouTube 完整支持还可能需要受支持的 JavaScript runtime/EJS 组件,并受地区、账号和页面变化影响。
  • 实验性 Bash CLI 的下载阶段尚未与 Web pipeline 完全统一,正式使用优先选择 Web UI。
  • 仓库当前没有开源许可证;请勿自行假定为 MIT 或其他许可证。

完整变更:v0.5.0...v0.6.0

Video2Doc v0.5.0 — 下载全面优化 + 字幕优先 + 文稿增强(大版本)

Choose a tag to compare

@GoodWay0223 GoodWay0223 released this 09 Jul 08:26

v0.5.0 大版本:基本全功能可用

下载链路全面优化

  • 抖音:iesdouyin 分享接口,无需 cookie/登录,实测一次成功
  • 小红书:INITIAL_STATE 解析,cookie 可选
  • B站:修复视频轨未合并 bug + 自动抓 AI 字幕

新功能

  • 字幕优先:B站有 AI 字幕直接用、跳过 ASR(秒级、免额度)
  • content-enrich:转录后自动补摘要+要点+标签

Bug 修复

  • B站下载视频轨未合并 / 纯下载路径 404 / 本地转录失败卡死 / 同文件复制报错

三大核心平台(抖音/B站/小红书)下载成功率全面提升。详见 CHANGELOG.md

Video2Doc v0.4.3 — 豆包ASR首选 + 引擎选择机制 + 本地FunASR

Choose a tag to compare

@GoodWay0223 GoodWay0223 released this 08 Jul 10:52

v0.4.3

豆包ASR首选

  • 接入豆包录音文件识别大模型2.0为云端首选(实测中文准确率78% > TeleSpeechASR 22%)
  • 异步submit+query、base64内联、按官方文档处理响应头X-Api-Status-Code

引擎选择机制

  • auto(默认): 豆包→TeleSpeechASR→FunASR→Whisper 自动降级
  • 手动指定 doubao/tele/funasr/whisper
  • 首选额度耗尽时静默切下一级并提示用户

本地FunASR

  • Paraformer为本地首选(优先于Whisper), Whisper降末位兜底

前端

  • 引擎下拉选择器 + 结果区引擎徽章

详见 CHANGELOG.md

v0.4.2 — 本地转录步骤条修复

Choose a tag to compare

@GoodWay0223 GoodWay0223 released this 02 Jul 08:11

🎬 Video2Doc v0.4.2

🐛 修复

  • 本地转录步骤条高亮错位:后端本地流水线的状态是 extracting → transcribing → exporting,旧逻辑用全局序号映射,导致「提取音频」阶段错误高亮第 3 步「AI识别」,且「上传文件」永不显示完成。现改为按弹窗分别定义 statusStep 映射,步骤条正确点亮。

🔧 改进

  • 下载流水线新增 downloading 状态,进度条更平滑
  • 版本号统一为 v0.4.2(前端页脚 / CLI 横幅 / 文档)

✅ 验证

  • 前端脚本 node --check 语法通过
  • 后端 4 个模块导入正常,HTTP 路由冒烟测试通过
  • 本地转录端到端实测通过(MP3 → 提取音频 → TeleSpeechASR → 导出 MD 1111B / SRT 1246B)

🚀 使用方式

python3 webui.py
# 浏览器打开 http://localhost:8765