On a schedule
Save Discover Weekly to a permanent playlist each Monday
Each week's Discover Weekly tracks land in an archive playlist, with no duplicates.
- Runs
- On a schedule
- Apps
- Spotify
- AI
- Not needed
- Access
- playlist-read-private, playlist-modify-private
Send this to your assistant
Create a ClickRuntime automation: every Monday at 9am, copy my Discover Weekly tracks into my 'Discover Weekly Archive' playlist and skip any already there.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Discover Weekly is one of the best things Spotify does, and also one of the most fleeting. Every Monday a fresh set of thirty songs arrives, and the previous week's set is erased. You listen on the commute, hear a track you love, forget to save it, and by the following Monday it is gone. Finding it again means scrolling your history or trying to recall a lyric. Years of recommendations are lost this way.
Every Monday, ClickRuntime reads the current Discover Weekly playlist, reads the archive playlist you keep, and adds any tracks that are not already in it. Nothing is removed from the archive, so it grows into a long record of everything Spotify recommended to you, in order of arrival.
It is meant for people who rely on Discover Weekly to find new music and do not want their favorites to disappear.
What you get out of it
No more lost favorites
A song you enjoyed on Tuesday stays available long after Discover Weekly is replaced. You can return to it months later without having to remember its title. There is no need to decide quickly whether a song deserves saving, because it is kept regardless.
A personal library of recommendations
After a year, the archive holds hundreds of songs chosen for you. It becomes a deep, tailored playlist you can shuffle for variety, with no further effort. Nobody else has a list quite like it, because the songs come from your own listening.
Listening can be unhurried
You no longer need to save songs in the moment or rush through the playlist before it refreshes. The archive keeps the lot, and you can sort out favorites on a quiet weekend.
Duplicates are avoided
Tracks already in the archive are not added again. If Spotify recommends the same song twice in two months, your archive shows it once and does not clutter. That keeps the archive pleasant to browse, with a clean list instead of repeated entries.
Taste changes are documented
Scrolling the archive from the oldest tracks to the newest shows how your taste moved over time, which is a nice thing to see and a useful source for choosing a playlist. Few people ever see their own listening history laid out this way.
How it works
What happens, step by step
Every Monday, ClickRuntime reads this week's Discover Weekly playlist on Spotify.
It checks your archive playlist and skips any songs already there.
The new songs are added to the archive, so you keep each week's picks after Spotify replaces them.
Before it runs live
- Connect Spotify
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Run it at a different time, more or less often, or only on weekdays
- Add an AI step, for example to summarize, sort or draft a reply
- Add another app, for example also send it to Slack
- Combine it with other Spotify steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_trigger, credentials, http
API = "https://api.spotify.com/v1"
ARCHIVE = "Discover Weekly Archive"
def track_uris(h, playlist_id):
uris, url = [], f"{API}/playlists/{playlist_id}/tracks?fields=items(track(uri)),next&limit=100"
while url:
page = http.get(url, headers=h).json()
uris += [i["track"]["uri"] for i in page["items"] if i.get("track")]
url = page["next"]
return uris
@on_trigger
def run(event):
h = {"Authorization": f"Bearer {credentials.connection('spotify', 'personal')}"}
lists = http.get(f"{API}/me/playlists", headers=h, params={"limit": 50}).json()["items"]
ids = {p["name"]: p["id"] for p in lists}
have = set(track_uris(h, ids[ARCHIVE]))
new = [u for u in track_uris(h, ids["Discover Weekly"]) if u not in have]
if new:
http.post(f"{API}/playlists/{ids[ARCHIVE]}/tracks", headers=h, json={"uris": new[:100]})
return {"added": len(new)}FAQ
Common questions
Does it work if I have not saved Discover Weekly?
Is the archive playlist created for me?
What happens if I miss a week?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Reorder a playlist by popularity every week
The best-known tracks move to the top of the playlist each Sunday.
See how it worksEmail yourself a monthly backup of your Liked Songs
On the 1st of each month you get a CSV listing every liked song, artist and album.
See how it worksQueue, skip or pause Spotify from a link
Calling a link adds a track to your queue, skips to the next song or pauses playback.
See how it worksKeep exploring
Set up “Save Discover Weekly to a permanent playlist each Monday” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.