[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-81758":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":9,"rankLanguage":9,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":22,"topics":25,"createdAt":9,"pushedAt":9,"updatedAt":26,"readmeContent":27,"aiSummary":28,"trendingCount":15,"starSnapshotCount":15,"syncStatus":29,"lastSyncTime":30,"discoverSource":31},81758,"scribe-studio","autogame-17\u002Fscribe-studio","autogame-17","Scribe — multi-platform video → local Whisper transcription → LLM proofread with Typeless-style glossary learning. Wails v2 desktop app for macOS & Windows.",null,"Go",32,12,25,5,0,3,6,7,9,53.04,"Other",false,"main",true,[],"2026-06-12 04:01:35","# Scribe\n\n> 多平台视频 → 本地 Whisper 转写 → LLM 校对 + Typeless 风格智能词表。\n> 基于 Wails v2 的原生桌面 App，macOS \u002F Windows。\n\nScribe 把音视频转成高质量文字稿。下载完自动跑本地 Whisper（可切云 API），配合 LLM 校对 + 智能词表，逐渐把你的常用术语\"喂\"给工具——Typeless 风格的增量学习。\n\n**本期 (v0.3)** 同时支持微信视频号（内置 MITM 代理，下载按钮直接注入到微信客户端）和 yt-dlp 驱动的通用 URL 下载（YouTube \u002F B 站 \u002F X \u002F 抖音 \u002F TikTok 等 1700+ 站点），两个来源在 Downloads 页统一展示，转写、词表、校对都共用。\n\nUI 视觉对齐 [autogame-17\u002Fprism](https:\u002F\u002Fgithub.com\u002Fautogame-17\u002Fprism)：窄边栏 + 主内容 + 卡片网格，Tailwind + shadcn\u002Fui + Radix + lucide。\n\n![Scribe](docs\u002Fscreenshots\u002Fhero.png)\n\n---\n\n## 为什么不是 downloader\n\n前身是 `sph-downloader`——一个把视频号下载 CLI 重包成桌面应用的小玩意。真跑起来之后发现：**下载只是半成品**。视频号里大量内容本质是\"通过视频承载的一段话\"，真正有价值的是那段话本身——字面、可搜、可剪、可改。Scribe 是把\"下载\"降级为工具链里的一步，把终态产物从 MP4 改成\"能读、能改、能导出\"的文字稿。\n\n## 工作流\n\n```\n 视频号 \u002F YouTube \u002F B 站 \u002F X \u002F 抖音 \u002F TikTok \u002F ...\n   ↓ 下载（wx_channel MITM 或 yt-dlp，根据来源自动分流）\n mp4 \u002F m4a\n   ↓ ffmpeg 抽音轨\n wav (16 kHz mono)\n   ↓ whisper.cpp 本地推理\n segments + timestamps\n   ↓ 确定性词表替换（种子 40+ 条 + 个人累积）\n   ↓ LLM 校对（Claude \u002F Gemini，v0.2c）\n   ↓ 用户 accept → 回流进个人词表\n 成稿 (md \u002F srt) + 原视频里的 .zh.srt\n```\n\n## 架构\n\n```\nscribe-studio\u002F\n├── backend\u002F\n│   ├── core\u002F                     # git subtree: ltaoo\u002Fwx_channels_download\n│   │   └── pkg\u002Fsphkit\u002F           # overlay: Start\u002FStop\u002FListTasks（绕 internal 壁垒）\n│   └── scribe\u002F\n│       ├── app.go                # Wails App struct\n│       ├── runtime\u002F              # AppSupport 路径 + 二进制定位\n│       ├── media\u002F                # ffmpeg 抽音轨\n│       ├── transcribe\u002F           # Provider 接口 + LocalWhisperCpp\n│       ├── models\u002F               # whisper 模型下载管理\n│       ├── external\u002F             # yt-dlp 集成（probe \u002F download \u002F 状态机）\n│       ├── pipeline\u002F             # watcher + queue + 持久化状态（含 SourceExternal）\n│       ├── proofread\u002F            # LLM 校对 + 词表\n│       ├── logbus\u002F               # 实时日志环形缓冲区 + Wails 广播\n│       └── transcripts.go        # Wails 绑定\n├── frontend\u002F                     # React + Vite + TS + pnpm\n│   └── src\u002F\n│       ├── components\u002Flayout\u002F    # Sidebar + Topbar\n│       ├── components\u002Fui\u002F        # shadcn 风格 Card\u002FButton\u002FBadge\n│       └── pages\u002F                # Dashboard \u002F Downloads \u002F Transcripts \u002F Logs \u002F Settings \u002F About\n├── resources\u002Fbin\u002F                # ffmpeg + whisper-cli + yt-dlp (.gitignore)\n└── scripts\u002F\n    ├── fetch-bins.sh             # dev：brew install + 软链到 resources\u002Fbin\n    ├── scribesmoke\u002F              # go run -tags scribesmoke\n    └── realsmoke\u002F                # go run -tags realsmoke \u003Cvideo>\n```\n\n## 开发\n\n### 依赖\n\n- macOS（目前 v0.2a 只跑 mac；Windows 走 v0.2d 再说）\n- Go 1.23+\n- Node 20+ & pnpm\n- Wails v2 CLI: `go install github.com\u002Fwailsapp\u002Fwails\u002Fv2\u002Fcmd\u002Fwails@latest`\n- Homebrew（fetch-bins 脚本用）\n\n### 一次性 setup\n\n```bash\n.\u002Fscripts\u002Ffetch-bins.sh           # 默认 dev 模式：brew install ffmpeg + whisper-cpp，软链到 resources\u002Fbin\u002F\n.\u002Fscripts\u002Ffetch-bins.sh --release # 编静态二进制（evermeet ffmpeg + 源码编 whisper-cli），给 CI \u002F 本地打包用\n```\n\nWhisper 模型从 App 内一键下载（设置 → 转写），不需要手动 curl。\n\n### 开发循环\n\n```bash\nwails dev                          # 热更新 + DevTools\nwails build                        # dev 构建，走 resources\u002Fbin\u002F 的 brew symlink\n.\u002Fscripts\u002Fbuild-release.sh v0.2.0  # release 构建：注入 ldflags + bundle 静态二进制进 .app\n```\n\n### 跑 smoke\n\n```bash\n# 只测 Whisper Go wrapper\ngo run -tags scribesmoke .\u002Fscripts\u002Fscribesmoke\u002Fmain.go\n\n# 对真视频走 ffmpeg + whisper 完整链路，输出 SRT\ngo run -tags realsmoke .\u002Fscripts\u002Frealsmoke\u002Fmain.go path\u002Fto\u002Fvideo.mp4 base\n```\n\n## Roadmap\n\n| 版本 | 范围 | 状态 |\n|---|---|---|\n| v0.1 | 视频号下载桌面封装（sph-downloader） | ✓ 完成 |\n| v0.2a | 改名 Scribe、下载完成自动转写、Transcripts 页 | ✓ 完成 |\n| v0.2b | `@uiw\u002Freact-md-editor` 轻量编辑器 + 种子词表 + srt\u002Fmd 导出 | ✓ 完成 |\n| v0.2c | LLM 校对 + SuggestionChip + Typeless 回流词表 + AI Settings | ✓ 完成 |\n| v0.2d | macOS ldflags 注入 + 静态二进制 bundle + 模型下载 UI + release CI | ✓ 完成 |\n| v0.2e | sphkit 解析修复 + 代理停止时仍可看下载历史 + Scribe 品牌图标 | ✓ 完成 |\n| v0.3 | yt-dlp 集成（YouTube \u002F B 站 \u002F X \u002F 抖音 等 1700+ 站点）+ Downloads 页 MediaSource 抽象 + 实时日志面板 + 自动转写 toggle | ✓ 完成 |\n| v0.4 | Dashboard 一键安装 \u002F 卸载 CA 证书；Settings 代理 + 下载 tab 实质化（host \u002F port \u002F 下载目录均可改）；Whisper 量化模型 (medium-q5_0 \u002F large-v3-q5_0)；Intel mac + Windows binaries | ✓ 完成 |\n| v0.5 | Apple notarization（需要 Developer ID）；MaxRunning 可配置；Linux binary | ⏳ |\n\n## License\n\n**GPL-3.0-or-later**。详见 [`LICENSE`](LICENSE)。\n\n为什么是 GPL：Wails 桌面二进制静态链接了 vendored 进来的 [GopeedLab\u002Fgopeed](https:\u002F\u002Fgithub.com\u002FGopeedLab\u002Fgopeed) fork（在 `backend\u002Fcore\u002Fpkg\u002Fgopeed\u002F`，GPL-3.0）。按 GPL-3.0 §5，combined work 必须以 GPL-3.0（或兼容许可证）整体发行——所以 scribe-studio 整仓都走 GPL-3.0-or-later。\n\n各第三方组件保留各自原始许可（见 [`NOTICE.md`](NOTICE.md)）。例如 `backend\u002Fcore\u002F` 下来自上游 `ltaoo\u002Fwx_channels_download` 的文件保留其 \"Commons Clause\" + MIT 上游声明（描述这些**单个文件**的授权），但合成进 Scribe 二进制后整体仍以 GPL-3.0 发行。\n\n### 商业许可（dual licensing）\n\n如果 GPL-3.0 的义务（衍生品源码公开等）与你的用途冲突——典型场景如闭源 SaaS、私有发行——`autogame-17` 作为 Scribe 原创部分的版权所有者，欢迎商谈另外的商业授权。注意：dual licensing 只能覆盖 Scribe 自有代码 + 已签署 CLA 的贡献者代码；vendored 的 GPL\u002FMIT 第三方组件仍受其上游许可约束（也就是说商业版若想完全脱离 GPL，需要把 gopeed 这类 GPL 依赖剥离或替换）。\n\n联系方式：通过 GitHub `@autogame-17` 私信，或在 issue 里留 contact 邮箱。\n\n## Credits\n\n第一致谢：[ltaoo\u002Fwx_channels_download](https:\u002F\u002Fgithub.com\u002Fltaoo\u002Fwx_channels_download) —— 没有这套视频号 MITM + 注入脚本，Scribe 的下载侧就不存在。详见 [NOTICE.md](NOTICE.md) 的完整清单。\n","Scribe 是一款多平台视频转文字工具，支持将视频内容转换为高质量的文字稿。其核心功能包括本地运行的Whisper语音识别、大语言模型(LLM)校对以及Typeless风格的智能词表学习，能够逐渐适应用户的术语偏好。项目基于Wails v2构建，提供macOS和Windows版本的桌面应用。用户可以通过微信视频号或yt-dlp支持的1700多个网站下载视频，并自动完成从音视频提取到最终文字稿生成的全过程。Scribe特别适合需要频繁处理音视频内容并希望快速获取准确文字记录的专业人士使用。",2,"2026-06-11 04:06:17","CREATED_QUERY"]