-
Notifications
You must be signed in to change notification settings - Fork 0
/
musicfile.py
40 lines (32 loc) · 1.34 KB
/
musicfile.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
import eyed3
import string
import os.path
class MusicFile:
def __init__(self, filepath):
self.filepath = filepath
self.audiofile = eyed3.load(filepath)
self.add_id3_tags()
def add_id3_tags(self):
# track_num returns a tuple (songNo, songNoOf)
self.trackNo = self.audiofile.tag.track_num[0]
# For title, artist, album etc we will replace ' ' with '_' etc
self.title = string.replace(self.audiofile.tag.title, ' ', '_')
self.artist = string.replace(self.audiofile.tag.artist, ' ', '_')
self.album = string.replace(self.audiofile.tag.album, ' ', '_')
self.year = self.audiofile.tag.recording_date
self.format = self.filepath.split('.')[-1:][0]
self.albumstr = "{}_({})".format(self.album, str(self.year))
self.trackstr = "{}_-_{}.{}".format(str(self.trackNo), self.title,
self.format)
return None
def get_old_path(self):
return self.filepath
def get_new_path(self, basepath):
return (os.path.join(basepath, self.artist, self.albumstr,
self.trackstr))
def dump(self):
print "Track #:", self.trackNo
print "Title:", self.title
print "Artist:", self.artist
print "Album:", self.album
print "Year:", self.year