This repository contains the source code of totheverybestof.com, a crappy reimplementation of the (now dead) tothebestof.com.
- A Last.FM API key, which can be created here, set with the environment variable
LASTFM_API_KEY
- A Youtube Data v3 API key, which can be created here, set with the environment variable
YOUTUBE_API_KEY
- execute
go run main.go
, and point your browser athttp://localhost:9071
- Youtube Data API call to make a search costs 100 units, and the free plan is capped at 10,000 units per day. This gives a maximum of 100 searches per day which is extremely restrictive at 5 searches per artist
- youtube search results are cached, but this is unlikely to appreciably help.
- Alternatives for streaming music are bleak:
- Grooveshark, the backend for the original ToTheBestOf.com, no longer exists
- Spotify API doesn't allow more than 30 second previews unless the user is logged in
- Deezer API is limited to 30 second previews
- Napster API is limited to 30 second previews
- Google music has no public API
- Amazon music has no public API
- Tidal has no public API
- Soundcloud hasn't accepted new API application requests in years
- Pandora doesn't offer streaming chosen tracks
- Around its peak, ToTheBestOf.com received over 100,000 requests per week
- call Last.FM for track popularity
- call youtube to use as a song provider
- basic interactive executable
- bundle / reformat code for remote server deployments
- webpage for interacting with service
- caching / storing of youtube API calls
- caching / storing of last.FM API calls
- actual logging
- hide each embedded video behind a button to lower unused youtube search calls