1
0
Fork 0
mirror of synced 2025-07-03 11:57:26 +02:00

Implement recursive metadata for FLAC files

Since FLAC files can contain covers, it makes sense
to parse their metadata
This commit is contained in:
jvoisin 2018-10-11 19:52:47 +02:00
parent b2e153b69c
commit b9dbd12ef9
3 changed files with 27 additions and 17 deletions

View file

@ -1,8 +1,11 @@
import mimetypes
import os
import shutil
import tempfile
import mutagen
from . import abstract
from . import abstract, parser_factory
class MutagenParser(abstract.AbstractParser):
@ -55,6 +58,14 @@ class FLACParser(MutagenParser):
def get_meta(self):
meta = super().get_meta()
if mutagen.File(self.filename).pictures:
meta['Picture'] = 'Cover'
for num, picture in enumerate(mutagen.File(self.filename).pictures):
name = picture.desc if picture.desc else 'Cover %d' % num
_, fname = tempfile.mkstemp()
with open(fname, 'wb') as f:
f.write(picture.data)
extension = mimetypes.guess_extension(picture.mime)
shutil.move(fname, fname + extension)
p, _ = parser_factory.get_parser(fname+extension)
meta[name] = p.get_meta() if p else 'harmful data'
os.remove(fname + extension)
return meta