Show HN: 仅CPU转录YouTube、TikTok、X、Instagram视频
摘要
yapsnap 是一个命令行工具,用于将来自各种来源(YouTube、TikTok 等)的视频/音频转录为纯文本,仅使用 CPU,无需 GPU 或云。它利用 sherpa-onnx 和 yt-dlp 实现离线快速转录。
暂无内容
查看缓存全文
缓存时间: 2026/05/20 23:30
kouhxp/yapsnap 来源:https://github.com/kouhxp/yapsnap # yapsnap > 将任意视频 URL 或音频文件快照为纯文本。无需 GPU。无需云服务。一条命令。 Python 许可证 平台 bash yapsnap "https://www.youtube.com/watch?v=dQw4w9WgXcQ" 就是这样。你会在 shell 旁边得到一个 .txt 文件,在 CPU 上转录完成,所花时间比视频播放时间还短。 — ## 为什么选择 yapsnap - ⚡ 在 CPU 上飞快。 流式 Zipformer 换能器(Kroko English)在笔记本上能以数倍于实时速度处理音频。无需 CUDA。无需 M 系列专属技巧。普通旧核心即可。 - 🌐 任意视频 URL 及本地文件。 YouTube、X、TikTok、Instagram Reels、直接 .mp4/.mp3 链接,或者指向磁盘上的一个文件。yt-dlp 负责抓取,ffmpeg 负责解码,其余部分归你。 - 📴 首次运行后离线。 约 80 MB 的模型只会下载一次到你的缓存并保留。无需 API 密钥。无配额限制。你的音频永远不会离开你的机器。 - 🪶 单个文件,三个依赖。 sherpa-onnx、numpy、yt-dlp。整个工具就是一个 Python 模块。 - ⏱ 需要时带上句子级时间戳。 --timestamps 利用 Kroko 内置的标点,为每个句子添加 [MM:SS]。即使以 2 倍速转录,时间线依然正确。 — ## 快速入门 bash # 1. 确保 ffmpeg 在 PATH 中(一次性操作,因系统而异 —— 见下文) # 2. 安装 pip install . # 3. 快照某个内容 yapsnap https://www.tiktok.com/@user/video/7234567890123456789 yapsnap meeting.mp4 --timestamps yapsnap podcast.mp3 -o ~/notes/episode.txt 首次运行会下载模型(约 80 MB)。之后每次运行都是离线。 — ## 支持的输入 任何 yt-dlp 能理解的 URL 都可以。主要来源: | 来源 | 示例 | |—————––|———————————————————| | YouTube | https://www.youtube.com/watch?v=... | | YouTube Shorts | https://www.youtube.com/shorts/... | | X / Twitter | https://x.com/user/status/.../video/1 | | TikTok | https://www.tiktok.com/@user/video/... | | Instagram Reels | https://www.instagram.com/reel/.../ | | 直接媒体 URL | https://example.com/clip.mp4 | 此外,任何 ffmpeg 能解码的本地文件也行:.mp3、.mp4、.m4a、.wav、.webm、.mov、.mkv、.aac、.opus、.ogg、.flac 等。 — ## 安装 ### 1. ffmpeg | 操作系统 | 命令 | |———|–––––––––––––––––––––––––––––| | macOS | brew install ffmpeg | | Linux | sudo apt install ffmpeg 或 sudo dnf install ffmpeg | | Windows | winget install ffmpeg 或 choco install ffmpeg | ### 2. yapsnap bash pip install . 安装完成后,你的 PATH 中会有两个等价命令:yapsnap(标准名称)和 transcribe(别名,以防你想不起原名)。 — ## 使用方法 bash # 本地文件 yapsnap path/to/audio.mp3 # 任意视频 URL yapsnap "https://www.youtube.com/watch?v=dQw4w9WgXcQ" # 句子级时间戳 yapsnap input.mp4 --timestamps # 自定义输出路径 yapsnap input.mp4 -o ./transcripts/talk.txt # 转录前不加速音频(默认 1.5 倍速,保持音调) yapsnap input.mp4 --speed 1.0 # 保留下载的音频(仅限 URL 输入) yapsnap "https://..." --keep-audio — ## 输出 纯文本,UTF-8 编码。默认位置为当前工作目录下的 ./transcripts/(若不存在则自动创建);可通过 -o 参数覆盖。对于 URL 输入,文件名由视频 ID 派生(例如 dQw4w9WgXcQ_transcript.txt)。 不指定 --timestamps —— 一段识别出的文本段落: 欢迎来到节目。今天我们来聊聊转录。让我们开始吧。 指定 --timestamps —— 每行一个句子,并附上相对于原始音频的时间戳: [00:00] 欢迎来到节目。 [00:03] 今天我们来聊聊转录。 [00:08] 让我们开始吧。 即使使用 --speed 1.5 或更高倍速,时间戳仍以原始音频时间为准。 — ## 标志 | 标志 | 描述 | |—————––|–––––––––––––––––––––––––––––––––––| | -o, --output | 输出 .txt 路径。默认:./transcripts/_transcript.txt。 | | --timestamps | 输出 [MM:SS] 句子。 格式的行,而非单个段落。 | | --speed | 转录前的音频加速倍数,保持音调。默认 1.5。 | | --keep-audio | 保留下载的音频(仅限 URL 输入)。 | | --model | 覆盖模型目录。也可读取 KROKO_MODEL 环境变量。 | — ## 工作原理 1. 获取。 如果输入是 URL,yt-dlp 将最佳的纯音频流下载到临时目录。如果是本地路径,则跳过此步骤。 2. 解码。 ffmpeg 将媒体管道转换为 16 kHz 单声道 PCM。可选的 atempo 滤镜可加速音频而不提高音调。 3. 识别。 流式 Zipformer2 换能器(Kroko English, INT8 ONNX, ~80 MB)逐块处理 PCM。仅 CPU。贪婪解码。 4. 格式化。 默认为纯文本。使用 --timestamps 时,令牌时间戳根据 .!? 分组为句子,并缩放回原始音频时间。 没有帧被发送到任何地方。每次运行之间不保留任何状态,只保留缓存的模型。 — ## 模型与缓存 默认的 Kroko English 模型在首次运行时下载到: - macOS — ~/Library/Caches/yapsnap/ - Linux — $XDG_CACHE_HOME/yapsnap/(或 ~/.cache/yapsnap/) - Windows — %LOCALAPPDATA%\yapsnap\ 如需使用其他流式换能器(其他语言、更大的 Kroko 变体等),请通过 --model 指向一个包含 encoder(.int8).onnx、decoder(.int8).onnx、joiner(.int8).onnx 和 tokens.txt 的目录。或在环境中设置 KROKO_MODEL。 — ## 注意事项与限制 - 默认模型仅支持英文。对于其他语言,请通过 --model 提供匹配的 sherpa-onnx 流式换能器。 - --speed 1.5 可将转录时间缩短约三分之一,且准确性影响极小。如果想要更快,可以尝试 2.0;对于嘈杂、含糊或语速快的源,可设为 1.0。 - 某些社交媒体 URL 可能受地域限制或需要登录;yt-dlp 会明确提示。 - 这是一个流式模型,因此时间戳来自识别流中的令牌位置。它们对于导航足够准确,但不适用于字幕级别的对齐。 — ## 许可证 本项目采用 Apache-2.0 许可证。Kroko 模型按自有许可证分发——参见 。由 sherpa-onnx (https://github.com/k2-fsa/sherpa-onnx) 和 yt-dlp (https://github.com/yt-dlp/yt-dlp) 提供支持。
相似文章
Show HN:VidStudio,一款不上传文件的浏览器视频编辑器
VidStudio 是一款免费的浏览器视频编辑器,所有处理都在本地完成,无需上传文件,支持裁剪、剪辑、压缩、水印、字幕和多轨编辑。
Show HN: OpenBrief – 本地优先的视频下载与摘要工具
OpenBrief 是一款开源桌面应用,让用户下载视频、转录音频、生成有依据的摘要,以及与媒体内容对话,所有操作都在本地计算机上进行。
Show HN: 学术论文版 TikTok
Papel 是一个以研究为导向的新型社交平台,利用 AI 驱动的向量搜索和设备端 RAG,帮助研究人员发现、讨论学术论文并进行自我测验。它提供个性化信息流、通过 Apple Intelligence 或 MLX 进行本地 AI 聊天,以及游戏化学习功能。
yt-dlp/yt-dlp
yt-dlp 是一个功能丰富的命令行音视频下载器,支持数千个网站,从 youtube-dl 分支而来。
@noahduck283: 可以下载任何 YouTube 视频、干净地去除人声、进行转录、翻译成 100 多种语言、克隆原声并完成全自动配音的工具。全程不到 2 分钟。100% 本地运行。免费 把六个顶级开源模型缝进了一个网页"一键下载、去人声、转录、翻译、配音"的…
Voice-Pro 是一个整合了六个顶级开源模型(Whisper、Demucs、CosyVoice、F5-TTS 等)的网页工具,支持 YouTube 视频下载、去人声、转录、翻译、语音克隆和全自动配音,全程不到2分钟,100%本地运行且免费。