-
Notifications
You must be signed in to change notification settings - Fork 0
/
LossLessCutChapterCSV.py
51 lines (35 loc) · 1.42 KB
/
LossLessCutChapterCSV.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#makes csv files of all mp3 in folder for use with
# https://mifi.no/losslesscut/
# faster but more manual work
import glob
filelist=glob.glob('*.mp3')
import mutagen
import csv
print(filelist)
for file in filelist:
print(file)
inputfile=mutagen.File(file)
print(inputfile.pprint())
print("########################")
print("Chapters found in: " + file)
chapters = list()
exportpaths= list()
for key in inputfile.keys():
if key[:5] == "CHAP:":
chapters.append(key)
filename= file[:-4]+".csv"
with open(filename, mode='w', newline='') as employee_file:
employee_writer = csv.writer(employee_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
for key in chapters:
# parsing chapter info for start and end times and title
#print(inputfile[key])
string= str(inputfile[key].pprint())
#print(string)
timeinfo=string.find("time=")
endtimeinfo=string[timeinfo:].find(" ")
times=string[timeinfo+5:timeinfo+endtimeinfo].split("..")
#print(times)
chaptertitle=(string[string.find("TIT2=")+5:])
employee_writer.writerow([str(int(times[0]) / 1000), str(int(times[1]) / 1000), chaptertitle])
chaptertitle=chaptertitle.replace('"','""')
print(str(int(times[0])/1000)+","+str(int(times[1])/1000)+',"'+chaptertitle+'"')