背景
前期我通过与AI协作,解决了长音频本地转换成文本→文本文件调用本地大模型进行自动总结这样的应用场景链路。此前开发的音频转文本工具除了日常的谈话录音、会议录音外,还支持其他类型的音频输入。
现在网络上有很多优质的长访谈视频,但时长通常太长,且访谈过程中会有很多噪音,我们很多时候只需要知道主要内容就可以了,这时候就面临一个问题:该如何获取到这样的音频文件?
我也尝试找了一些网上的资源,但是要么就是年代久远已经失效了,要么就是需要付费,都无法满足我的要求。
所以,我又萌生了自己做一个小工具的想法。
还是和之前的Markdown总结工具开发流程类似,我让AI以访谈的形式来把我的需求调研清楚,形成需求文档,然后将需求文档交给了智谱清言的Agent模式,他做了一些细节的补充和修正,就给我完成了开发。
这是一个非常轻量级的小工具,整个源代码包非常小,Web UI界面如下:
源代码包
音频提取工具介绍及部署
一个基于 Flask 的 Web 应用,支持从 B站 和 抖音 提取视频音频并转换为 MP3 格式。
功能特点
支持 B站 和 抖音 视频链接(包括短链接)
自动提取音频并转换为 MP3 格式
实时显示下载进度
支持多个下载任务并行
动态文件名(根据视频标题命名)
Docker 容器化部署,无需配置本地环境
支持 Cookies 认证(用于需要登录的视频)
快速开始
前置要求
Windows 用户
下载并安装 Docker Desktop
安装完成后启动 Docker Desktop
确保 Docker 正在运行(系统托盘有 Docker 图标)
启动服务
Windows 用户
# 双击运行 start.bat# 或在命令行中执行:start.bat
Linux/Mac 用户
# 添加执行权限chmod+x start.sh# 运行启动脚本./start.sh
手动启动(所有平台)
# 构建并启动docker-compose up -d--build# 查看日志docker-compose logs -f
访问应用
打开浏览器访问:**http://localhost:5000
使用说明
在输入框中粘贴 B站 或 抖音 视频链接
点击"开始提取"按钮
等待下载进度完成
点击"下载文件"按钮保存 MP3 文件
支持的链接格式
| 平台 | 支持的链接格式 |
|---|
| B站 | https://www.bilibili.com/video/BV...https://b23.tv/... |
| 抖音 | https://www.douyin.com/video/...https://v.douyin.com/... |
Cookies 配置(可选但推荐)
如果遇到下载失败的情况(如 HTTP 412 错误),需要配置 Cookies:
如何获取 Cookies
使用浏览器登录 B站 或 抖音
安装浏览器扩展 "Get cookies.txt LOCALLY"(Chrome/Firefox)
在视频页面点击扩展,导出 cookies.txt
将 cookies.txt 文件放在项目根目录下
重启服务:docker-compose restart
Cookies 文件位置
video-audio-tool/├── cookies.txt <-- 放在这里├── app.py├── config.py└── ...
项目结构
video-audio-tool/├── app.py # Flask 主程序├── config.py # 配置文件├── requirements.txt # Python 依赖├── Dockerfile # Docker 镜像构建├── docker-compose.yml # Docker Compose 配置├── start.bat # Windows 启动脚本├── start.sh # Linux/Mac 启动脚本├── README.md # 说明文档├── cookies.txt # Cookies 文件(可选)├── logs/ # 日志目录├── temp_audio/ # 临时文件目录└── templates/ └── index.html # 前端页面
配置说明
编辑 config.py 文件可以修改以下配置:
| 配置项 | 说明 | 默认值 |
|---|
PORT | 服务端口 | 5000 |
DOWNLOAD_TIMEOUT | 下载超时时间(秒) | 300 |
AUDIO_QUALITY | 音频质量(0-9,0最高) | 0 |
LOG_LEVEL | 日志级别 | INFO |
COOKIES_FILE | Cookies 文件路径 | ./cookies.txt |
常用命令
# 启动服务docker-compose up -d# 停止服务docker-compose down# 重启服务docker-compose restart# 查看日志docker-compose logs -f# 重新构建docker-compose up -d--build
注意事项
仅支持公开可访问的视频,需要登录/会员的视频需要配置 Cookies
请勿用于商业用途,尊重版权
下载的音频仅供个人学习使用
部分视频可能因为平台限制无法下载,请尝试配置 Cookies
故障排除
服务无法启动
# 检查端口是否被占用netstat -ano | findstr :5000 # Windowslsof -i :5000 # Linux/Mac# 查看容器日志docker-compose logs
下载失败(HTTP 412 错误)
这是平台反爬虫机制导致的,解决方法:
配置 Cookies 文件(见上方说明)
等待一段时间后重试
尝试不同的视频
下载失败(其他错误)
检查链接是否有效
确认视频是否公开可访问
查看日志文件 logs/app.log 获取详细错误信息
Windows 防火墙提示
首次启动时,Windows 可能会弹出防火墙提示,请点击"允许访问"。
更新 yt-dlp
yt-dlp 需要定期更新以支持最新的视频平台:
# 进入容器更新docker-compose exec video-audio-tool pip install --upgrade yt-dlp# 或者重新构建镜像docker-compose up -d--build
许可证
本项目仅供学习交流使用。