spotify library for scripting. Additional classes for playlist management and listening tracking
Go to file
2019-12-20 00:34:55 +00:00
spotframework added return self for ease of code when refreshing access token 2019-12-20 00:34:55 +00:00
.gitignore separated spotframework from web front, centralized logging init 2019-09-05 12:20:21 +01:00
alarm.py updated variable names, added to auth process, added device_name to player 2019-10-01 19:20:22 +01:00
backup.py added catch for no network username 2019-10-10 21:56:50 +01:00
generate_playlists.py updated variable names, added to auth process, added device_name to player 2019-10-01 19:20:22 +01:00
getaccesstoken.py updated variable names, added to auth process, added device_name to player 2019-10-01 19:20:22 +01:00
README.md fix name 2019-12-03 18:31:30 +00:00
requirements.txt separated spotframework from web front, centralized logging init 2019-09-05 12:20:21 +01:00
sort_playlist.py updated variable names, added to auth process, added device_name to player 2019-10-01 19:20:22 +01:00

spotframework

scripting framework for interacting with the spotify web api

  • alarm

daily script which finds this months playlist (eg. 'may 19') and starts playback on a specified device id. if the monthly playlist can't be found a fallback spotify uri is used.

the script is conditionally run after receiving a response from a ping sent to a phone's ip so the scipt is only run when i'm at home. as phones won't typically respond to pings unless the screen is on multiple pings are sent and the script is scheduled for the same time as my mobile alarm

  • backup

script to pull all user owned playlists and backup each to a separate csv file at the specified path

  • generate playlists

my spotify playlists are quite granular for different sub genres, this script takes groups of playlists and genereates one "super-playlist". took inspiriation from my main use of Paul Lamere's smarter playlists

by default playlists are reverse release date sorted, adding a shuffle tag to the config will do so.

example config schema:

{
  "playlists": [
    {
      "name": "ELECTRONIC",
      "id": "{spotify playlist id}",
      "playlists": [
        "house",
        "garage",
        "jungle",
        ...
      ]
    },
    {
      "name": "METAL",
      "id": "{spotify playlist id}",
      "shuffle": true,
      "playlists": [
        "metal",
        "death metal",
        "black metal",
        ...
      ]
    },
    ...