Daily Grooves is a keep-it-simple music discovery service, featuring a single YouTube playlist refreshed & shuffled daily from hand-picked sources, resulting in no-nonsense instant serendipitous ear delicacy.
Technically, it is a tiny Python2.7 Google App Engine app serving a single static page displaying a YouTube playlist iframe. Each day, a new playlist is created by a GAE cron job firing a Task that crawls a list of sources for embedded/linked videos, shuffles them, and inserts them into a YouTube playlist via the Python API.
If you do not want to use my DailyGrooves instance, you can roll your own:
dailygrooves
app folder (the apiclient, httplib2, oauth2client, uritemplate, gflags.py, gflags_validators.py
files & folders must live next to dailygrooves.py
).client_secrets.json
file, and extract it to the dailygrooves
app subfolder, next to dailygrooves.py
.cron.yaml
to your liking.SOURCE_URLS
. Sources can be any kind of text, I'm not requiring any format (HTML, RSS, whatever), I just read text and run a regex on it.python2 /path/to/your/appcfg.py update /path/to/dailygrooves/dailygrooves/
YOURAPPURL/fetch
in your browser (necessary to cache an OAuth2 refresh token), and ensure 2 hours later that your cron job runs fine.As of November 2015, DailyGrooves runs fine on Python 2.7 / GAE 1.9.28 / GAE-Python-Client 1.1.
Bug Reports and Pull Requests are welcome via GitHub.
Licensed under the MIT license, 2013-2015, ronan@jouchet.fr / @ronjouch.