From 08ce00e3cd854b4ab83f45daff5ffc6b85a60da6 Mon Sep 17 00:00:00 2001 From: Eliot Berriot <contact@eliotberriot.com> Date: Mon, 14 Jan 2019 14:50:33 +0100 Subject: [PATCH] Fixed #469: parsing of embedded file cover for ogg files tagged with MusicBrainz Picard --- api/funkwhale_api/music/metadata.py | 81 +++++++++++++++++++++++++--- api/tests/music/test_metadata.py | 23 +++++++- api/tests/music/with_cover.ogg | Bin 0 -> 40414 bytes changes/changelog.d/469.bugfix | 1 + 4 files changed, 96 insertions(+), 9 deletions(-) create mode 100644 api/tests/music/with_cover.ogg create mode 100644 changes/changelog.d/469.bugfix diff --git a/api/funkwhale_api/music/metadata.py b/api/funkwhale_api/music/metadata.py index 9a61e67e..ad8a6b6a 100644 --- a/api/funkwhale_api/music/metadata.py +++ b/api/funkwhale_api/music/metadata.py @@ -1,8 +1,13 @@ +import base64 import datetime import logging -import mutagen import pendulum +import mutagen._util +import mutagen.oggtheora +import mutagen.oggvorbis +import mutagen.flac + from django import forms logger = logging.getLogger(__name__) @@ -83,6 +88,31 @@ def clean_flac_pictures(apic): return pictures +def clean_ogg_pictures(metadata_block_picture): + pictures = [] + for b64_data in [metadata_block_picture]: + + try: + data = base64.b64decode(b64_data) + except (TypeError, ValueError): + continue + + try: + picture = mutagen.flac.Picture(data) + except mutagen.flac.FLACError: + continue + + pictures.append( + { + "mimetype": picture.mime, + "content": picture.data, + "description": "", + "type": picture.type.real, + } + ) + return pictures + + def get_mp3_recording_id(f, k): try: return [t for t in f.tags.getall("UFID") if "musicbrainz.org" in t.owner][ @@ -197,6 +227,10 @@ CONF = { "musicbrainz_recordingid": {"field": "musicbrainz_trackid"}, "license": {}, "copyright": {}, + "pictures": { + "field": "metadata_block_picture", + "to_application": clean_ogg_pictures, + }, }, }, "OggTheora": { @@ -216,9 +250,8 @@ CONF = { "musicbrainz_artistid": {"field": "MusicBrainz Artist Id"}, "musicbrainz_albumartistid": {"field": "MusicBrainz Album Artist Id"}, "musicbrainz_recordingid": {"field": "MusicBrainz Track Id"}, - # somehow, I cannot successfully create an ogg theora file - # with the proper license field - # "license": {"field": "license"}, + "license": {}, + "copyright": {}, }, }, "MP3": { @@ -288,10 +321,11 @@ ALL_FIELDS = [ class Metadata(object): - def __init__(self, path): - self._file = mutagen.File(path) + def __init__(self, filething, kind=mutagen.File): + self._file = kind(filething) if self._file is None: - raise ValueError("Cannot parse metadata from {}".format(path)) + raise ValueError("Cannot parse metadata from {}".format(filething)) + self.fallback = self.load_fallback(filething, self._file) ft = self.get_file_type(self._file) try: self._conf = CONF[ft] @@ -301,7 +335,40 @@ class Metadata(object): def get_file_type(self, f): return f.__class__.__name__ + def load_fallback(self, filething, parent): + """ + In some situations, such as Ogg Theora files tagged with MusicBrainz Picard, + part of the tags are only available in the ogg vorbis comments + """ + try: + filething.seek(0) + except AttributeError: + pass + if isinstance(parent, mutagen.oggtheora.OggTheora): + try: + return Metadata(filething, kind=mutagen.oggvorbis.OggVorbis) + except (ValueError, mutagen._util.MutagenError): + raise + pass + def get(self, key, default=NODEFAULT): + try: + return self._get_from_self(key) + except TagNotFound: + if not self.fallback: + if default != NODEFAULT: + return default + else: + raise + else: + return self.fallback.get(key, default=default) + except UnsupportedTag: + if not self.fallback: + raise + else: + return self.fallback.get(key, default=default) + + def _get_from_self(self, key, default=NODEFAULT): try: field_conf = self._conf["fields"][key] except KeyError: diff --git a/api/tests/music/test_metadata.py b/api/tests/music/test_metadata.py index 4413f3a3..5e5590d7 100644 --- a/api/tests/music/test_metadata.py +++ b/api/tests/music/test_metadata.py @@ -1,9 +1,11 @@ import datetime import os import uuid - import pytest +import mutagen.oggtheora +import mutagen.oggvorbis + from funkwhale_api.music import metadata DATA_DIR = os.path.dirname(os.path.abspath(__file__)) @@ -145,7 +147,7 @@ def test_can_get_metadata_from_id3_mp3_file(field, value): assert data.get(field) == value -@pytest.mark.parametrize("name", ["test.mp3", "sample.flac"]) +@pytest.mark.parametrize("name", ["test.mp3", "sample.flac", "with_cover.ogg"]) def test_can_get_pictures(name): path = os.path.join(DATA_DIR, name) data = metadata.Metadata(path) @@ -243,3 +245,20 @@ def test_metadata_all_ignore_parse_errors_false(mocker): mocker.patch.object(data, "get", side_effect=metadata.ParseError("Failure")) with pytest.raises(metadata.ParseError): data.all(ignore_parse_errors=False) + + +def test_metadata_fallback_ogg_theora(mocker): + path = os.path.join(DATA_DIR, "with_cover.ogg") + data = metadata.Metadata(path) + + assert isinstance(data._file, mutagen.oggtheora.OggTheora) + assert isinstance(data.fallback, metadata.Metadata) + assert isinstance(data.fallback._file, mutagen.oggvorbis.OggVorbis) + + expected_result = data.fallback.get("pictures") + fallback_get = mocker.spy(data.fallback, "get") + + assert expected_result is not None + assert data.get("pictures", "default") == expected_result + + fallback_get.assert_called_once_with("pictures", "default") diff --git a/api/tests/music/with_cover.ogg b/api/tests/music/with_cover.ogg new file mode 100644 index 0000000000000000000000000000000000000000..ddd3ab7009e108474d6d15d08640672775b463a1 GIT binary patch literal 40414 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 literal 0 HcmV?d00001 diff --git a/changes/changelog.d/469.bugfix b/changes/changelog.d/469.bugfix new file mode 100644 index 00000000..0754dac6 --- /dev/null +++ b/changes/changelog.d/469.bugfix @@ -0,0 +1 @@ +Fixed parsing of embedded file cover for ogg files tagged with MusicBrainz (#469) -- GitLab