Python 处理 flac 文件

Python 有若干库可以对 flac 文件进行处理,做一个简单介绍

flac 分段

比较老的 flac 文件,一张 CD 会是一整个文件,里边也分了很多首歌,通常跟随 flac 文件,还会有一个 .cue 文件,文件会对整个 flac 的音轨分布进行记录。
准备工作:

# 安装 FFCueSplitter
pip install ffcuesplitter

# 根据系统情况,安装 ffmpeg
apt install ffmpeg

# 安装进度条可视化工具
pip install tqdm

代码

from ffcuesplitter.cuesplitter import FFCueSplitter
import subprocess
import tqdm

# 解析 cue 文件数据
cue_data = FFCueSplitter(
	filename='cue 文件的路径+名称',
	ffmpeg_cmd='ffmpeg 执行文件路径,默认就是 ffmpeg',
	# 更多参数可以参考文档:
	# https://github.com/jeanslack/FFcuesplitter/wiki/Usage-from-Python/#ffcuesplitter
)
# 获取音轨信息
tracks = cue_data.audiotracks
# 根据音轨生成 ffmpeg 指令
commands = getdata.commandargs(tracks) # 获取切片的指令

# 因为任务时间可能比较长,建议使用 tqdm 来跟踪进度
for c in tqdm(commands['recipes']):
    subprocess.call(c[0], shell=True)

修改 flac 文件的媒体信息

修改 flac 文件的歌曲名称、歌手、专辑、乐队、专辑图片等信息,目前 flac 支持的标准媒体信息包括:

TITLE
ARTIST
ALBUM
DATE
GENRE
TRACKNUMBER
DISCNUMBER
COMMENT
BAND
ALBUMARTIST
COMPOSER

准备工作:

# 安装 mutagen
pip install mutagen

代码:

from mutagen.flac import FLAC, Picture, CueSheet

# 读取 flac 文件
flac_file_path = 'flac 文件路径'
audio_file = FLAC(flac_file_path)

# 修改歌曲名,其他字段的修改一样
audio_file['TITLE'] = title

# 添加专辑图片
picture_path = '专辑图片路径'
picture = Picture()
with open('', 'rb') as f:
	picture.data = f.read()
	picture.mime = u"image/jpeg"
audio_file.add_picture(picture)

# 添加歌词,但歌词并不是标准的媒体字段
lyrics_file_path = '歌词文件路径'
with open(lyrics_file_path, 'r') as f:
	audio_file['lyrics'] = f.read()

# 最后记得保存
audio_file.save()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值