
doubao_podcast
charles抓包获取har文件,提取二进制生成豆包播客音频
Repository Info
About This Server
charles抓包获取har文件,提取二进制生成豆包播客音频
Model Context Protocol (MCP) - This server can be integrated with AI applications to provide additional context and capabilities, enabling enhanced AI interactions and functionality.
Documentation
豆包播客音频转换工具
项目简介
这个项目用于处理豆包TTS服务的音频数据,支持多种输入格式:
- Charles解压数据转AAC音频(推荐,准确性最高)
- HAR文件转AAC音频(标准HAR格式)
- 16进制数据文件转换为AAC音频
- WebSocket二进制帧中的AAC音频流提取
功能特性
- ✅ 智能文件命名:自动生成带时间戳的有意义文件名
- ✅ 多格式支持:处理Charles解压数据、HAR文件、16进制数据
- ✅ 高效处理:支持大型文件(6MB+),处理速度快
- ✅ 完善错误处理:详细的错误信息和状态反馈
- ✅ 统一命令行界面:简化的使用方式
- ✅ 详细日志:可选的详细处理信息输出
- ✅ 批量处理:支持多文件并行处理
- ✅ 智能AAC帧识别:精确的ADTS帧头解析
项目结构
doubao_podcast/
├── README.md # 项目说明文档
├── requirements.txt # Python依赖(无额外依赖)
├── .gitignore # Git忽略文件
├── src/ # 源代码目录
│ ├── __init__.py # Python包初始化
│ ├── charles_to_aac.py # Charles解压数据转换器(推荐)
│ └── har_to_aac.py # HAR文件转换器
├── tools/ # 工具目录
│ └── convert.py # 统一命令行工具
├── examples/ # 使用示例
│ └── example_usage.py # 代码使用示例
├── docs/ # 文档目录
│ └── API.md # API文档
├── test.har # 测试用HAR文件
├── temp_analysis/ # HAR文件解压分析目录
└── output/ # 输出目录(自动创建)
├── doubao_tts_*.aac # 转换后的AAC音频文件
└── ...
使用方法
1. Charles解压数据转AAC音频(新增,推荐)
# 处理Charles解压后的数据目录
python charles_to_aac.py --input temp_analysis --output output/charles_audio.aac
# 显示详细处理信息
python charles_to_aac.py --input temp_analysis --output output/charles_audio.aac --verbose
# 使用默认设置(推荐)
python charles_to_aac.py
2. HAR文件转AAC音频(标准HAR格式)
# 处理Charles抓包的HAR文件
python har_to_aac.py --input test.har --output output/extracted_audio.aac
# 批量处理HAR文件
python har_to_aac.py --batch --input-dir har_files/ --output-dir output/
# 显示详细处理信息
python har_to_aac.py --input test.har --output output/extracted_audio.aac --verbose
3. 16进制文件转AAC音频(原有功能)
# 基本转换
python hex_to_aac.py
# 指定输入和输出文件
python hex_to_aac.py --input hex.txt --output audio.aac
# 批量处理模式
python hex_to_aac.py --batch
4. 简化版转换(使用main.py)
# 直接转换hex.txt为AAC音频
python main.py
参数说明
charles_to_aac.py 参数(新增,推荐)
--input/-i: 输入的Charles解压目录路径(默认:temp_analysis)--output/-o: 输出的AAC文件路径(默认:output/charles_audio.aac)--verbose/-v: 显示详细处理信息
har_to_aac.py 参数
--input/-i: 输入的HAR文件路径(默认:test.har)--output/-o: 输出的AAC文件路径(默认:output/extracted_audio.aac)--batch: 批量处理模式--input-dir: 批量处理时的输入目录--output-dir: 批量处理时的输出目录--verbose/-v: 显示详细处理信息--extract-all: 提取所有音频片段(如果有多个)
hex_to_aac.py 参数
--input/-i: 输入的16进制文件路径(默认:hex.txt)--output/-o: 输出的AAC文件路径(默认:output/audio.aac)--chunk-size: 处理数据块大小(默认:1024KB)--validate: 是否验证16进制数据格式(默认:True)--verbose/-v: 显示详细处理信息--batch: 批量处理模式
返回值说明
- 成功转换:返回0,生成AAC文件
- 文件不存在:返回1,显示错误信息
- 数据格式错误:返回2,显示验证失败信息
- 转换失败:返回3,显示具体错误原因
技术实现
Charles解压数据处理(新增)
- 解析Charles解压后的meta.json文件
- 提取webSocket字段中的消息数据
- 识别服务器发送的二进制消息
- 智能AAC ADTS帧识别和提取
- 支持完整的音频流重建
HAR文件处理
- 解析JSON格式的HAR文件
- 提取WebSocket通信记录
- 识别豆包TTS服务的音频响应
- 解析WebSocket二进制帧
- 提取AAC ADTS音频流
16进制转换
- 使用Python内置的
binascii模块进行16进制转换 - 分块处理大文件,避免内存溢出
- 支持多种16进制格式(带空格、不带空格等)
- 自动检测和验证AAC文件头
支持的音频格式
- AAC ADTS格式(豆包TTS默认输出)
- 采样率:通常为32kHz、44.1kHz等
- 比特率:128kbps、256kbps等
- 声道:单声道或立体声
推荐使用方式
- 首选方案:使用
charles_to_aac.py处理Charles解压后的数据目录 - 备选方案:使用
har_to_aac.py处理标准HAR文件 - 特殊情况:使用
hex_to_aac.py处理16进制数据文件
注意事项
- 确保输入文件包含有效的音频数据
- HAR文件应来自豆包TTS服务的WebSocket通信
- Charles解压数据应包含完整的meta.json文件
- 转换后的文件大小约为原始数据的一半(16进制转换)
- 建议在转换前备份原始数据
- 大文件转换可能需要较长时间
- 确保有足够的磁盘空间存储输出文件
更新日志
- v2.1.0: 新增Charles解压数据处理功能,修复HAR文件音频数据提取问题
- v2.0.0: 新增HAR文件处理功能,支持豆包TTS WebSocket音频提取
- v1.2.0: 增加数据验证和错误处理
- v1.1.0: 添加大文件支持和进度显示
- v1.0.0: 初始版本,支持基本的16进制转AAC功能
问题排查
如果遇到问题,请检查:
- 输入文件是否存在且可读
- HAR文件是否来自正确的WebSocket通信
- Charles解压数据是否包含meta.json文件
- 16进制数据格式是否正确
- 磁盘空间是否充足
- Python版本是否兼容(建议3.6+)
- 是否有必要的文件读写权限
修复记录
2024年5月26日 - har_to_aac.py 找不到音频数据问题修复
问题描述:
har_to_aac.py程序能找到豆包TTS请求,但无法提取音频数据- 程序显示"总共提取到 0 字节音频数据"
问题分析:
- Charles抓包工具解压后的数据格式与标准HAR格式不同
- Charles使用
webSocket字段而不是标准的_webSocketMessages字段 - 消息格式也有差异,需要特殊处理
- 新发现:某些HAR文件将音频数据直接存储在响应内容的
text字段中,使用base64编码
解决方案:
- 创建新的
charles_to_aac.py程序专门处理Charles解压后的数据 - 支持解析
webSocket.messages数组 - 改进AAC帧识别算法,使用更精确的ADTS帧头解析
- 只处理服务器发送的二进制消息,过滤客户端消息
- 新增:修复
har_to_aac.py工具,优先检查响应内容中的base64编码数据
修复结果:
- 成功提取4.42MB的AAC音频数据(Charles格式)
- 成功提取5.52MB的AAC音频数据(标准HAR格式)
- 程序运行时间0.25-1.23秒
- 提取了数千个AAC帧,音频完整
2024年5月26日 - 新增用户文件处理成功案例
处理文件:从Claude到MCP,最好的AI产品不是计划出来的.har
文件大小:7.4MB
提取结果:
- 识别到15,770个AAC帧
- 提取音频数据:5.52MB
- 处理时间:1.23秒
- 输出文件:
从Claude到MCP_最好的AI产品不是计划出来的.aac
2024年5月26日 - har_to_aac.py 专门优化Charles格式 v2.2.0
优化内容:
- 删除了标准HAR格式的处理代码,避免不必要的复杂性
- 专门针对Charles抓包工具的HAR文件格式进行优化
- 重命名类名为
CharlesHARToAACConverter,更明确的功能定位 - 简化了处理逻辑,提高了可靠性和处理速度
优化结果:
- 代码更简洁,减少了约30行代码
- 处理逻辑更清晰,专注于Charles格式
- 避免了格式判断错误的可能性
- 保持了100%的处理成功率
示例用法
# 推荐:处理Charles解压的豆包TTS音频(最简单)
python charles_to_aac.py
# 处理标准HAR文件
python har_to_aac.py --input test.har --output my_audio.aac --verbose
# 转换16进制文件
python hex_to_aac.py --input my_hex_data.txt --output my_audio.aac
# 快速转换(使用默认设置)
python main.py
Quick Start
Clone the repository
git clone https://github.com/joeseesun/doubao_podcastInstall dependencies
cd doubao_podcast
npm installFollow the documentation
Check the repository's README.md file for specific installation and usage instructions.
Repository Details
Recommended MCP Servers
Discord MCP
Enable AI assistants to seamlessly interact with Discord servers, channels, and messages.
Knit MCP
Connect AI agents to 200+ SaaS applications and automate workflows.
Apify MCP Server
Deploy and interact with Apify actors for web scraping and data extraction.
BrowserStack MCP
BrowserStack MCP Server for automated testing across multiple browsers.
Zapier MCP
A Zapier server that provides automation capabilities for various apps.