master
TypeChange
把音乐库里的音频批量转换为 AAC(.m4a),方便导入 Windows/macOS 的音乐资料库,再同步到手机。
这个仓库做什么
- 扫描
SOURCE_ROOT下的音频文件(默认E:\Music),跳过SKIP_ROOT(默认E:\Music\工具)。 - 用 FFmpeg 转为 AAC(默认
256k),统一输出到OUT_ROOT(默认E:\Music\工具\TypeChange\out)。 - 输出是“扁平目录”:只按文件名保存(不保留原目录结构)。同名会覆盖,脚本会在开始时提示。
- 可选:安装
mutagen后,FLAC 的标签/封面会尽量写入输出的 M4A(也会尝试读取同目录的cover.jpg/folder.jpg等外部封面图)。
准备环境
- Python 3.10+(建议 3.11)。
- FFmpeg
- Windows:仓库自带
ffmpeg-8.0.1-essentials_build/bin/ffmpeg.exe,会自动优先使用。 - macOS:请先安装并保证
ffmpeg在PATH(例如brew install ffmpeg)。
- Windows:仓库自带
- 依赖(可选但推荐):
mutagen(用于更完整保留 FLAC 标签/封面)
安装依赖:
- Windows(PowerShell / CMD):
py -3.11 -m venv .venv.venv\Scripts\python.exe -m pip install -r requirements.txt
- macOS/Linux(终端):
python3 -m venv .venvsource .venv/bin/activatepython -m pip install -r requirements.txt
配置路径(第一次使用必做)
打开 convert.py,修改顶部 3 个常量到你自己的路径:
SOURCE_ROOT:你的音乐源目录(会递归扫描)SKIP_ROOT:需要跳过的目录(建议指向“工具/脚本/输出所在目录”,避免重复扫描)OUT_ROOT:输出目录(生成的.m4a会放这里)
提示:输出目录是可删除的生成物(仓库的 .gitignore 已忽略 out/)。
运行转换
- 直接转换:
- Windows:
.venv\Scripts\python.exe convert.py - macOS/Linux:
python convert.py
- Windows:
- 只补写 FLAC 标签/封面到已生成的输出(不重新转码):
python convert.py --tags-only - 强制把源
.m4a也重新编码为 AAC(默认是直接复制):python convert.py --no-copy-m4a
完成后,去 OUT_ROOT 查看生成的 .m4a 文件。
主要使用流程(转换 → 资料库 → 手机)
下面按“新人一条龙”流程写,照着做就能跑通。
1) 转换(TypeChange)
在存放源音乐的电脑上运行 convert.py,得到一批 .m4a 输出(在 OUT_ROOT)。
2) 同步到 Windows/macOS 音乐资料库(iTunes / 音乐 App)
选择你平时用来管理音乐资料库的电脑(Windows 或 Mac),把 OUT_ROOT 里的 .m4a 同步/拷贝过去(常见方式:移动硬盘、SMB 共享、网盘同步等)。
然后导入到资料库:
- Windows(iTunes):
文件(File) -> 将文件夹添加到资料库(Add Folder to Library),选择同步过来的输出目录- 建议在 iTunes 设置里开启“添加到资料库时复制文件到媒体文件夹”,避免引用路径丢失
- macOS(音乐 App / Music):
文件(File) -> 导入(Import),选择同步过来的输出目录(或直接拖拽文件夹进音乐 App)- 建议在“设置/偏好设置 -> 文件”中开启“添加到资料库时复制文件到媒体文件夹”
如果你需要 Windows 和 Mac 都有同一份音乐:
- 推荐做法:把
OUT_ROOT当作“统一分发目录”,用同步工具把它同步到两台机器,然后分别导入各自的资料库。 - 更高级做法:使用云端音乐资料库(例如 Apple Music/iCloud 音乐资料库)自动在多设备间同步(是否适合取决于你的订阅与设置)。
3) 连接手机并同步到手机
用数据线连接手机到“资料库所在电脑”,再做一次设备同步:
- macOS:在 Finder(或音乐 App)里选择设备,进入“音乐”页,勾选要同步的音乐/歌单,然后点“同步”
- Windows:在 iTunes(或 Apple 设备管理应用)里选择设备,进入“音乐”页,勾选要同步的音乐/歌单,然后点“同步”
注意事项(一定要看)
- 输出是扁平目录:不同专辑/目录里同名文件会互相覆盖;脚本会提示覆盖风险,但不会自动改名。
- 会覆盖已存在的同名输出(FFmpeg 使用
-y)。 - 如果你先没装
mutagen就转换了:安装依赖后可以用--tags-only给 FLAC 输出补写更完整的标签/封面。
Languages
Python
100%