-
Notifications
You must be signed in to change notification settings - Fork 0
/
m3u creator terminal.py
62 lines (48 loc) · 1.56 KB
/
m3u creator terminal.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
50
51
52
53
54
55
56
57
58
59
60
61
62
import os
from tinytag import TinyTag
import argparse
def createPlayList(fileList,path):
#flag to check if music exists
musicCheck = "false"
#name of current directory
cDirName = path.split('\\')[-1]
#name that playlist must have
m3uName = path +"\\" +cDirName+".m3u"
#creating m3u file
fi = open(m3uName,"w")
#writing m3u header
fi.write("#EXTM3U\n")
#declaring music format to research
mFormat = ["aac","m4a","wav","mp3","flac","wma"]
for fiNames in fileList:
#checking if extension is in the list of format
fiName= path+"\\" +fiNames
ext = fiName.split('.')[-1]
if ext in mFormat:
try:
musicCheck = "true"
song = TinyTag.get(fiName)
artist = str(song.artist)
time = str(int(song.duration))
title = str(song.title)
#writing data
fi.write("#EXTINF:"+time+","+artist+" - "+title+"\n")
fi.write(fiName+"\n")
except Exception as e:
print("unable to add " + fiNames)
fi.close()
#if there isn't music delete playlist
if musicCheck == "false":
os.remove(m3uName)
def list_file(startpath):
for path,dirName,fiList in os.walk(startpath):
createPlayList(fiList,str(path))
print("DONE")
parser = argparse.ArgumentParser(description="Crea Playlist in tutte le sottocartelle del percorso dato")
parser.add_argument("-p","--path", type=str, help="Percorso di partenza per creazione playlist")
args = parser.parse_args()
path = str(args.path)
if path == "None":
print('Inserisci il percorso con -p "percorso" o --path "percorso"')
else:
list_file(path)