cue文件
REM DATE 2013
REM DISCID F90D9411
REM COMMENT 更新目录:https://docs.qq.com/doc/DT2RWbVlFUmVRbXdo
PERFORMER "韩宝仪"
TITLE "甜歌天后 · 韩宝仪 (黑胶CD)"
FILE "CDImage.wav" WAVE
TRACK 01 AUDIO
TITLE "粉红色的回忆"
INDEX 01 00:00:00
TRACK 02 AUDIO
TITLE "你潇洒我漂亮"
INDEX 01 03:44:21
TRACK 03 AUDIO
TITLE "无奈的思绪"
INDEX 01 07:25:37
TRACK 04 AUDIO
TITLE "心心相印"
INDEX 01 11:12:37
TRACK 05 AUDIO
TITLE "舞女"
INDEX 01 14:50:06
TRACK 06 AUDIO
TITLE "望月怕团圆"
INDEX 01 18:21:73
TRACK 07 AUDIO
TITLE "抹去的泪水"
INDEX 01 21:07:69
TRACK 08 AUDIO
TITLE "错误的恋曲"
INDEX 01 24:49:15
TRACK 09 AUDIO
TITLE "昨日情昨日梦"
INDEX 01 28:36:11
TRACK 10 AUDIO
TITLE "一去不回头"
INDEX 01 32:09:34
TRACK 11 AUDIO
TITLE "最后一次回眸"
INDEX 01 35:27:01
TRACK 12 AUDIO
TITLE "凤凰于飞"
INDEX 01 39:46:70
TRACK 13 AUDIO
TITLE "错误的爱"
INDEX 01 42:32:44
TRACK 14 AUDIO
TITLE "我心若玫瑰"
INDEX 01 46:06:45
TRACK 15 AUDIO
TITLE "无言的温柔"
INDEX 01 49:01:63
TRACK 16 AUDIO
TITLE "舞女泪"
INDEX 01 52:19:32
TRACK 17 AUDIO
TITLE "知道不知道"
INDEX 01 55:26:18
pip3 install pydub
安装ffmpeg
import io,os
from pydub import AudioSegment
from pydub.utils import make_chunks
song=[]
f= lambda x:(int(x[:2])*60+int(x[4:5]))*1000+int(x[7:])
if __name__=='__main__':
fp=io.open('./CDImage.cue','r',encoding='utf-8')
s={}
for item in fp.readlines()[6:]:
text = item.strip()
if text[:5]=='TRACK':
continue
if text[:5]=='TITLE':
s['title']=f'{text[7:-1]}.mp3'
continue
if text[:5]=='INDEX':
s['begin']=text[9:]
song.append(s)
s={}
for i,s in enumerate(song):
if i<16:
s['end']=song[i+1]['begin']
else:
s['end']='57:56:00'
s['start']=f(s['begin'])
s['finish']=f(s['end'])
wav = AudioSegment.from_file('./CDImage.wav')
for i,s in enumerate(song):
song=wav[s['start']:s['finish']]
song.export(s['title'],format='mp3')
在MacOS 13.2.1 Apple M1 Max运行正常