GSoC Project: GNOME Music and MusicBrainz Integration
Google Summer of Code - 2019:
- Student: Sumaid ("sumaid" on irc)
- Mentor: Jean Felder ("ptitjano" on irc)
- Blog Link: https://jsoc.home.blog/
Objectives of the project:
- Retrieve MusicBrainz IDs for files
- Retrieve metadata from AcoustID database - return all the results
- Add functionality to edit tags of songs
- Retrieve tags for songs/albums from MusicBrainz database
- Retrieve cover-art for music albums
a) MusicBrainz IDs:
Grilo currently supports the following MusicBrainz IDs:
- Track ID
- Recording ID
- Release ID
- Release Group ID
- Artist ID
Above 5 MBIDs should be enough to retrieve cover-art and tags, hence we'll store only these 5 MBIDs in the tracker.
-
If a file already has MBIDs, then extract them through tracker-miners extractors:
-
GStreamer does not support Recording and Release Group IDs tags. Hence support for same needs to be added in GStreamer.
-
Metadata Retrieval:
Both songs and albums will have similar parts
Metadata Tags for songs:
- Title
- Album
- Artist
- Track Number
- Disc Number
- Year ( Creation Year )
Timeline:
Week 1 ( Till 11th June): All of the following have merge requests in progress:
-
Store the MBIDs in the tracker -
Finish ogg extractor [[Easy]] -
Finish mp3 extractor [[Medium]] -
Finish MBID Tags repair in GStreamer [[Medium]] -
Finish gstreamer extractor [[Easy]] -
Deprecate use of album id [[Medium]] -
Grilo-tracker MBIDs mapping [[Easy]]
Week 2 ( 12th June - 18th June ):
-
Unbreak Writeback => Carlos Garnacho's working on it -
Query MusicBrainz IDs in GNOME Music [[Medium]] -
Replace album id instance in grl-musicbrainz -
Retrieve Cover art from MusicBrainz
Week 3 ( 19th June - 24th June ):
- Make a plan for metadata retrieval
Week 4 ( 28th June - 5th July ):
-
Tracker: Store Chromaprint in Tracker Database -
Tracker-miners: Extract acoustid fingerprint with mp3 extractor -
Tracker-miners: Extract acoustid fingerprint with ogg extractor -
Tracker-miners: Extract acoustid fingerprint with gstreamer extractor -
Grilo: Introduce Chromaprint Grilo Property (Not Required) -
Add Chromaprint tag support to GST: Update GST MR -
Grilo-Plugins: AcoustID Return Multiple Results - Query Operation
Week 5 ( 5th July - 26th July ):
- Tag Editor: Songs:
-
Basic Functionality -
Clean up UI
- Writeback:
-
Writeback of tags & chromaprint -
Tracker Properties Writeback Flag -
Add more keys to writable keys
Final Phase:
-
Grilo-Plugins: Add query operation to acoustid plugin -
Grilo-Plugins: Fix one minor issue in acoustid plugin -
Grilo-Plugins: grl-musicbrainz Lua source -
Music: Tag Editor MusicBrainz Plugin Support
- Tag Editor: Albums
-
Music: Albums Tagging using acoustid & musicbrainz -
Music: MusicBrainz CoverArt Plugin Support -
Grilo-Plugins: grl-musicbrainz-coverart Plugin
Future Goals:
- MusicBrainz IDs should be stored similar to hashValue & hashAlgorithm in tracker db
- AcoustID Plugin should allow retrieval through AcoustID ( This will require introducing acoustid in tracker/grilo)
- Multi-songs & Multi-albums Retrieval
- Upload a local image as cover art for the file
- Adding missing files to albums
References: