起因是最近秋促,把战锤 40K 星际战士 2 打通关了,我儿子也抽空看了一下,说咦这大汉怎么和我几个乐高的小人那么像。我让他翻出来一看,嚯他上哪买的一套蓝色极限战士。但我问他这小人有什么背景故事,他又说不上来,于是我想找背景故事给他科普一下。看书是不可能看的了,我也不想让他从短视频里看,那么听书似乎就是个很好的办法。最近我和儿子一起睡,正好睡前可以和他慢慢听一点,培养他对长篇故事的兴趣。

管子和 B站里有个频道叫达奇上校的,战锤系列说得很好,而且视频画面都是可有可无,把节目下成音频,做睡前故事也挺不错。

问题来了,这个系列一百三十多集,我挨个下载转成音频很费劲。当然网上也有很多批量工具可以做,但最近和辣个中年男人交流过用 AI 做工具,突发奇想:要么我也啥不做,光用嘴皮子让 AI 给我写个批量下载音频的软件好了,顺便也看看现在 AI 写代码能到什么程度。

我最开始的想法就是:

  1. 抓取管子的 playlist
  2. 把里面的视频批量下载并转成 mp3,或者能直接下载成 mp3 最好

于是开干,用的是 Claude + GLM 4.6。

创建项目文件夹,技术选型,写代码完全不用我管了,AI 按照对话一步步帮我完成。这是它写的 README(最初版)。

尝试用 AI 帮我做个抓取音频的电脑软件
# 音频抓取器 (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 也支持。

AI 让人类再次伟大!

弄完后,我又觉得软件 UI 有点太简陋了,让 AI 用 Electron 重构一遍好了,并且把 Cookie 设置这个暂时用不上的功能去掉。

界面简洁多了。

然后我在初始项目时还留了一个心机,因为是尝鲜式的做一个软件,最终会写成文章,所以我让 AI 不断更新项目里的一个 txt,把我和它交流的过程以对话的形式留存下来。里面有能 get 到我的想法的瞬间,也有迭代几版都来回修改一个功能的无厘头过程,就当是凑字数了。

 

从发起项目到现在大概花了六七个小时吧。从能完成一个场景需求的结果来说,这个程序还算是达到目的了,虽然我直接使用 yt-dlp 也能抓到一样的结果,但这是 AI 经过一定的对话,一步步理解用户意图而开发(打包)的「软件」,对于我一个不愿意碰代码的人来说还是有点小兴奋的。但又感觉到这只是一个利用开源项目重新打包的一个实例,并没有太多创新性。

这个过程中,我在不断怀疑自己的语言能力,是否有把完整意图传达给 AI 的同时,又不断在想为什么一个按钮在每次迭代时的一致性,这样简单的需求 AI 都无法做到标准之上,实在让我有点小崩溃。

但总体而言,和 AI 交流并生产出成果,这也是一个不错的开拓思维的方式,有条件的可以试试。

PS. 因为是 AI 生成的,不确定有没啥重大 bug 或者代码的协议问题,内容生产者也很辛苦希望大家多在官方发布渠道支持,我就不把源码放出来了。