Redacta:借助 GitHub Copilot CLI 提升视频内容
Source: Dev.to
我构建的内容
Redacta 是一个源于特定需求的个人解决方案:希望重新获取被音频和视频格式锁住的知识。
作为一个拥有强大视觉记忆的人,我一直发现阅读远比观看视频或收听播客更有效。当我能在页面上看到文字时,短语和图像更容易在脑中留下印象。我可以快速扫视文本以找到概念,刷新对特定章节的记忆,或迅速识别段落的核心信息。
然而,世界上充斥着通过视频和音频传递的精彩内容。不幸的是,我常常觉得自己没有充分利用这些内容,因为它们没有文字记录。视频内部搜索非常痛苦,而想要重新观看某个特定的播客集几乎是不可能的。
我尝试过阅读原始转录文本,但它们往往难以阅读——尤其是 YouTube 自动生成的字幕,缺少标点、格式和合理的结构。
Redacta 正是为了解决这些问题而构建的。它接受原始转录文本,并利用 GitHub Copilot 与大型语言模型(LLM)的强大能力,将其转化为一份经过良好编辑、标点完整且严格忠实于原始内容的文档。
自诞生以来,我已将 Redacta 扩展为:
- 为文本配图 – 自动添加图片和示意图,以帮助视觉学习。
- 生成摘要和帖子 – 创建不同格式的内容,适用于快速阅读或深入学习。
- 突破语言障碍 – 将内容翻译成其他语言,让我能够获取原本用我不熟练的语言分享的知识。
Redacta 不仅是一个工具,它是连接庞大的视频/音频内容世界与我大脑实际处理知识方式的桥梁。
核心能力
| 能力 | 描述 |
|---|---|
| Semantic Redaction | 将支离破碎、凌乱的转录文本转化为连贯、结构良好的文档。 |
| Visual Enrichment | 自动插入相关图片和 ASCII 图表,以阐释复杂概念。 |
| Multilingual Intelligence | 无缝处理转录文本并生成多语言输出。 |
| Interactive TUI | 使用 ink 提供美观的实时终端界面,用于监控进度。 |
| Batch Mastery | 一次性高效处理整个转录文件夹。 |
可用命令
| 命令 | 操作 |
|---|---|
--blog | 生成一篇精致的博客文章(_blog.md)。 |
--summary | 创建一份简明的执行摘要(_summary.md)。 |
--language= | 设置目标输出语言。 |
--with-illustration | 添加关键图片和图表以提升清晰度。 |
--with-illustration-all | 深度插图:添加全面的视觉辅助。 |
--directory= | 批量处理文件夹中的所有 .srt 文件。 |
--model= | 选择您偏好的大语言模型。 |
如何使用
安装
npm install -g redacta
配置
export CUSTOM_SEARCH_KEY='your_key'
export CUSTOM_SEARCH_PROJECT='your_id'
使用示例
在特定语言下的基本清理
redacta tutorial.srt --language=spanish
完整转换(博客 + 摘要 + 图表)
redacta lecture.srt --blog --summary --with-illustration-all
提案使用案例
Redacta 不仅用于清理文本;它还能释放您媒体库中的价值。
- 课程加速器 – 学生可以在几分钟内将一个学期的录像讲座转化为结构化、带插图的学习指南。
- 播客内容引擎 – 创作者可以将音频节目转换为符合 SEO 的博客文章和社交媒体摘要,完全无需手动撰写。
- 技术文档 – 工程师可以录制复杂架构的“脑力倾泻”视频,让 Redacta 生成带有图表的格式化技术文档。
- 会议档案员 – 将录制的全体会议或技术同步会转化为可搜索、结构化的摘要,供未能参加的团队成员使用。
- 跨境学习 – 通过翻译和格式化您不懂语言的转录稿,了解全球专家的高质量技术内容。
演示
要看到 Redacta 的实际效果,让我们来看两个截然不同的场景,展示它的多功能性。
1. 高层次技术教育
第一个示例是 Andrej Karpathy 关于大型语言模型的技术演讲。
Source: Intro to Large Language Models by Andrej Karpathy.
Command
node ./dist/bin/redacta.js ./examples/Intro_Large_Language_Model_LLM_talk.srt \
--with-illustration --blog
对于技术内容,Redacta 注重结构清晰和视觉辅助。它不仅仅是清理文本;还会识别核心架构概念并生成 ASCII 图表,以弥合口头表达与视觉理解之间的差距。
生成的片段(知识支架)
大型语言模型仅由两个文件组成。例如:Llama 2 70B 模型。它包括参数文件(权重)和运行文件(代码)。
+---------------------+ uses +---------------------+
| |----------------------->| |
| PARAMETERS FILE | | RUN FILE |
| (140GB, float16 | | (C/Python code, |
| weights) | | ~500 lines) |
| | | |
+---------------------+ +---------------------+
生成的输出
- 格式化文本: Intro_Large_Language_Model_LLM_talk_formatted.md
- 博客文章: Intro_Large_Language_Model_LLM_talk_blog.md
2. 艺术史与分析(多语言)
Source: Las 5 alegorías (Analysis of Baroque Art)
Command
node ./dist/bin/redacta.js ./examples/analisis_de_las_5_alegorias.srt \
--with-illustration --summary --language=English --blog
此示例突出显示了 Redacta 处理跨语言翻译和精准图像插入的能力。该工具将西班牙语讲座翻译成结构化的英文博客文章,并自动找到所讨论的具体名作。
生成的片段(视觉上下文)
Claesz 巧妙地将每种感官编织进构图中:
- 听觉 – 乐器唤起声音的感受。
- 视觉 – 画作本身,以及一面映出酒杯的镜子。

图片:Still Life with Musical Instruments – 1623
Redacta 成功地从转录上下文中识别出特定的画作(Still Life with Musical Instruments),并准确嵌入到描述出现的位置。
生成的输出
- 格式化文本: analisis_de_las_5_alegorias_formatted.md
- 博客文章: analisis_de_las_5_alegorias_blog.md
- 摘要: analisis_de_las_5_alegorias_summary.md
仓库
您可以在此处找到完整项目:
- Redacta –
我使用 GitHub Copilot CLI 的经历
我从第一行代码起就使用 GitHub Copilot CLI。它不仅是一个助手,更是 Redacta 架构之旅中的核心伙伴。
哲学方法 – “先 CLI,后自动化”
我的工作流遵循严格的 CLI‑First 哲学。在编写任何自动化逻辑之前,我先用 Copilot CLI 勾勒 思路:
- 向 CLI 说明高层目标。
- 对建议的项目结构和基础进行迭代。
这避免了过度设计。只有在手动在 CLI 环境中验证了核心逻辑(例如特定提示的输出)后,我才开始编写实际脚本。
使用 GitHub Copilot CLI 的优势
- 迭代式提示工程 – 我可以将原始转录管道输送给 Copilot,应用提示,并在几秒钟内看到结果。如果标点有误,只需调整提示并立即重新运行。
- 零样板原型 – 无需搭建单元测试或完整本地环境,只为验证 LLM 能否完成格式化任务。CLI 充当快速测试的沙箱。
- 上下文感知脚手架 – 当从手动提示转向脚本时,CLI 会读取我的项目文件,建议与现有模式完美契合的自动化逻辑。
与 Copilot SDK 的无缝集成
Copilot SDK 弥合了实验与生产之间的鸿沟。在 CLI 中确定提示后,我通过 SDK 将完全相同的智能嵌入代码中。这种 “复制‑粘贴智能” 方法在将 LLM 集成到代码库时显著缩短了调试时间。
高影响力的改进
随着 Redacta 的成长,CLI 处理了通常会拖慢项目的繁重工作:
- TypeScript 迁移 – 协助将整个代码库从 JavaScript 迁移到 TypeScript,精准地建议类型并处理样板代码。
- 测试套件 – 脚手架了完整的 Vitest 测试套件,确保提示的细化永不破坏核心功能。