delojza/src/lib/tagging.py

26 lines
768 B
Python

import mutagen.id3
from mutagen.easyid3 import EasyID3
def get_tags(filepath):
try:
audio = EasyID3(filepath)
return audio["artist"][0] if audio["artist"] else None, audio["title"][0] if audio["title"] else None
except mutagen.id3.ID3NoHeaderError:
return None, None
def tag_file(filepath, artist, title):
try:
id3 = mutagen.id3.ID3(filepath)
except mutagen.id3.ID3NoHeaderError:
mutafile = mutagen.File(filepath)
mutafile.add_tags()
mutafile.save()
id3 = mutagen.id3.ID3(filepath)
id3.add(mutagen.id3.TIT2(encoding=3, text=title))
if artist:
id3.add(mutagen.id3.TOPE(encoding=3, text=artist))
id3.add(mutagen.id3.TPE1(encoding=3, text=artist))
id3.save()