Nowadays, due to the growing popularity of music streaming services, there’s a natural need to keep record of the users’ music collection within these services. In this sense, the music collection defines the users’ „musical profile”, which can be used to send personalized recommendations to them.
The goal of my thesis was to create a desktop application, which can discover the user’s music library content, and use web-based metadata-services to find the most suitable match for their music files, while providing additional information about the artist, album or the track itself. The result of these searches - the unique identifiers from multiple sources - specifies a musical profile, which stands above all of these services.
The client-side application that I developed was created with the JavaFX graphical library. I used the JAudiotagger library to read the content of tags associated with the music files, and used Musicbrainz, Acoustid and Spotify web services for online search purposes, but it was a clear goal of my project to make the list of available search services easily extensible. I chose a portable NOSQL database, Couchbase Lite, to persist the collected data.
In the first part of my thesis, I am going to write about the background technologies, that I used, giving special detail to comparing Java-based music tag libraries, and the operation of the applied search services. In the second part, I am going to give some details about the software development process, the integration of the search services, and important planning aspects. Finally I will talk about possible future improvements of the project.