Чтобы убедиться, что я нашел все альбомы, мне нужно было нормализовать строку до NFKD перед хэшированием. Я решил это в python:
def strip_accents(s):
return unicodedata.normalize('NFKD', s)
Весь мой скрипт основан на решении alphaloop, но я переключился на мутаген, чтобы иметь дело с flac и m4a:
def getArtistAlbum(musicfile):
""" return artist and album strings of a music file """
import mutagen
# key of stored information per file extension
keys={'flac': ('artist','album'),
'mp3': ('TPE2','TALB'),
'm4a': ('\xa9ART','\xa9alb')}
# read the tag
tag = mutagen.File(musicfile)
# get extension of musicfile
ext = os.path.splitext(musicfile)[1][1:]
try:
return tag[keys[ext][0]][0], tag[keys[ext][1]][0]
except KeyError:
return None,None