diff --git a/README.rst b/README.rst index 8ba85aa..4a0f9f7 100644 --- a/README.rst +++ b/README.rst @@ -34,6 +34,7 @@ pycatalog requires python and following libraries: * `python 3.10`_ and up * `sqlalchemy 1.4`_ * `exifread`_ for parse EXIF information +* `mutagen`_ for extracting tags from audio files Pycatalog extensively uses external programs in unix spirit, however there is small possibility of using it Windows (probably with limitations) and quite big @@ -88,3 +89,4 @@ file in top-level directory. .. _sqlalchemy 1.4: http://www.sqlalchemy.org .. _tagging files: http://en.wikipedia.org/wiki/tag_%28metadata%29 .. _tox: https://testrun.org/tox +.. _mutagen: https://github.com/quodlibet/mutagen diff --git a/pycatalog/scan.py b/pycatalog/scan.py index bdea2f8..07c4761 100644 --- a/pycatalog/scan.py +++ b/pycatalog/scan.py @@ -11,6 +11,8 @@ from datetime import datetime import mimetypes import exifread +import mutagen + from pycatalog.dbobjects import File, TYPE from pycatalog import dbcommon from pycatalog.logger import get_logger @@ -213,8 +215,10 @@ class Scan(object): pass def _audio(self, fobj, filepath): - # tags, depending on the format? - return + tags = mutagen.File(filepath) + if not tags: + return + fobj.description = tags.pprint() def _image(self, fobj, filepath): """Read exif if exists, add it to description""" diff --git a/setup.cfg b/setup.cfg index 4f8eebc..65ac0c4 100644 --- a/setup.cfg +++ b/setup.cfg @@ -36,6 +36,7 @@ packages = install_requires = exifread sqlalchemy + mutagen [bdist_wheel] universal = 1