Skip to main content

音乐专辑信息整理工具 - 批量管理音频文件标签

Project description

storytag-tool - 音乐专辑信息整理工具

安装

pip install storytag-tool

命令行参数

storytag [-h] [-s] [-c] [-o FILE] [-f FILE] [--dryrun] [--onebyone] [dir]

positional arguments:
  dir                   音乐目录路径(支持 SMB 挂载路径)

options:
  -h, --help            显示帮助
  -s, --search          启用 MusicBrainz 元数据搜索(默认关闭)
  -c, --check           检查缺少专辑名的目录,输出 md/csv 表
  -o FILE, --output     -c 时指定输出路径(默认 result.md)
  -f FILE, --file       从 md/csv 表读取并应用专辑名修改
  --dryrun              不实际执行文件修改,仅显示预期
  --onebyone           交互模式:逐一处理每个子目录

默认行为:不传任何参数时显示帮助信息。

使用模式

模式1:检查模式(生成 md/csv 表)

扫描目录及其子目录,找出缺少专辑名的目录,输出到 md 或 csv 表供校对修订。

# 检查目录,输出到默认 result.md
storytag -c "Y:/music"

# 输出 CSV 格式
storytag -c "Y:/music" -o "Y:/music/albums.csv"

# 输出 MD 格式
storytag -c "Y:/music" -o "Y:/music/albums.md"

输出的 md 表格式:

本目录名 文件数 有专辑 建议专辑名 本目录所在路径
03. 神探 - 第三季 3 口袋3 Y:/music/03. 神探 - 第三季
03. 神探 - 第二季 1 - Y:/music/03. 神探 - 第二季

CSV 格式:

本目录名,文件数,有专辑,建议专辑名,本目录所在路径
03. 神探 - 第三季,3,是,口袋3,Y:/music/03. 神探 - 第三季
03. 神探 - 第二季,1,否,-,Y:/music/03. 神探 - 第二季
  • 有专辑:前2个文件中都有专辑名则显示"是",否则"否"
  • 建议专辑名:取前2个文件中第一个有专辑名的值,用户可手动修改
  • 排除目录:自动跳过以 @eaDir@ 开头的特殊目录(Synology NAS 索引目录)

模式2:应用模式(从 md/csv 表修改)

读取 md 或 csv 表,对 有专辑=否建议专辑名 有值的目录执行专辑名修改。

# 预览修改(不实际写入)
storytag -f "Y:/music/albums.csv" --dryrun
storytag -f "Y:/music/albums.md" --dryrun

# 执行修改
storytag -f "Y:/music/albums.csv"

模式3:交互模式

逐一处理每个子目录,手动指定或确认专辑名。

# 启用交互模式
storytag --onebyone "Y:/music/讲故事"

# 启用 MusicBrainz 搜索
storytag --onebyone -s "Y:/music/讲故事"

交互流程:

  1. 显示目录信息和当前标签
  2. 提示输入专辑名(自动从目录名提取建议值)
  3. 用户回车确认或输入新名称
  4. 确认后写入标签

音乐文件格式

支持:.flac .mp3 .ogg .opus .m4a

推荐工作流程

  1. 先用 -c 检查整个音乐库,生成 csv 表
  2. 编辑 csv 表,修正 建议专辑名
  3. -f --dryrun 预览修改
  4. 确认无误后用 -f 执行修改
# 步骤1:检查
storytag -c "Y:/music" -o "Y:/music/albums.csv"

# 步骤2:编辑 albums.csv,修改建议专辑名

# 步骤3:预览
storytag -f "Y:/music/albums.csv" --dryrun

# 步骤4:执行
storytag -f "Y:/music/albums.csv"

注意事项

  • MusicBrainz 搜索有 1 秒/请求 rate limit,每分钟约 1 次,大量操作请使用 -c / -f 模式
  • -f 模式会跳过 有专辑=是建议专辑名=- 的目录
  • 建议先用 --dryrun 确认无误后再执行实际修改
  • 写入前请确认,脚本不会自动覆盖已有专辑名的文件(除非用户确认)
  • 自动排除 Synology NAS 的 @eaDir@ 开头的特殊索引目录

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

storytag_tool-0.1.6.tar.gz (11.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

storytag_tool-0.1.6-py3-none-any.whl (12.6 kB view details)

Uploaded Python 3

File details

Details for the file storytag_tool-0.1.6.tar.gz.

File metadata

  • Download URL: storytag_tool-0.1.6.tar.gz
  • Upload date:
  • Size: 11.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for storytag_tool-0.1.6.tar.gz
Algorithm Hash digest
SHA256 b97b458fe3e5d9ebb0cac3fa2097acfc24dc7898c791a6f2fbdb342f030bc9a6
MD5 2d56ce61ee38db8b4882ebcda14b496e
BLAKE2b-256 e6bf8a651836dfb80e769e3a1e48052bd9bf52dfc89394500473f28c96902c45

See more details on using hashes here.

File details

Details for the file storytag_tool-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: storytag_tool-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 12.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for storytag_tool-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 b561c85cb1fd621d117f89c8934c09dce589cb3889452702cfdd82f12b30e0a3
MD5 d1f6178840729e1a6496c21dba9f5ec3
BLAKE2b-256 de8d4a84a0832b403188492592165e0584230a39b7f2ef527f1e6116a49bfb04

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page