Metadata-Version: 2.4
Name: music-tag-auto
Version: 1.0.0
Summary: LLM-powered CLI for batch music metadata tagging
Project-URL: Homepage, https://github.com/zhyipeng/music-tag-auto
Project-URL: Source, https://github.com/zhyipeng/music-tag-auto
Project-URL: Issues, https://github.com/zhyipeng/music-tag-auto/issues
License: GPL-3.0-or-later
Keywords: cli,id3,llm,metadata,music,tag
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Multimedia :: Sound/Audio
Classifier: Topic :: Utilities
Requires-Python: >=3.12
Requires-Dist: click>=8.3.2
Requires-Dist: music-tag>=0.4.3
Requires-Dist: mutagen>=1.47.0
Requires-Dist: pillow>=12.2.0
Requires-Dist: pycryptodomex>=3.23.0
Requires-Dist: requests>=2.33.1
Description-Content-Type: text/markdown

# music-tag-auto

由 [music-tag-web](https://github.com/xhongc/music-tag-web.git) 衍生的批量音乐标签命令行工具。

把识别和选择的工作交给 llm

## 安装

```bash
pip install music-tag-auto
music-tag-auto --help
```

## Quickstart:
```bash
export OPENAI_API_KEY=
export OPENAI_MODEL=gpt-4.1-mini
export OPENAI_BASE_URL=https://your-openai-compatible-api
music-tag-auto tag /path/to/musicdir
```

常用参数：

- `--dry-run`：只搜索和选择，不写入标签
- `--output-dir ./tagged-output`：默认把打完标签的副本输出到目标目录，并保留原相对目录结构
- `--in-place`：直接覆盖源文件，不生成副本
- `--limit 10`：最多处理 10 首
- `--report-file result.json`：指定报告输出路径
- `--source acoustid`：启用指纹识别源，要求本机已安装 `fpcalc`
- `--llm-base-url https://your-openai-compatible-api`：指定 llm 基础 url
- `--llm-api-key "$OPENAI_API_KEY"`：指定 llm api key
- `--llm-model gpt-4.1-mini`：指定 llm 模型

也支持环境变量：

- `OPENAI_BASE_URL`
- `OPENAI_API_KEY`
- `OPENAI_MODEL`

netease 源需要登录态
- `NETEASE_COOKIE`
- `NETEASE_COOKIE_FILE`

## 发布

构建：

```bash
uv build
```

上传到 PyPI：

```bash
uv publish
```

或者使用 twine：

```bash
python -m twine upload dist/*
```
