Auto-sync

This commit is contained in:
2026-05-23 21:47:47 +08:00
parent 369c9e90ea
commit 7b91c310eb
2 changed files with 218 additions and 0 deletions

View File

@@ -0,0 +1,25 @@
import requests
# 获取曲目信息的函数
def get_recording_info(mbid):
url = f'https://musicbrainz.org/ws/2/recording/{mbid}?fmt=json'
response = requests.get(url)
if response.status_code == 200:
return response.json() # 返回曲目信息
else:
return {'error': 'Not Found', 'status_code': response.status_code}
# 测试 MBID 列表
mbids = [
'a34ecc5d-388e-40fb-a2a2-5354db8fdfaa', # 示例 MBID
'c6f24108-1f3f-4bf7-a52d-818ec956c2de',
'cd2d5cc0-7cfa-4f7c-99f5-4fd05b07873c'
]
# 循环查询每个 MBID
for mbid in mbids:
info = get_recording_info(mbid)
print(f'情報for MBID {mbid}:')
print(info)
print('-' * 40) # 分隔线

View File

@@ -0,0 +1,193 @@
---
title: CUE + WAV 分割与高质量 MP3 转换
date: 2026-05-20
tags: [audio, cue, wav, mp3, ffmpeg, linux]
---
# CUE + WAV 分割与高质量 MP3 转换
这篇笔记记录如何在命令行下,把一张专辑常见的 `cue + wav` 形式,切分成单曲,并转换成高质量 MP3。
## 一、基本概念
- `cue`:曲目索引与标签信息,记录每首歌的开始时间、标题、歌手等。
- `wav`:整张专辑的无损音频文件。
- 典型场景:一张专辑只有一个大 WAV 文件,加一个 CUE 文件。
目标:
1. 按 CUE 的时间点切分成单轨。
2. 转成高质量 MP3。
3. 尽量保留标题、歌手、专辑等标签。
## 二、推荐工具
在 Ubuntu 上建议安装:
```bash
sudo apt update
sudo apt install cuetools shntool lame ffmpeg
```
说明:
- `cuetools`:提供 `cuebreakpoints``cuetag`
- `shntool`:负责按断点切分音频
- `ffmpeg`:负责编码成 MP3
- `lame`MP3 编码器ffmpeg 也会调用到它的能力
## 三、按 CUE 切分 WAV
### 方式 1先切分再转码
```bash
cuebreakpoints "album.cue" | shnsplit -o wav "album.wav"
```
结果:
- 生成 `01.wav``02.wav``03.wav` ……
- 每个文件对应 CUE 里的一个曲目
### 注意
- `cue` 文件中引用的 wav 文件名,必须和实际文件名一致。
- 如果文件名不一致,先修正 CUE 里的 `FILE` 行,或把 wav 文件重命名。
- 中文文件名一般没问题,但终端编码和 shell 引号要保持正确。
## 四、转换为高质量 MP3
### 方案 AVBR 高质量,推荐
```bash
for f in *.wav; do
ffmpeg -y -i "$f" -codec:a libmp3lame -q:a 0 "${f%.wav}.mp3"
done
```
说明:
- `-q:a 0` 表示最高质量的 VBR 档位之一
- 一般适合日常听歌和保留尽可能好的音质
### 方案 B固定 320k
```bash
for f in *.wav; do
ffmpeg -y -i "$f" -codec:a libmp3lame -b:a 320k "${f%.wav}.mp3"
done
```
说明:
- 码率固定,体积更可预测
- 如果你偏好统一规格,可以选这个
## 五、把 CUE 标签写回 MP3
切分并转码后,可以把 CUE 里的标签批量写进 MP3
```bash
cuetag "album.cue" *.mp3
```
通常会把以下信息写入:
- 曲名
- 专辑名
- 歌手
- 轨道号
## 六、一键脚本
下面是一个可直接使用的一键脚本:
```bash
#!/usr/bin/env bash
set -euo pipefail
CUE="$1"
WAV="$2"
OUTDIR="${3:-output}"
mkdir -p "$OUTDIR"
cd "$OUTDIR"
cuebreakpoints "$CUE" | shnsplit -o wav "$WAV"
for f in *.wav; do
ffmpeg -y -i "$f" -codec:a libmp3lame -q:a 0 "${f%.wav}.mp3"
done
cuetag "$CUE" *.mp3
```
用法:
```bash
chmod +x split_cue_to_mp3.sh
./split_cue_to_mp3.sh "album.cue" "album.wav"
```
## 七、实战建议
### 1. 先保留无损源文件
MP3 即使是高质量编码,依然是有损格式。建议保留:
- 原始 WAV
- 原始 CUE
- 转换后的 MP3
### 2. 输出目录独立管理
不要直接在源目录操作,建议每张专辑一个输出目录,便于回溯。
### 3. 中文文件名注意引号
所有路径都用双引号包裹:
```bash
"我的专辑.cue"
"我的专辑.wav"
```
### 4. 出现标签错位时先检查 CUE
如果曲名或分轨偏移不对,先检查:
- `INDEX 01` 时间点是否正确
- `FILE` 行是否指向正确的 wav 文件
- wav 是否已经被裁剪过
## 八、常见问题
### 1. cuebreakpoints 报错找不到文件
说明 CUE 中的文件名和实际文件名不一致。
### 2. shnsplit 生成的文件顺序不对
先检查 CUE 时间轴是否写错,或者原始 WAV 是否有静默开头/结尾。
### 3. ffmpeg 转码失败
检查是否安装了 `ffmpeg``libmp3lame` 支持。
### 4. cuetag 没有写入标签
确认:
- CUE 文件语法正确
- MP3 文件名和轨道对应关系未被破坏
## 九、推荐命令组合
如果只想快速执行,最常用的组合是:
```bash
cuebreakpoints "album.cue" | shnsplit -o wav "album.wav"
for f in *.wav; do ffmpeg -y -i "$f" -codec:a libmp3lame -q:a 0 "${f%.wav}.mp3"; done
cuetag "album.cue" *.mp3
```
## 十、结论
如果目标是“命令行下稳定地把 cue+wav 专辑切成高质量 mp3”推荐流程是
1. `cuebreakpoints + shnsplit` 切轨
2. `ffmpeg + libmp3lame -q:a 0` 转码
3. `cuetag` 回写标签
这套组合简单、稳定、可批处理,适合长期使用。