Skill: fang232629/video-note-maker (version 1.0.0)

# video-note-maker - 视频转笔记完整流程工具 **功能**：完整的视频转笔记工作流程 - 提取音频 → 分割 → 转写 → 整理笔记 → 发送邮件通知 **触发场景**： - 用户需要完整的视频转笔记流程 - 用户要求"帮我转写视频：xxx" - 用户要求"帮我整理视频笔记：xxx"（如果有转录文件） --- ## 📋 完整工作流程 ### 步骤 1：文件结构预览与确认 ```bash python video_note_maker.py <视频路径> ``` **输出预览**： ``` ============================================================ 🎬 视频转笔记完整流程 ============================================================ 功能：提取音频 → 分割 → 转写 → 整理笔记 → 发送邮件通知 ============================================================ ✅ 找到 1 个视频文件 ============================================================ 📁 文件结构预览（以第一个视频为例） ============================================================ 原视频目录/ ├── 7 - OSPF 外部路由.mp4 ├── tmp/ # 临时文件（包含中间文件） │ └── 7 - OSPF 外部路由/ │ ├── audio.m4a # 提取的音频 │ ├── segment_000.m4a # 分割后的音频段 (15 分钟/段) │ ├── segment_001.m4a │ └── ... └── done/ # 最终笔记目录 └── 7 - OSPF 外部路由.md # 详细笔记 └── 7 - OSPF 外部路由_学习笔记_整理版.md # 整理版笔记 ============================================================ 是否开始处理？(y/n): _ ``` **用户确认**： - 输入 `y`/`yes`/`是` → 开始处理 ✅ - 输入其他 → 取消处理 ❌ --- ### 步骤 2：提取音频 ``` [1/5] 提取音频：/home/fangjinan/视频/HCIP/7 - OSPF 外部路由.mp4 ✅ 音频已提取：/home/fangjinan/视频/HCIP/tmp/7 - OSPF 外部路由/audio.m4a 💡 使用 AAC 编码，文件大小约为 PCM_WAV 的 1/10 ``` --- ### 步骤 3：分割音频 ``` [2/5] 分割音频：audio.m4a ✅ 音频已分割为 6 段（每段 15 分钟） ``` **分割策略**： - 每段时长：15 分钟（可配置 `--segment-duration`） - 音频格式：AAC (`.m4a`) - 比特率：128k --- ### 步骤 4：Whisper 转写 ``` [3/5] 逐段转写... 转写第 1/6 段... 转写第 2/6 段... ... ✅ 所有段落转写完成 📝 转录文本已保存：transcript_000.txt, transcript_001.txt, ... ``` **转写配置**： - Whisper 模型：`small` (~70MB) - 语言：中文 (`zh`) - 输出格式：`.txt` --- ### 步骤 5：生成详细笔记 ``` [4/5] 生成详细笔记... ✅ 笔记已保存：done/7 - OSPF 外部路由.md 总字数：XXXX 字 ``` --- ### 步骤 6：整理 MD 并发送邮件（自动） ``` [5/5] 整理笔记并发送邮件通知... ============================================================ 📝 视频笔记整理工具 ============================================================ 📁 读取转录文件：/home/fangjinan/视频/HCIP/tmp/7 - OSPF 外部路由 ✅ 找到 6 个转录文件 🎬 视频时长：1 小时 30 分钟 🔧 整理内容中... 📄 生成 Markdown 文件... ✅ 整理版笔记已保存：/home/fangjinan/视频/HCIP/done/7 - OSPF 外部路由_学习笔记_整理版.md 📧 发送完成通知到你的 QQ 邮箱... ✅ 邮件已发送 ============================================================ 🎉 整理完成！ ============================================================ ``` --- ## 📧 邮件通知配置 ### 邮件标题格式 ``` 视频（{视频名}）笔记整理完成 - 虾妹 ``` **示例**： - `视频（7 - OSPF 外部路由）笔记整理完成 - 虾妹` - `视频（6 - 域间防环机制、虚链路）笔记整理完成 - 虾妹` ### 邮件正文内容 ``` 视频笔记整理任务已完成！ --- 📋 任务详情 视频：{视频完整路径} 整理时间：2026 年 04 月 10 日 12:30 笔记文件：{output_path} 文件大小：{file_size} 字节 --- ✅ 使用的技能 - video-note-organizer ✅ 使用的工具 - ffmpeg (音频提取/分割) - Whisper (语音转文字) - qwen3.5-plus (AI 整理归纳) --- 📁 文件路径 转录文件：tmp/{视频名}/transcript_*.txt 最终笔记：{output_path} --- 整理完成！虾妹可以继续处理下一个任务～ 🦐 ``` ### 配置信息 | 项目 | 值 | |------|------| | **收件人** | 用户配置的邮箱 | | **发件服务器** | `smtp.qq.com:465` | | **收件服务器** | `imap.qq.com:993` | | **环境变量** | `QQMAIL_USER`, `QQMAIL_AUTH_CODE` | --- ## 🎯 使用示例 ### 方式 1：单个视频处理（带确认） ```bash python video_note_maker.py "/path/to/video.mp4" ``` **流程**： 1. 显示文件结构预览 2. 询问用户确认 3. 用户输入 `y` 开始处理 4. 完整流程执行 5. 自动发送邮件通知 --- ### 方式 2：单个视频处理（自动模式） ```bash python video_note_maker.py "/path/to/video.mp4" --auto ``` **特点**： - 跳过确认步骤 - 直接开始处理 --- ### 方式 3：指定视频时长 ```bash python video_note_maker.py "/path/to/video.mp4" --auto --duration "1 小时 30 分钟" ``` **用途**： - 如果自动估算时长不准确 - 可以手动指定实际时长 --- ### 方式 4：指定分割时长（10 分钟一段） ```bash python video_note_maker.py "/path/to/video.mp4" --auto --segment-duration 600 ``` **配置**： - 默认：15 分钟（900 秒） - 用户偏好：10 分钟（600 秒） --- ## ⚙️ 配置文件 ### CONFIG 配置项 ```python CONFIG = { "whisper_model": "small", # Whisper 模型 "language": "zh", # 转写语言 "segment_duration": 900, # 分割时长（秒） "audio_quality": { "sample_rate": 44100, # 采样率 "channels": 2, # 声道数 "codec": "aac", # 音频编码 "bitrate": "128k", # 比特率 }, "temp_dir": "tmp", # 临时目录 "output_dir": "done", # 输出目录 "feishu_webhook": os.environ.get("FEISHU_WEBHOOK", ""), # 飞书 webhook "detailed_mode": True, # 详细笔记模式 "max_retries": 3, # 最大重试次数 "retry_delay": 5, # 重试延迟（秒） } ``` --- ## 📁 文件结构 ### 输入 ``` /home/fangjinan/视频/HCIP/ └── 7 - OSPF 外部路由.mp4 # 原始视频文件 ``` ### 输出 ``` /home/fangjinan/视频/HCIP/ ├── tmp/ │ └── 7 - OSPF 外部路由/ │ ├── audio.m4a # 提取的音频 │ ├── segment_000.m4a # 分割音频段 │ ├── segment_001.m4a │ ├── transcript_000.txt # 转写文本 │ ├── transcript_001.txt │ └── ... └── done/ ├── 7 - OSPF 外部路由.md # 详细笔记 └── 7 - OSPF 外部路由_学习笔记_整理版.md # 整理版笔记 ``` --- ## ⚠️ 注意事项 1. **文件路径**：确保视频文件路径正确 2. **QQ Mail 配置**：确保 `QQMAIL_USER`和`QQMAIL_AUTH_CODE`环境变量已设置 3. **飞书通知**：配置 `FEISHU_WEBHOOK` 可实现实时进度推送 4. **超时设置**：转写时间取决于视频时长，可能需要 30 分钟以上 5. **临时文件**：处理完成后会自动清理 `tmp` 目录 --- ## 📊 性能预估 | 视频时长 | 音频段数 | 预计时间 | |----------|----------|----------| | 30 分钟 | 2 段 | ~15 分钟 | | 1 小时 | 4 段 | ~30 分钟 | | 2 小时 | 8 段 | ~60 分钟 | | 3 小时 | 12 段 | ~90 分钟 | **时间构成**： - 提取音频：1-2 分钟 - 分割音频：1-2 分钟 - Whisper 转写：每段 ~5-8 分钟 - 生成笔记：1-2 分钟 --- ## 🎉 更新日志 ### 2026-04-10（今日更新） - **12:46**：完全整合 `video-note-organizer`，删除该技能目录 - 将 `organize_note.py` 的整理逻辑内嵌到 `video_note_maker.py` - 添加了 5 个内嵌函数：`read_transcripts()`, `organize_content()`, `generate_markdown()`, `send_email_notification()`, `organize_and_email()` - 删除了整个 `video-note-organizer` 技能目录 - 实现了真正的完整流程：视频 → 音频 → 转写 → 详细笔记 → 整理版笔记 → 邮件通知 - **12:46**：修复文件路径问题 - 解决了同名目录和文件冲突（如 `7 - OSPF 外部路由.mp4/` 和 `7 - OSPF 外部路由.mp4`） - 添加了对 `tmp/xxx/` 转录目录的直接调用支持 - **12:42**：合并 `video-note-organizer`，实现完整流程自动化 - 修改主流程：在转写完成后自动调用整理功能 - 简化了邮件发送逻辑（不再包含 MD 内容，改为附件形式） - **12:40**：添加文件结构预览和用户确认功能 - 处理前展示 `tmp/` 和 `done/` 目录结构 - 询问用户确认后再开始处理 - **12:30**：集成 QQ Mail 邮件通知功能 - 自动发送整理完成通知到 `[REDACTED_SECRET]` - 标题格式：`视频（{视频名}）笔记整理完成 - 虾妹` ### 2026-03-29 - **09:25**：添加文件结构预览功能 - **00:00**：技能初始创建 --- *最后更新：2026 年 04 月 10 日 12:46*


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)