Posts Tagged smarterplaylists

SmarterPlaylists by the Numbers — A Decade in Review

SmarterPlaylists launched on July 25, 2015 as a side project — a visual programming tool that let anyone wire together Spotify sources, filters, and combiners to build playlists that no single Spotify feature could create on its own. No ads, no business model, no growth team. Just a tool I thought was cool, shared on a few subreddits, and then left running on a single server for over ten years.

Now, as I’m retiring the old system and replacing it with a ground-up rewrite, I cracked open the database one last time to see what a decade of quiet, organic usage actually looks like. The data only goes back to early 2016 (the first ~6 months predate the current database), but even so, the numbers surprised me.

The headline stats: 262,000 people logged in over the years. Nearly 70,000 of them built something. They created 278,600 programs and ran them over 9 million times. More than 50,000 scheduled jobs were still marked “active” when I pulled the plug — playlists that were meant to refresh themselves daily, weekly, or monthly, faithfully updating for years.

Not bad for a weekend project that never got a v1.0.


The Big Picture

MetricValue
Total programs created278,600
Total unique users who built programs69,562
Users who ever authenticated262,181

That gap between “authenticated” (262K) and “built something” (70K) is interesting — nearly 75% of visitors logged in with Spotify, poked around, and left without saving a program. The visual programming interface was powerful but had a steep learning curve. That’s one of the biggest things the rewrite aims to fix.


Run Statistics

MetricValue
Total program runs (all time)9,029,034
Total errors643,645
Error rate7.1%
Programs run at least once205,984 (74%)
Programs never run72,616 (26%)
Mean runs per program (of those run)43.8
Median runs per program4
Max runs (single program)68,351

Nine million runs. That’s roughly 2,500 playlist generations per day on average, every day, for ten years — all from a single server.

The median of 4 runs tells the real story though: most people built a program, ran it a few times to get it right, then either scheduled it or moved on. Meanwhile the mean of 43.8 is dragged way up by power users running programs tens of thousands of times via the scheduler. The gap between mean and median is the signature of a long-tail product.

A 7.1% error rate sounds high, but most errors were transient Spotify API issues — rate limits, expired tokens, playlists that got deleted. The system was designed to shrug these off and retry on the next scheduled run.


Sharing & Discovery

MetricValue
Shared programs (marked public)4,707
Programs imported at least once2,488
Total imports across all programs53,879

Sharing was always a secondary feature — there was no feed, no recommendations, just a “shared programs” page and the occasional Reddit post. Despite that, 53,879 imports means the average shared program that got any traction was imported about 22 times. The most popular one was imported over 5,000 times. Word of mouth carried the whole thing.


Scheduler

MetricValue
Total scheduled jobs ever created56,629
Currently active scheduled jobs50,234
Total scheduled runs1,914,294

This is the feature that kept SmarterPlaylists alive. Nearly 2 million automated playlist updates — your “Discover Weekly Archive” growing every Monday, your “Daily Mix minus songs I’ve already heard” refreshing every morning. Over 50,000 jobs were still marked “active” when I shut things down, though many of those had stale tokens. The scheduler was the heartbeat of the app.


User Distribution

Programs per UserUsers%
147,03168%
2–518,59527%
6–102,4744%
11–501,3502%
50+1120.2%

A classic power-law distribution. Two thirds of users built exactly one program. But that top 0.2% — 112 users with 50+ programs each — they were prolific. The most prolific user created 693 programs. That’s not a user, that’s a hobbyist playlist factory.


Activity Timeline

SmarterPlaylists launched July 25, 2015. The database only goes back to early 2016, so the first ~6 months of activity aren’t captured here.

Earliest recorded run2016-01-03
Latest recorded run2026-03-05

Programs Last Active by Year

YearPrograms% of Total
20164,7511.7%
20179,1853.3%
201813,0164.7%
201912,1764.4%
202021,0327.5%
202116,2905.8%
202215,4635.6%
202313,0944.7%
202411,7404.2%
202512,7214.6%
20265,3021.9%

The COVID bump is unmistakable — 2020 saw a 73% jump over 2019. People stuck at home, listening to more music, and apparently building more elaborate playlists. Usage never quite returned to that peak, but it stabilized at a healthy plateau from 2021 onward rather than falling off a cliff. Even in 2025, over 12,000 programs were still actively running — ten years after launch.

Monthly Active Users (last 36 months)

Note: “MAU” here represents users whose program’s most recent run falls in that month. True monthly active usage was likely higher, since this only captures the last run timestamp per program — a program run daily all year only shows up in its final month.

MonthUsersPrograms
2023-047611,086
2023-058841,324
2023-067251,137
2023-077801,338
2023-08660981
2023-096941,069
2023-107171,051
2023-117131,028
2023-12383611
2024-016381,134
2024-026621,046
2024-03586847
2024-04669941
2024-056561,010
2024-066641,005
2024-07579960
2024-08652959
2024-096391,022
2024-10674938
2024-11627885
2024-12693993
2025-017061,266
2025-02587961
2025-036931,096
2025-04683966
2025-05691939
2025-067241,633
2025-076911,112
2025-08638900
2025-096581,012
2025-106431,096
2025-11509926
2025-12351814
2026-01232547
2026-029082,917
2026-035391,838

The remarkably steady ~600-700 MAU through 2024-2025 is striking for a project with zero marketing. December always dips (holiday lull?), and February 2026 spikes because I started publicly talking about the retirement and migration, which brought a wave of people back.


Top 25 Most Prolific Users (by program count)

RankUserProgramsTotal Runs
1User A6932,115
2User B3877,183
3Julio3794,690
4User C36736,068
5User D35359,331
6User E26825,662
7User F221661
8User G19611,901
9Hunter1904,393
10User H172477
11Nipun16310,078
12Thomas15411,994
13User I1488,149
14User J14418,153
15User K1429,867
16User L142229,198
17User M139800
18User N13632,002
19User O1354,583
20User P1351,054
21User Q1345,682
22plamere1311,404
23User R127169,251
24User S1269,436
25User T11938,211

There’s a fascinating split here between “builders” and “runners.” User A created 693 programs but only ran them 2,115 times — about 3 runs each on average. They were a tinkerer, endlessly experimenting. User L, on the other hand, had 142 programs but ran them 229,198 times — these were workhorse playlists, scheduled and running daily for years. Two very different ways to love the same tool.

Top 25 Power Users (by total runs)

RankUserTotal RunsProgramsErrors
1Tim330,99711035,122
2User L229,1981423,567
3User R169,2511277,963
4User D59,3313533,622
5User U49,040201,090
6Kjell39,445421,397
7User T38,2111191,517
8User V37,3861092,940
9User W37,248331,374
10User C36,068367928
11User X35,765291,851
12User N32,0021363,520
13User Y31,507831,206
14User Z29,75364721
15User AA28,050141,103
16User BB27,16741381
17User CC27,02342796
18Fredrik26,5781151,782
19User DD26,17792567
20User EE25,72531908
21User E25,6622681,260
22User FF25,201121,421
23John24,378711,208
24Roger24,02419733
25User GG22,456331,120

Tim is in a league of his own: 330,997 total runs across 110 programs. That’s roughly 90 program runs per day sustained over years. His top 5 programs alone account for nearly 280,000 runs. Whatever Tim was doing with his music, he was serious about it.

User AA is the efficiency champion — only 14 programs, but 28,050 runs. That’s 2,004 runs per program on average. Build it once, run it forever.

Top 25 Most Run Programs

RankProgramOwnerRuns
1#random.selectTim68,351
2#random.bucketTim68,265
3#random.listening.yearTim66,119
4#nineTim39,852
5#random.release.yearTim36,953
6(unnamed)(unknown)29,850
7(unnamed)(unknown)27,741
8moetjehoren002User U24,510
9(unnamed)(unknown)22,160
10(unnamed)(unknown)19,337
11(unnamed)(unknown)16,626
12(unnamed)(unknown)16,067
13(unnamed)(unknown)13,020
14Today ArtistsUser R11,908
15Songs V2aUser HH10,617
16A listUser GG10,399
17(unnamed)(unknown)10,203
18Combined ListsUser AA10,131
19(unnamed)(unknown)10,048
20(unnamed)(unknown)9,660
21Made For YouUser AA9,526
22(unnamed)(unknown)9,206
23(unnamed)(unknown)8,823
24(unnamed)(unknown)8,150
25my super mixRodolfo8,123

Tim’s top 5 programs owned the leaderboard so completely that the next contender had less than half his #1’s run count. The #random.* naming convention suggests he built a suite of randomization programs — different ways to shuffle his listening by bucket, era, or mood.

A lot of the heavy hitters are “(unnamed) / (unknown)” — these are programs from early in the app’s life, before I started tracking names and owners in metadata. The programs themselves still exist, but the metadata was lost. Ghost playlists, faithfully running for years with no name attached.

Top 25 Most Popular Shared Programs (by imports)

RankProgramOwnerImportsRuns
1My forgotten tracksUser II5,0548
2My Discovery Weekly Archiverplamere4,85360
3yesterday and todayplamere3,40027
4The daily dozenplamere3,2921
5All Time Top TracksAbhishek2,32697
6Combine two playlistsplamere2,18620
7True Release RadarJames1,529244
8Ultimate Coffee Houseplamere1,2877
9Less Teen-Oriented New Musicplamere1,0961
10My forgotten tracksplamere987116
11My Top Played Tracks of All-TimeUser JJ787149
12ShufflerUser KK7695
13BigMixUser LL743351
14Recommended Daily (posted)User J68429
15DailyRecUser LL663469
16Daily DiscoverUser MM641277
17Gothic Metal front-loaded with Ravenscryplamere6154
18RELAXING MUSIC PLAYLIST GENERATORUser NN55316
19My Discovery Weekly ArchiverUser OO50651
20Bot-MixUser J5020
21Will they make it?User PP455448
22My Top TracksUser J4221
23WorkoutUser QQ4153
24recently playedplamere4112
25Cleaning ListUser RR39181

The sharing leaderboard tells you what people actually wanted from Spotify that they couldn’t get natively. The top hits are all utilities: archive your Discover Weekly before it disappears, combine playlists, deduplicate, filter out songs you’ve already heard. “My forgotten tracks” — a program that surfaces songs from your library you haven’t played in a long time — was the single most imported program at 5,054 imports, and User II only ever ran it 8 times themselves. They built it, shared it, and the community ran with it.

I’m a little proud that so many of my example programs (plamere) made it into the top 25. “Gothic Metal front-loaded with Ravenscry” at #17 is a personal favorite — 615 people apparently also wanted their gothic metal playlist to lead with Ravenscry. Niche appeal is still appeal.

25 Biggest Programs (by component count)

RankProgramOwnerComponents
1bing-shortDylan401
2h10User SS305
3h80User SS305
4h90User SS305
5hOldUser SS305
6h20User SS305
7h00User SS305
8h70User SS305
9Nirvana Radio v26User TT289
10Nirvana Radio v26User UU287
11import of Nirvana Radio v26User VV287
12Nirvana Radio v24User UU283
13Nirvana Radio v22User UU282
14Nirvana Radio v23User UU270
15Nirvana Radio v20User UU270
16Nirvana Radio v27.02User TT268
17Nirvana Radio v18User UU267
18Nirvana Radio v21User UU266
19Nirvana Radio v25User UU265
20Nirvana Radio v17 saturdayUser UU261
21Nirvana Radio v17User UU261
22Nirvana Radio v19User UU257
23Rock FavouritesTom254
24Groovy ArtistsUser WW252
25Die drei SchlafezeichenUser XX249

The biggest programs are a testament to user dedication (or obsession). Dylan’s “bing-short” tops the chart at 401 components — that’s a visual program with 401 nodes wired together on a canvas. I can barely imagine what that looks like.

But the real star here is User UU and their “Nirvana Radio” saga. They iterated through at least 27 versions of the same program, each one with 250-290 components, growing and refining it over time. Versions 17 through 27, spanning years. It was popular enough that User TT and User VV imported copies of it. That’s someone who turned SmarterPlaylists into an art form.

Most Used Component Types (across all programs)

RankComponentUsage Count
1SpotifyPlaylist352,807
2Sample59,253
3Shuffler59,138
4PlaylistSave53,270
5MyTopTracks52,261
6Concatenate49,843
7SpotifyArtistRadio44,560
8DeDup43,162
9ArtistTopTracks41,066
10MySavedTracks38,764
11AlbumSource37,538
12Sorter35,645
13comment34,670
14TrackFilter30,325
15Alternate28,736
16RelativeDatedSpotifyPlaylist28,338
17First25,567
18Mixer22,342
19AttributeRangeFilter20,625
20PlaylistSaveToNew17,150
21MyFollowedArtists15,442
22MixIn13,035
23RandomSelector12,129
24Energy11,675
25ReleaseDateFilter11,501
26ArtistDeDup11,219
27SeparateArtists9,974
28Tempo9,850
29Weighted Shuffler9,728
30DatedSpotifyPlaylist9,286

SpotifyPlaylist dominates at 352K uses — almost every program starts with “take this playlist as input.” The rest of the top 10 reads like a recipe: take a playlist, sample some tracks, shuffle them, remove duplicates, and save. That’s the core loop.

The “comment” component at #13 with 34,670 uses warms my heart. It does nothing — it’s just a sticky note on the canvas. But 34,000 times, people felt the need to annotate their programs with explanations. They were documenting their work, even in a visual tool, even when nobody else would see it.


Looking Back

Ten years, nine million runs, seventy thousand users, zero revenue. SmarterPlaylists was never a business — it was a proof of concept that escaped into the wild and found an audience of people who cared about their music enough to program their playlists.

The data tells a story of a long-tail product: most people tried it once, but those who got it really got it. Tim with his 330,000 runs. User UU with 27 versions of Nirvana Radio. The 50,000 scheduled jobs humming away in the background. The person who imported “My forgotten tracks” and rediscovered songs they’d loved and lost.

The new version aims to keep everything that made the old one special — the power, the flexibility, the “I can’t believe I can do this” moments — while making it approachable enough that more than 27% of visitors actually build something.

Here’s to the next decade.

(Thanks to Claude and Gemini for helping me write this post)

Leave a comment

Migrate your legacy SmarterPlaylists programs to the new system.

If you used the original SmarterPlaylists, your programs are still out there — and now you can bring them into the new system.

r/smarterplaylists - Get ready to migrate your old programs into the new system!

How it works

When you log in, you’ll see an Import tab if you have legacy programs. This gives you a browsable list of all your old programs with metadata like run count, last run date, and component count.

From here you can:

  • Browse your old programs in a sortable table
  • Preview any program to see its dataflow graph before importing
  • Selectively import just the ones you want — check a few boxes and hit Import
  • Bulk import everything at once if you prefer

Imported programs show up in your regular Programs list, ready to edit and run. Once you’ve imported everything you need, hit “Done Importing” to hide the tab. You can always bring it back later from the Programs page.

Some things to know

Deprecated components. The original SmarterPlaylists had EchoNest-based components (Artist Radio, Genre Radio, etc.). EchoNest was shut down years ago, so these components are marked as deprecated in the migration. Programs that use them will still import, but those nodes will show a warning and won’t run. You can open the program in the editor and swap them out for Spotify equivalents.

Layout differences. The old editor used a horizontal left-to-right flow. The new editor uses a vertical top-to-bottom layout. The migration tool rotates and rescales your node positions automatically, so your programs should look reasonable in the new editor — though you may want to tidy up the layout after importing.

Expect some rough edges

Here’s the thing: with this migration tool, we’re going to have a lot more variety in the programs people are running. The alpha has been tested with programs built in the new editor, but legacy programs exercise the system in ways we haven’t necessarily anticipated — unusual component combinations, edge cases in filters and sorters, parameter values we didn’t think to test.

This is a good thing. It means we’ll find and fix bugs faster. But it also means you might hit errors that nobody has seen before. If something breaks, please report it in the bugs thread — and if you include the program name and your spotify username it will be easier for me to chase down the bugs.

SmarterPlaylists is still in alpha. Your patience and bug reports are what make it better.

Leave a comment