diff --git a/README.md b/README.md index b753bc0..96392d4 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,51 @@ -[playlist manager](https://spotify.sarsoo.xyz) +[Music Tools](https://music.sarsoo.xyz) ================== -playlist managing web app acting as a front-end for the [spotframework](https://github.com/Sarsoo/spotframework) playlist engine +Set of utility tools for Spotify and Last.fm. +Built on my other libraries for Spotify ([spotframework](https://github.com/Sarsoo/spotframework)), Last.fm ([fmframework](https://github.com/Sarsoo/pyfmframework)) and interfacing utility tools for the two ([spotfm](https://github.com/Sarsoo/pyfmframework)). Currently running on a suite of Google Cloud Platform services. An iOS client is currently under development [here](https://github.com/Sarsoo/Music-Tools-iOS). +# Smart Playlists + +Create smart playlists for Spotify including tracks from playlists, library and Spotify recommendations. + +![Playlists List](docs/Playlists.png) +![Playlist Example](docs/PlaylistExample.png) + +Playlists can pull tracks from multiple sources with some extra ones based on the playlist's type. + +* Spotify playlists + - Currently referenced by case-sensitive names of those followed by the user + - Plan to include reference by Spotify URI +* Other Music Tools playlists + - Dynamically include the Spotify playlists of other managed playlists + - Used to allow hierarchy playlists such as for genre (as seen above for multiple rap playlists) +* Spotify Library Tracks +* Monthly Playlists + - ONLY for "Recents" type playlists + - Find user playlists by name in the format "month year" e.g. february 20 (lowercase) + - Can dynamically include this month's and/or last month's playlist at runtime +* Last.fm track chart data + - ONLY for "Last.fm Chart" type playlists + - Include variable number of top tracks in the last date range + +When not shuffled, playlists are date sorted with newest at the top for a rolling album artwork of newest releases. + +Playlists are updated using the [spotframework](https://github.com/Sarsoo/spotframework) playlist engine three times a day. + +# Tags + +Groups of Last.fm objects for summing of scrobble counts and listening statistics. + +![Tag Example](docs/TagExample.png) + +## Structure + +This repo consists of a front-end written in React.js and Material-UI being served by a back-end written in Flask. + +The application is hosted on Google Cloud Infrastructure. + +As this codebase stands it's not really re-useable as is, references to the cloud infrastructure are hard-coded. + +## Acknowledgements + +Took inspiration from Paul Lamere's [smarter playlists](http://smarterplaylists.playlistmachinery.com/). \ No newline at end of file diff --git a/docs/PlaylistExample.png b/docs/PlaylistExample.png new file mode 100644 index 0000000..dfba4f3 Binary files /dev/null and b/docs/PlaylistExample.png differ diff --git a/docs/Playlists.png b/docs/Playlists.png new file mode 100644 index 0000000..a87dec4 Binary files /dev/null and b/docs/Playlists.png differ diff --git a/docs/TagExample.png b/docs/TagExample.png new file mode 100644 index 0000000..1d4bac0 Binary files /dev/null and b/docs/TagExample.png differ