Skip to content

About

一个轻量级的本地歌曲元信息(标签)修复工具:读取音频文件的现有元信息,根据歌名/歌手(或文件名) 从 网易云音乐 / iTunes / MusicBrainz 搜索完整元信息写回文件。

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

SongMetaFixer · 歌曲元信息修复器

License Python UI

一个轻量级的本地歌曲元信息(标签)修复工具:读取音频文件的现有元信息,根据歌名/歌手(或文件名) 从 网易云音乐 / iTunes / MusicBrainz 搜索完整元信息,由你勾选要写入的字段后写回文件。

基于 Python + PySide6(Qt6),原生支持高 DPI 缩放(高分屏下文字清晰不模糊); 标签读写由仓库自带的 tag_engine.py(纯 Python 标准库、MIT License)完成,

界面截图

功能特性

  • 选择单个音频文件或整个文件夹(递归扫描)
  • 左侧展示当前文件的元信息:标题、艺术家、专辑、专辑艺术家、年份、音轨号、风格、封面
  • 选中文件后自动按现有信息搜索,可手动修改关键词或切换数据源
  • 右侧列出多条候选结果(标题/艺术家/专辑/年份/来源),选择后自动获取详情与封面并预览
  • 勾选要写入的字段(可手动微调),一键写回;默认写入前备份为 xxx.bak
  • 「写入并跳转到下一首 ▸」支持批量修复:写入后自动选中并搜索下一首
  • 写入过程零额外网络请求:只使用已获取的信息,封面缺失时自动降级、不中断写入
  • 自动搜索被平台限速时仅提示、不弹窗打断批量流程

支持的格式

格式 读取 写入
MP3 / TTA(ID3v2) ✔ ✔
WAV / AIFF(ID3v2 子块) ✔ ✔
FLAC(VORBIS_COMMENT + PICTURE) ✔ ✔
M4A / MP4(moov > udta > meta > ilst) ✔ ✔
Ogg Vorbis / Opus(VorbisComment) ✔ ✔
Ogg FLAC(.oga) ✔ ✔
WMA(ASF) ✔ ✔
APE / WV / MPC(APEv2) ✔ ✔(仅文本字段)
AAC / DSF 等 ✔ ✘

WAV 说明:Windows 资源管理器读取 WAV 时优先使用 RIFF INFO 块(并按系统代码页解码), 程序写入标签时会同步更新 INFO 块,避免出现旧标题(如 ?Dee)覆盖新标签的情况; 其中无法在系统代码页中正常显示的字符(如片假名中点 ・)会替换为视觉相近的 ·, 而 ID3v2 标签内始终保留原始字符。

Ogg FLAC 说明:封面图以 VorbisComment 的 METADATA_BLOCK_PICTURE 形式写入, 兼容主流播放器;WMA 封面以标准的 WM/Picture 属性写入。

快速开始

从源码运行

需要 Python 3.9+。

pip install -r requirements.txt
python song_meta_fixer.py

Windows 下也可直接双击 start.bat。

打包为 exe

dist/ 为本地构建产物,不纳入源码仓库。如需发布单文件免安装版(内置 Python 运行时与 依赖库,双击即用),请先安装 PyInstaller:

pip install pyinstaller

# 方式一:精简版 spec(推荐,约 28 MB)
pyinstaller --noconfirm --clean SongMetaFixer.spec

# 方式二:命令行直接打包(体积较大,约 48 MB)
pyinstaller --noconfirm --onefile --windowed --name SongMetaFixer \
  --icon logo.ico --add-data "logo.ico;." \
  --exclude-module numpy --exclude-module cryptography song_meta_fixer.py

精简版 spec 会剔除未使用的 Qt 模块(QML/Quick/Pdf/Network/OpenGL 等)与多余插件/翻译, 仅保留运行必需的 QtCore/Gui/Widgets 和 qwindows/qjpeg/qico 等插件。

使用说明

  1. 点击 选择文件… 或 选择文件夹… 载入歌曲。
  2. 在左侧文件列表中点击歌曲,左侧下方显示其当前元信息,右侧自动发起搜索。
  3. 在右侧候选结果中选中一条(数据源可在下拉框切换:自动(网易云优先)/ 网易云音乐 / iTunes / MusicBrainz)。
  4. 勾选要写入的字段(可手动修改),默认勾选「写入封面图」与「写入前备份为 .bak」。
  5. 点击 写入所选字段 完成修复;批量处理请用 写入并跳转到下一首 ▸。

数据源与合规

数据源 类型 说明
网易云音乐 社区逆向的公开网页接口 无需登录;结果可能混有翻唱/用户上传内容,且接口随时可能变动
iTunes Search API Apple 官方公开接口 无需密钥,欧美/港台曲库质量高
MusicBrainz 开放音乐数据库 API 请求附带应用标识,请遵守其使用条款

以上接口仅用于查询公开的歌曲元信息,请仅用于修复你拥有合法权利的文件,并遵守各平台的服务条款。

项目结构

.
├── song_meta_fixer.py      # 主程序(核心逻辑 + PySide6 界面)
├── tag_engine.py           # 音频标签读写引擎(纯 Python 标准库,MIT)
├── SongMetaFixer.spec      # PyInstaller 精简打包配置
├── requirements.txt        # 依赖:PySide6 / requests
├── start.bat               # Windows 启动脚本
├── logo.ico                # 程序图标
├── LICENSE                 # MIT 许可证(源码)
├── THIRD_PARTY_NOTICES.md  # 第三方依赖许可说明
└── docs/
    └── screenshot.png      # 界面截图

隐私说明

本程序不收集、不上传任何个人文件或本地音乐数据;所有网络请求仅用于搜索公开的歌曲元信息 (网易云搜索/详情、iTunes Search、MusicBrainz)与下载专辑封面图。

常见问题

  • 写入提示「暂不支持写回该格式」:该格式(如裸 AAC/DSF)不支持写标签,请转换为 MP3/FLAC/M4A。
  • 搜索没有结果 / 提示「被平台限速」:平台接口有限速,自动搜索失败仅提示、不中断批量流程; 可稍候重试,或切换数据源(iTunes/MusicBrainz)、修改关键词。
  • 写入时会不会再次请求网络? 不会。写入只使用已获取的信息(文本来自搜索结果、封面来自已下载 缓存或已知封面地址),封面缺失时仅跳过并提示,不中断写入。
  • 写入失败:确认文件未被其他程序占用;如已生成 .bak,可用备份还原。
  • 为什么不用 mutagen? mutagen 是 GPL 许可证,打包进 exe 会带来 GPL 合规负担; 本项目改用自研的 tag_engine.py(MIT),并经过各格式回归验证。

开源许可

免责声明

本工具仅用于学习与修复个人本地音乐文件的元信息,不提供任何在线音乐下载功能; 请遵守各平台的服务条款,仅处理你拥有合法权利的文件。

Copyright © 2026 YuzuBD · cirtuslab

About

一个轻量级的本地歌曲元信息(标签)修复工具:读取音频文件的现有元信息,根据歌名/歌手(或文件名) 从 网易云音乐 / iTunes / MusicBrainz 搜索完整元信息写回文件。

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages