本文中的Python代码由ChatGPT生成。经本人多次调教,终成本版。
需求/最终效果
- 批量检测音频文件的MD5值
- 有重复的,高亮显示
- 按照文件的创建时间检测,先检测创建时间最早的
- 所有MD5一致的文件中,除了创建时间最早的外,均被视为「重复」
- 可删除重复文件
界面截图


所需环境/工具/库
- Python
- ffmpeg
- mutagen
调教过程
实际共调教、测试数十次。下表仅展示相对重要项。
调教前 | 调教后 |
---|---|
检测包括元数据在内的文件的MD5 | 仅检测音轨内容(不包标题、艺术家等含元数据);但不修改原始文件 |
没有提示哪些文件是重复的 | 高亮显示重复的文件;并且可批量删除这些文件,仅保留创建时间最早者 |
文件多了可能会卡住、提示未响应 | 多线程处理 |
仅在状态栏中提示了正在处理的文件,且文件名与MD5值未分列 | 显示所有被检测的文件,并且文件名与MD5值分列展示 |
增加「仅查看重复项」的复选框。 | |
列表中仅显示文件名及MD5值 | 在列表中增加「标题」「参与创作的艺术家」「唱片集」「比特率」元数据 |
正在检测时,列表中无内容 | 正在检测时,实时显示已检测的文件的信息 |
未展示竖向滚动条 | 列表中文件数量多时,展示竖向滚动条 |
未显示文件数量 | 检测任务完成后,显示总文件数量和重复的文件数量 |
增加「创建时间」一列 ,并增加排序功能 |
本人与ChatGPT的聊天记录:
- https://chatgpt.com/share/68528fbd-b224-8009-b441-08094015a286
- https://chatgpt.com/share/68529011-f114-8009-8cda-7a6e7b3f29af
更多截图:

按照创建时间检测
完整Python代码
新版(调整布局、避免闪烁等):
该版本360可能会阻止filedialog.askdirectory()
弹窗(即点击「浏览」无法弹出对话框),但键入路径也可使用,不影响检测MD5的功能。
非新版:
不去除标签(元数据)检测:
把原有的def md5_of_audio(self, filepath)及其内容(共约10余行)替换为以下内容即可。优点是速度极快,但去重效果不佳。
打包为可执行文件
在.py所在的文件夹的地址栏覆盖输入cmd后回车,键入以下命令(选其一)。
方法A——追求打开时的效率,但多文件
pyinstaller --windowed MP3_MD5.py
生成的结构:
📂 dist
└── 📂
├── MP3_MD5.exe ← 主程序
├── ffmpeg.exe ← 手动复制过来(必须)
├── mutagen/… ← 自动打包
├── 所需的DLL等支持库
方法B——仅主程序和FFmpeg,打开效率中等
打包后,同样需要手动复制ffmpeg.exe到主程序所在目录。
pyinstaller --onefile --windowed MP3MD5.py
方法C——仅一个exe文件,但打开效率最慢
提示:该方法还需提前在调用 ffmpeg 的地方使用。本人未测试成功。
点击展开
1、在调用 ffmpeg 的地方使用:ffmpeg = get_ffmpeg_path()
subprocess.run([ffmpeg, "-version"])
2、将以下代码插入至py文件,大约第9行。
3、使用以下命令打包:
pyinstaller --onefile --windowed --add-binary "ffmpeg.exe;." MP3MD5.py
第三方工具或库的解释
ffmpeg
须利用ffmpeg的如下命令将 MP3 转为无标签的音频数据:
ffmpeg -y -i input.mp3 -vn -f wav output.wav
不依赖它就无法提取音频、也无法保证 MD5 是“音频一致性”的标志。
官方网站:https://ffmpeg.org/download.html(如需在此处下载,选择release full的压缩包)
- 访问:https://www.123912.com/s/iJ9WTd-HcRmH,下载其中的3个exe
- 配置环境变量:
- 在“系统变量”中找到
Path
,点击编辑、新建,添加bin的路径(标准做法,但本人测试未成功) - 将三个exe放置于:
C:\windows\
(该方法测试成功)
- 在“系统变量”中找到
- 测试
- CMD中运行:
ffmpeg -version
,若有正确输出,则代表成功。
- CMD中运行:
mutagen(为读取音频文件的元数据)
mutagen 是 Python 里一个非常流行的音频标签处理库,专门用来读写各种音频文件的元数据(标签),比如 MP3、FLAC、MP4、OGG 等格式。
使用以下命令安装

注释
- MD5:属于哈希的一种,计算速度最快。
成品工具
- https://www.123912.com/s/iJ9WTd-acRmH(多文件版压缩包,推荐)