https://github.com/albinodrought/daily-shuffle
Take your daily mixes, put them into a single playlist, and shuffle them. That's it.
https://github.com/albinodrought/daily-shuffle
Last synced: about 2 months ago
JSON representation
Take your daily mixes, put them into a single playlist, and shuffle them. That's it.
- Host: GitHub
- URL: https://github.com/albinodrought/daily-shuffle
- Owner: AlbinoDrought
- License: cc0-1.0
- Created: 2022-07-21T05:44:36.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2025-01-17T04:52:54.000Z (4 months ago)
- Last Synced: 2025-02-07T02:46:27.412Z (3 months ago)
- Language: JavaScript
- Size: 38.1 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Daily Shuffle
Take your daily mixes (or other playlists), put them into a single playlist, and shuffle them. That's it.
## Usage, Default Mode
1. Save/like/follow all your Daily Mixes in Spotify so they become visible in the API: https://community.spotify.com/t5/Spotify-for-Developers/How-can-I-get-access-to-Made-for-You-playlist-by-Web-API/td-p/5186504
2. Create a Spotify developer app with `http://localhost:8080/callback` as a redirect URI: https://developer.spotify.com/dashboard/applications
3. `npm install`
4. Run a local server to grab a refresh token: `DS_CLIENT_ID=your-client-id DS_CLIENT_SECRET=your-client-secret DS_REDIRECT_URI=http://localhost:8080/callback npm run serve`
5. Visit http://localhost:8080 , follow prompts, copy displayed refresh token, close server
6. Run `DS_CLIENT_ID=your-client-id DS_CLIENT_SECRET=your-client-secret DS_REDIRECT_URI=http://localhost:8080/callback DS_REFRESH_TOKEN=your-refresh-token npm run shuffle` to create or update a playlist named "Shuffled Daily Mix"
7. Set up that above command to run on some kind of schedule
Enjoy
## Usage, Specified Playlist Mode
1. Create a Spotify developer app with `http://localhost:8080/callback` as a redirect URI: https://developer.spotify.com/dashboard/applications
2. `npm install`
3. Run a local server to grab a refresh token: `DS_CLIENT_ID=your-client-id DS_CLIENT_SECRET=your-client-secret DS_REDIRECT_URI=http://localhost:8080/callback npm run serve`
4. Visit http://localhost:8080 , follow prompts, copy displayed refresh token, close server
5. Run `DS_CLIENT_ID=your-client-id DS_CLIENT_SECRET=your-client-secret DS_REDIRECT_URI=http://localhost:8080/callback DS_REFRESH_TOKEN=your-refresh-token DS_MODE=specified DS_PLAYLIST_IDS=4DuqOBYEPT68kcmjJLNQXH,5OZmj122jnzf3Z4kQb60En DS_PLAYLIST_NAME="My CD 123" DS_PLAYLIST_DESCRIPTION="Sample Text" npm run shuffle` to create or update a playlist named "My CD 123" containing a shuffled version of songs in your specified playlists
6. Set up that above command to run on some kind of schedule
Enjoy
## Workaround, inaccessible Daily Mix playlists
You might get a 404 error when attempting to access your Daily Mix playlists over the Spotify Web API.
Create an external command to retrieve them anyways. This is an exercise for the reader. Here's an example:
```go
package mainfunc main() {
playlistIDs := strings.Split(",", os.Getenv("PLAYLIST_ID")) // base62 IDs separated by comma
for _, playlistID := range playlistIDs {
for _, trackInPlaylist := range getTracksInPlaylist(playlistID) {
println(trackInPlaylist) // spotify:track:base62id
}
}
}
```Specify this command and any required arguments in `DS_EXTERNAL_TOOL_COMMAND`, like `/path/to/command --foo=bar baz`.
Then, when you run daily-shuffle, you will see the text `Looking at playlist songs using external tool...` instead of just `Looking at playlist songs...`