Tuneify is a music app built using the YouTube video player API and data from Musicbrainz and LastFm.
The focus for this project has been on learning new tech and not so much on code quality 🙈
I ran this project locally recently and there are a few things that no longer work:
- Playing a track no longer queue's the video in the embedded YouTube player. There has probably been a change to YouTube's Player API. Likely to be a quick fix.
- LastFm has stopped providing thumbnails for artists. See https://www.reddit.com/r/lastfm/comments/bjwcqh/api_announcement_lastfm_support_community/ for details.
I had started to investigate removing LastFm as a dependency for a few reasons:
- The data was not kept up to date. New releases and artists took months to appear in the data, if at all
- LastFm prohibits the use of Artist/release images in third party apps
Tuneify is essentially powered by LastFm. It is used by the autocomplete search, track data and images. So I started to look for other solutions and decided to see if I could roll my own. There are some repos related to that effort:
- https://github.com/jamesfiltness/tuneify-python - scripts to collect artist/release artwork from various sources
- https://github.com/jamesfiltness/musicbrainz-elasticsearch - notes and code related to creating an autocomplete by taking the Musicbrainz database and using it to create a search engine running on elasticsearch, with weighting for the most popular artists and releases.
- React Redux, Redux Router frontend
- Mocha, Chai, Enzyme, Sinon
- Es6 + Babel
- Serverless (AWS Lambda) + DynamoDb to store user playlist data
- Auth0
- ElasticSearch for autocomplete
- Musicbrainz slave https://bitbucket.org/lalinsky/mbslave
- S3 + Cloudfront to serve static frontend
- S3 + Cloudfront to store artist / album images