起因是最近秋促,把战锤 40K 星际战士 2 打通关了,我儿子也抽空看了一下,说咦这大汉怎么和我几个乐高的小人那么像。我让他翻出来一看,嚯他上哪买的一套蓝色极限战士。但我问他这小人有什么背景故事,他又说不上来,于是我想找背景故事给他科普一下。看书是不可能看的了,我也不想让他从短视频里看,那么听书似乎就是个很好的办法。最近我和儿子一起睡,正好睡前可以和他慢慢听一点,培养他对长篇故事的兴趣。
管子和 B站里有个频道叫达奇上校的,战锤系列说得很好,而且视频画面都是可有可无,把节目下成音频,做睡前故事也挺不错。
问题来了,这个系列一百三十多集,我挨个下载转成音频很费劲。当然网上也有很多批量工具可以做,但最近和辣个中年男人交流过用 AI 做工具,突发奇想:要么我也啥不做,光用嘴皮子让 AI 给我写个批量下载音频的软件好了,顺便也看看现在 AI 写代码能到什么程度。
我最开始的想法就是:
- 抓取管子的 playlist
- 把里面的视频批量下载并转成 mp3,或者能直接下载成 mp3 最好
于是开干,用的是 Claude + GLM 4.6。
创建项目文件夹,技术选型,写代码完全不用我管了,AI 按照对话一步步帮我完成。这是它写的 README(最初版)。

# 音频抓取器 (Audio Extractor)
一个用于下载YouTube播放列表音频的Windows GUI程序。
## 🚀 快速开始
### 方法1: 使用智能打包 (推荐)
```bash
双击运行: 智能打包.bat
```
这将自动安装依赖并构建EXE文件。
### 方法2: 直接运行源码
```bash
pip install -r requirements.txt
python audio_extractor.py
```
## 📁 项目结构
```
AudioExtractor/
├── audio_extractor.py # 主程序文件
├── version.py # 版本管理
├── logger.py # 日志系统
├── cookie_manager.py # Cookie管理器
├── requirements.txt # 依赖列表
├── icon.ico # 程序图标
├── 智能打包.bat # 构建脚本 (推荐使用)
├── README.md # 项目说明 (本文件)
├── tools/ # 工具集目录
│ ├── 工具集.bat # 工具集启动器
│ ├── 智能打包.bat # 构建脚本备份
│ ├── Cookie修复工具.bat # Cookie修复工具
│ └── [其他测试和调试工具]
├── docs/ # 文档目录
│ ├── 使用指南.md
│ ├── Cookie使用指南.md
│ ├── VERSION_HISTORY.md
│ └── [其他文档]
└── tests/ # 测试目录 (可扩展)
```
## 🛠️ 工具使用
所有测试和调试工具已移动到 `tools/` 目录,使用以下方式访问:
1. **工具集启动器**: 双击 `tools/工具集.bat`
2. **直接访问**: 进入 `tools/` 目录找到对应工具
### 常用工具
- `智能打包.bat` - 构建程序包
- `Cookie修复工具.bat` - 修复Cookie问题
- `验证语法.bat` - 验证程序语法
- `分析日志.bat` - 分析运行日志
## 🍪 Cookie配置
程序支持多种Cookie配置方式:
1. **内置设置界面**: 程序启动后点击"Cookie设置"按钮
2. **手动配置**: 使用 `tools/Cookie修复工具.bat`
## 📖 详细文档
详细使用指南和故障排除请查看 `docs/` 目录:
- `docs/使用指南.md` - 完整使用指南
- `docs/Cookie使用指南.md` - Cookie配置详解
- `docs/VERSION_HISTORY.md` - 版本历史
## 🔧 系统要求
- Windows 10/11
- Python 3.7+ (仅开发时需要)
- 网络连接
## 📝 版本信息
当前版本: 查看 `version.py`
## 🆘 常见问题
### 下载失败/机器人检测
- 使用 `tools/Cookie修复工具.bat` 配置Cookie
- 查看日志文件了解详细错误
### 程序无法启动
- 运行 `tools/验证语法.bat` 检查语法
- 查看 `audio_extractor_log.txt` 日志文件
## 📞 支持
如遇问题,请查看 `docs/` 目录中的相关文档或使用 `tools/` 目录中的调试工具。
## 技术栈 Tech Stack
- **Python 3.7+**
- **tkinter** - GUI界面
- **yt-dlp** - YouTube视频下载
- **PyInstaller** - 打包成EXE
## 注意事项 Notes
- 需要稳定的网络连接 Requires stable internet connection
- 确保有足够的磁盘空间 Ensure enough disk space
- 下载速度取决于网络状况和YouTube服务器
- 请遵守YouTube的服务条款和版权法律 Please follow YouTube's ToS and copyright laws
## 系统要求 System Requirements
- Windows 7/8/10/11
- 网络连接 Internet connection
- 约50MB磁盘空间 ~50MB disk space
## 作者 Author
BeckMint
## 许可证 License
仅供学习交流使用 For educational and personal use only
---
**音频抓取器 - 让音乐触手可及!**
**Audio Extractor - Music at your fingertips!** 🎶虽然这是经过我不断测试,不断提出迭代意见,最后可用的程序的文档,但也不得不说,但凡没开发过程序,是写不了这么全的。
AI 根据对话了解的需求,选择用 yt-dlp 做程序内核,一开始只支持管子的内容抓取,但经常玩管子抓取的应该知道,咕噜咕噜对机器人的检测策略加强有一段时间了。要绕过或者伪装成真人,需要调用浏览器 Cookie 才可以,所以 yt-dlp 本身也建议 Cookie 的调用,那么我也让软件做了个设置中心,填入 Cookie 信息。但是效果嘛,可以看日志的红色部分,成功率还是一般。
更新了好几版都不成功后,我开始有些疲劳,干脆让程序增加支持 bilibili 算了,反正我要抓的内容在 b站也有,而且 yt-dlp 也支持。
弄完后,我又觉得软件 UI 有点太简陋了,让 AI 用 Electron 重构一遍好了,并且把 Cookie 设置这个暂时用不上的功能去掉。
然后我在初始项目时还留了一个心机,因为是尝鲜式的做一个软件,最终会写成文章,所以我让 AI 不断更新项目里的一个 txt,把我和它交流的过程以对话的形式留存下来。里面有能 get 到我的想法的瞬间,也有迭代几版都来回修改一个功能的无厘头过程,就当是凑字数了。
从发起项目到现在大概花了六七个小时吧。从能完成一个场景需求的结果来说,这个程序还算是达到目的了,虽然我直接使用 yt-dlp 也能抓到一样的结果,但这是 AI 经过一定的对话,一步步理解用户意图而开发(打包)的「软件」,对于我一个不愿意碰代码的人来说还是有点小兴奋的。但又感觉到这只是一个利用开源项目重新打包的一个实例,并没有太多创新性。
这个过程中,我在不断怀疑自己的语言能力,是否有把完整意图传达给 AI 的同时,又不断在想为什么一个按钮在每次迭代时的一致性,这样简单的需求 AI 都无法做到标准之上,实在让我有点小崩溃。
但总体而言,和 AI 交流并生产出成果,这也是一个不错的开拓思维的方式,有条件的可以试试。
PS. 因为是 AI 生成的,不确定有没啥重大 bug 或者代码的协议问题,内容生产者也很辛苦希望大家多在官方发布渠道支持,我就不把源码放出来了。
