Latest release
v1.3 — generate from a playlist, M3U import, and bulletproof de-duplication
7 May 2026 · Build 7
A bigger update than v1.2.1. Two new ways to scope what the generator picks from, a fix for sets coming up short on time, and a structural overhaul of the de-duplication logic so the same track can't slip into a playlist twice.
Source from a specific Rekordbox playlist (not just the whole library)
The most-requested feature since launch. DJs with big libraries often have a few "lane" playlists curated by hand — by genre, key, BPM range, or just vibe — and want to build a set out of just that selection rather than dipping into everything they own.
The Generated Playlist column now has a Source picker that defaults to "Whole library" but lets you pick any Rekordbox playlist you've imported. The generator scopes to those tracks for everything downstream — genres available in the picker, BPM range bounds, the energy arc — all tighten to match the playlist's contents the moment you switch.
Upload an M3U / M3U8 file as a source
Same idea, but for playlists you've made outside Rekordbox. M3U is a near-universal playlist file format — a plain-text list of audio file paths — and most DJ tools and music apps can export one. boots.list now reads them.
Drop into the Playlist (M3U) tab of the Import Collection card, choose the file, and it becomes a selectable source. Paths in the M3U get matched against your imported Rekordbox library, so the generator still has all the BPM, key, and genre data it needs.
Sets now match the requested duration
A handful of users reported that after re-importing a generated M3U into Rekordbox, the playlist clocked in a couple of minutes shorter than the slot length they'd asked for. The stopping rule was the culprit — the old logic stopped adding tracks the moment the next track would tip the cumulative time past the target, which often left the running time a few minutes under.
Replaced with a simpler rule: keep adding tracks until the cumulative time meets or exceeds the target, then stop. The track that crosses the line stays in. DJs would rather have a couple of spare tracks they can drop than run out of music a minute or two early.
Same track can no longer appear twice
v1.2.1 added de-duplication on Rekordbox track ID and on a normalised artist + title key. That caught most cases, but missed a real one: two library entries that point at the same physical audio file (the user has the same .mp3 added to Rekordbox twice with different metadata). Both passed dedup. Both landed in the M3U. Rekordbox silently collapsed them on import — so the app showed 42 tracks but the imported playlist had 17.
Now the generator filters by both track ID and file path, so duplicates by either dimension are impossible. There's also a belt-and-braces guard inside the build loop: if the track-picker ever hands back a track that's already used (it shouldn't, but…), the loop breaks rather than appending the duplicate. A short playlist plus a clear warning is always better than silent repeats.
"Not enough music" warning instead of padding
If you've narrowed your filters down so far that the unique-track pool runs out before reaching the requested duration, the generator now stops and shows a modal warning explaining how short the slot fell ("only ~42 min of unique tracks available for a 60 min set") and what to try (widen the BPM range, pick more genres, choose a different source playlist).
Previous behaviour was to silently return a shorter playlist, which the user only noticed once they re-imported into Rekordbox. The popup catches it before that.
Other things in this release
- The Preview Demo button on the login screen is gone. Auth is required to enter the app — it was originally a development convenience and shouldn't have shipped.
- The Source picker is always visible once a library is loaded (previously it would hide if your XML export didn't include any Rekordbox playlists).
- Library-import notice now always surfaces the playlist count, even when zero — so if your Rekordbox export accidentally omitted the
<PLAYLISTS>section you can spot it immediately. - Import Collection card now has a clean tabbed control for switching between XML and M3U import, with reliable hit-testing.
- Fixed a scrolling glitch where the Import card could render up over the History card.
Auto-updates for direct-download users (from the next release on)
If you're running the direct-download build, future updates land via an in-app prompt instead of an email + manual re-download. The app checks for new versions at launch and every 24 hours; when one's available you'll see a small "boots.list X.Y is available" dialog with release notes and a one-click Install Update button. App Store users continue to update through the App Store as usual.
This kicks in from the next release onward, so the next time you update you'll see it work.
As always, bug reports and feature requests at contact@bootslist.app — most of v1.3 came from user feedback in the first three weeks of v1.2.x.