From 27b248df6e279f64f7cf692b5f02367ff3b31812 Mon Sep 17 00:00:00 2001 From: Eliot Berriot <contact@eliotberriot.com> Date: Thu, 3 Oct 2019 09:09:00 +0200 Subject: [PATCH] Fix #661: Support for M4A/AAC files --- api/funkwhale_api/music/metadata.py | 66 ++++++++++++++++++++ api/funkwhale_api/music/utils.py | 2 + api/tests/music/test.m4a | Bin 0 -> 51512 bytes api/tests/music/test_metadata.py | 30 +++++++++ changes/changelog.d/661.enhancement | 1 + front/src/components/library/FileUpload.vue | 2 +- 6 files changed, 100 insertions(+), 1 deletion(-) create mode 100644 api/tests/music/test.m4a create mode 100644 changes/changelog.d/661.enhancement diff --git a/api/funkwhale_api/music/metadata.py b/api/funkwhale_api/music/metadata.py index feec90cc76..801ea6a9ba 100644 --- a/api/funkwhale_api/music/metadata.py +++ b/api/funkwhale_api/music/metadata.py @@ -70,6 +70,45 @@ def clean_id3_pictures(apic): return pictures +def get_mp4_tag(f, k): + if k == "pictures": + return f.get("covr") + raw_value = f.get(k, None) + + if not raw_value: + raise TagNotFound(k) + + value = raw_value[0] + try: + return value.decode() + except AttributeError: + return value + + +def get_mp4_position(raw_value): + return raw_value[0] + + +def clean_mp4_pictures(raw_pictures): + pictures = [] + for p in list(raw_pictures): + if p.imageformat == p.FORMAT_JPEG: + mimetype = "image/jpeg" + elif p.imageformat == p.FORMAT_PNG: + mimetype = "image/png" + else: + continue + pictures.append( + { + "mimetype": mimetype, + "content": bytes(p), + "description": "", + "type": mutagen.id3.PictureType.COVER_FRONT, + } + ) + return pictures + + def get_flac_tag(f, k): if k == "pictures": return f.pictures @@ -216,6 +255,33 @@ CONF = { "copyright": {"field": "TCOP"}, }, }, + "MP4": { + "getter": get_mp4_tag, + "clean_pictures": clean_mp4_pictures, + "fields": { + "position": {"field": "trkn", "to_application": get_mp4_position}, + "disc_number": {"field": "disk", "to_application": get_mp4_position}, + "title": {"field": "©nam"}, + "artist": {"field": "©ART"}, + "album_artist": {"field": "aART"}, + "album": {"field": "©alb"}, + "date": {"field": "©day"}, + "musicbrainz_albumid": { + "field": "----:com.apple.iTunes:MusicBrainz Album Id" + }, + "musicbrainz_artistid": { + "field": "----:com.apple.iTunes:MusicBrainz Artist Id" + }, + "genre": {"field": "©gen"}, + "musicbrainz_albumartistid": { + "field": "----:com.apple.iTunes:MusicBrainz Album Artist Id" + }, + "mbid": {"field": "----:com.apple.iTunes:MusicBrainz Track Id"}, + "pictures": {}, + "license": {"field": "----:com.apple.iTunes:LICENSE"}, + "copyright": {"field": "cprt"}, + }, + }, "FLAC": { "getter": get_flac_tag, "clean_pictures": clean_flac_pictures, diff --git a/api/funkwhale_api/music/utils.py b/api/funkwhale_api/music/utils.py index bf3a0daf63..09c8cbd122 100644 --- a/api/funkwhale_api/music/utils.py +++ b/api/funkwhale_api/music/utils.py @@ -34,6 +34,8 @@ AUDIO_EXTENSIONS_AND_MIMETYPE = [ ("ogg", "audio/ogg"), ("opus", "audio/opus"), ("mp3", "audio/mpeg"), + ("aac", "audio/x-m4a"), + ("m4a", "audio/x-m4a"), ("flac", "audio/x-flac"), ("flac", "audio/flac"), ] diff --git a/api/tests/music/test.m4a b/api/tests/music/test.m4a new file mode 100644 index 0000000000000000000000000000000000000000..57b65b7b53489c85cb7a9e5ca5fa92fa976c35ea GIT binary patch literal 51512 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 literal 0 HcmV?d00001 diff --git a/api/tests/music/test_metadata.py b/api/tests/music/test_metadata.py index 716d9c9794..9a3826ce38 100644 --- a/api/tests/music/test_metadata.py +++ b/api/tests/music/test_metadata.py @@ -149,6 +149,7 @@ def test_can_get_metadata_from_id3_mp3_file(field, value): "sample.flac", "with_cover.ogg", "with_cover.opus", + "test.m4a", ], ) def test_can_get_pictures(name): @@ -189,6 +190,35 @@ def test_can_get_metadata_from_flac_file(field, value): assert data.get(field) == value +@pytest.mark.parametrize( + "field,value", + [ + ("title", "Peer Gynt Suite no. 1, op. 46: I. Morning"), + ("artist", "Edvard Grieg"), + ("album_artist", "Edvard Grieg; Musopen Symphony Orchestra"), + ("album", "Peer Gynt Suite no. 1, op. 46"), + ("date", "2012-08-15"), + ("position", 1), + ("disc_number", 2), + ("musicbrainz_albumid", "a766da8b-8336-47aa-a3ee-371cc41ccc75"), + ("mbid", "bd21ac48-46d8-4e78-925f-d9cc2a294656"), + ("musicbrainz_artistid", "013c8e5b-d72a-4cd3-8dee-6c64d6125823"), + ( + "musicbrainz_albumartistid", + "013c8e5b-d72a-4cd3-8dee-6c64d6125823;5b4d7d2d-36df-4b38-95e3-a964234f520f", + ), + ("license", "Dummy license: http://creativecommons.org/licenses/by-sa/4.0/"), + ("copyright", "Someone"), + ("genre", "Dubstep"), + ], +) +def test_can_get_metadata_from_m4a_file(field, value): + path = os.path.join(DATA_DIR, "test.m4a") + data = metadata.Metadata(path) + + assert data.get(field) == value + + def test_can_get_metadata_from_flac_file_not_crash_if_empty(): path = os.path.join(DATA_DIR, "sample.flac") data = metadata.Metadata(path) diff --git a/changes/changelog.d/661.enhancement b/changes/changelog.d/661.enhancement new file mode 100644 index 0000000000..38553fbfa2 --- /dev/null +++ b/changes/changelog.d/661.enhancement @@ -0,0 +1 @@ +Support for M4A/AAC files (#661) diff --git a/front/src/components/library/FileUpload.vue b/front/src/components/library/FileUpload.vue index 025eab930a..d88efd5ab0 100644 --- a/front/src/components/library/FileUpload.vue +++ b/front/src/components/library/FileUpload.vue @@ -158,7 +158,7 @@ export default { currentTab: "summary", uploadUrl: this.$store.getters['instance/absoluteUrl']("/api/v1/uploads/"), importReference, - supportedExtensions: ["flac", "ogg", "mp3", "opus"], + supportedExtensions: ["flac", "ogg", "mp3", "opus", "aac", "m4a"], isLoadingQuota: false, quotaStatus: null, uploads: { -- GitLab