def getTrack(file): """ Return a Track created from an APE file """ track = FileTrack(file) mFile = MonkeysAudio(file) track.setLength(int(round(mFile.info.length))) try: track.setNumber(int(mFile['Track'][0])) except: pass try: track.setDate(int(mFile['Year'][0])) except: pass try: track.setTitle(str(mFile['Title'][0])) except: pass try: track.setAlbum(str(mFile['Album'][0])) except: pass try: track.setArtist(str(mFile['Artist'][0])) except: pass try: track.setGenre(str(mFile['Genre'][0])) except: pass return track
def getTrack(file): """ Return a Track created from a WavPack file """ track = FileTrack(file) wvFile = WavPack(file) track.setLength(int(round(wvFile.info.length))) try: track.setTitle(str(wvFile['Title'][0])) except: pass try: track.setAlbum(str(wvFile['Album'][0])) except: pass try: track.setArtist(str(wvFile['Artist'][0])) except: pass try: track.setAlbumArtist(str(wvFile['Album Artist'][0])) except: pass try: track.setGenre(str(wvFile['genre'][0])) except: pass try: track.setNumber(int(str(wvFile['Track'][0]).split('/')[0])) # Track format may be 01/08, 02/08... except: pass try: track.setDiscNumber(int(str(wvFile['Disc'][0]).split('/')[0])) # Disc number format may be 01/02, 02/02... except: pass try: track.setDate(int(wvFile['Year'][0])) except: pass return track
def getTrack(file): """ Return a Track created from an Ogg Vorbis file """ track = FileTrack(file) oggFile = OggVorbis(file) track.setLength(int(round(oggFile.info.length))) try: track.setTitle(str(oggFile['title'][0])) except: pass try: track.setAlbum(str(oggFile['album'][0])) except: pass try: track.setArtist(str(oggFile['artist'][0])) except: pass try: track.setAlbumArtist(str(oggFile['albumartist'][0])) except: pass try: track.setGenre(str(oggFile['genre'][0])) except: pass try: track.setMBTrackId(str(oggFile['musicbrainz_trackid'][0])) except: pass try: track.setNumber(int(str(oggFile['tracknumber'][0]).split('/')[0])) # Track format may be 01/08, 02/08... except: pass try: track.setDiscNumber(int(str(oggFile['discnumber'][0]).split('/')[0])) # Disc number format may be 01/08, 02/08... except: pass try: track.setDate(int(oggFile['date'][0])) except: pass return track
def getTrack(file): """ Return a Track created from an mp4 file """ track = FileTrack(file) mp4File = MP4(file) track.setLength(int(round(mp4File.info.length))) try: track.setNumber(int(mp4File['trkn'][0][0])) except: pass try: track.setDiscNumber(int(mp4File['disk'][0][0])) except: pass try: track.setDate(int(mp4File['\xa9day'][0][0])) except: pass try: track.setTitle(str(mp4File['\xa9nam'][0])) except: pass try: track.setAlbum(str(mp4File['\xa9alb'][0])) except: pass try: track.setArtist(str(mp4File['\xa9ART'][0])) except: pass try: track.setGenre(str(mp4File['\xa9gen'][0])) except: pass try: track.setAlbumArtist(str(mp4File['aART'][0])) except: pass # TODO How to retrieve the MusicBrainz track id? I don't have a sample file at hand. return track
def getTrack(file): """ Return a Track created from an mp3 file """ track = FileTrack(file) mp3File = MP3(file) track.setLength(int(round(mp3File.info.length))) try: id3 = ID3(file) except: return track try: track.setTitle(str(id3['TIT2'])) except: pass try: track.setAlbum(str(id3['TALB'])) except: pass try: track.setArtist(str(id3['TPE1'])) except: pass try: track.setAlbumArtist(str(id3['TPE2'])) except: pass try: track.setMBTrackId(id3['UFID:http://musicbrainz.org'].data) except: pass try: track.setGenre(str(id3['TCON'])) except: pass try: track.setNumber(int(str(id3['TRCK']).split('/')[0])) # Track format may be 01/08, 02/08... except: pass try: track.setDiscNumber(int(str(id3['TPOS']).split('/')[0])) # Disc number format may be 01/08, 02/08... except: pass try: track.setDate(int(id3['TDRC'][0].year)) except: pass return track
def createFileTrack(file, bitrate, length, samplerate, isVBR, title=None, album=None, artist=None, albumArtist=None, musicbrainzId=None, genre=None, trackNumber=None, date=None, discNumber=None): """ Create a new FileTrack object based on the given information """ from media.track.fileTrack import FileTrack track = FileTrack(file) track.setLength(length) track.setBitrate(bitrate) track.setSampleRate(samplerate) if isVBR: track.setVariableBitrate() if title is not None: track.setTitle(title) if album is not None: track.setAlbum(album) if artist is not None: track.setArtist(artist) if albumArtist is not None: track.setAlbumArtist(albumArtist) if musicbrainzId is not None: track.setMBTrackId(musicbrainzId) if genre is not None: track.setGenre(genre) if date is not None: try: track.setDate(int(date)) except: pass # The format of the track number may be 'X' or 'X/Y' # We discard Y since we don't use this information if trackNumber is not None: try: track.setNumber(int(trackNumber.split('/')[0])) except: pass # The format of the disc number may be 'X' or 'X/Y' # We discard the disc number when Y is less than 2 if discNumber is not None: try: discNumber = discNumber.split('/') if len(discNumber) == 1 or int(discNumber[1]) > 1: track.setDiscNumber(int(discNumber[0])) except: pass return track
def getTrack(file): """ Return a Track created from an mpc file """ track = FileTrack(file) mpcFile = Musepack(file) track.setLength(int(round(mpcFile.info.length))) try: track.setNumber(int(str(mpcFile['Track']))) except: pass try: track.setDiscNumber(int(str(mpcFile['Discnumber']))) except: pass try: track.setDate(int(str(mpcFile['Year']))) except: pass try: track.setTitle(str(mpcFile['Title'])) except: pass try: track.setGenre(str(mpcFile['Genre'])) except: pass try: track.setMBTrackId(str(mpcFile['MUSICBRAINZ_TRACKID'])) except: pass try: track.setAlbum(str(mpcFile['Album'])) except: pass try: track.setArtist(str(mpcFile['Artist'])) except: pass try: track.setAlbumArtist(str(mpcFile['Album Artist'])) except: pass return track
def getTrack(file): """ Return a Track created from an asf file """ track = FileTrack(file) asfFile = ASF(file) track.setLength(int(round(asfFile.info.length))) try: track.setNumber(int(asfFile["WM/TrackNumber"][0])) except: pass try: track.setDiscNumber(int(asfFile["WM/PartOfSet"][0])) except: pass try: track.setDate(int(asfFile["WM/Year"][0])) except: pass try: track.setTitle(str(asfFile["Title"][0])) except: pass try: track.setAlbum(str(asfFile["WM/AlbumTitle"][0])) except: pass try: track.setArtist(str(asfFile["Author"][0])) except: pass try: track.setAlbumArtist(str(asfFile["WM/AlbumArtist"][0])) except: pass try: track.setGenre(str(asfFile["WM/Genre"][0])) except: pass try: track.setMBTrackId(str(asfFile["MusicBrainz/Track Id"][0])) except: pass return track