The purpose of this site is to take several Spotify Playlists and generate a single playlist from them.
The system then monitors those lists for changes and propagates any changes to the master list. This means that you can now follow spotify created lists or user created lists that change frequently to make your own mix in a single list. Ideal for mobile users. Can also be used to merge Spotify playlists!
Our website is made possible by displaying online advertisements to our visitors.
Please consider supporting us by disabling your ad blocker. Alternatively, subscribe to our VIP membership to completely remove ads and therefore also remove the need for your ad blocker on our site. Details can be found on the Profile page once you are signed in.
First off. Welcome! Thank you for choosing IntelliMerge for Spotify. Here is a quick crash course to getting your first Master Playlist set up and monitoring playlists for changes.
  1. Creating your first Master Playlist.
    The first thing you'll want to do is head to the Playlist Editor and create a Master Playlist. This is the playlist that the system will change as your linked playlists change. You can
    import an existing playlist from Spotify or
    create a new playlist.
  2. Creating Playlist Links to your Master Playlist.
    After you've created your Master Playlist in the System, you'll want to start telling the system which playlists should be monitored for changes. The system will look at all of the songs that are on your linked playlists and then add them to your Master Playlist. To edit your links click the
    button in the Actions column. All of the playlists that you follow on Spotify will be displayed. If you want to create a link to a playlist that is not in this list, you'll need to find it on Spotify, follow it and then return to IntelliMerge for Spotify. Once a link is created, you can unfollow the playlist. This lets you create links to playlists that you dont even have in your account. Handy. There are two types of links you can make for a playlist: Includes and Excludes (Please read the FAQ further down on this page titled "What does it mean to Include/Exclude playlists? Should I just Exclude everything I'm not Including?"). You can
    Include a playlist or
    Exclude a playlist from your master Playlist. You will not be able to include or exclude a Master Playlist from itself, but you can include or exclude it from other master playlists..
  3. Filter your playlists.
    If you're an avid playlist link creator you may want to show the playlist links that you've created in the past without showing all of the playlists you follow. At the top of the Edit Links window there will be tabs that let you filter the results to things like All Followed, All Linked, or a combination of those. Click those to only show the playlists pertinent to the tab you want to see.
  4. Unfollow or Follow a Playlist.
    Now that you've created a link to a playlist, you no longer need to follow it. If you choose, you can click the
    UnFollow button to remove it from your Spotify account. Some of the playlists you have will be missing this button. These are the playlists that you own and cannot Unfollow. If you have created a link to a playlist, and then unfollowed it, you will also have the option to
    Follow it again. When you are done, you can either press the x in the top right of the pop-up window, press close at the bottom right, or use the back button on your device. It saves the changes as you make them, so there is no 'Save' button to hit when you are done.
  5. Edit settings of the Master Playlist.
    The defaults of a Master Playlist will work for most users, but you may want to take a look at what settings are available for each Master Playlist. To edit the settings of each Master Playlist you can click the
    button in the Actions column from the Main page. You can also access the scan/update logs for each Master Playlist from the settings pop-up window (coming soon).
  6. Creating your Master Playlist on Spotify.
    If you did not import a playlist in step 1, you will be required to tell the system that it's time to create it on Spotify and link it to your newly created playlist. This is not done automatically to give you time to set the links and settings before the updater picks it up for the first time. Click the
    Create button to create it in your Spotify Account. Now you just have to wait for the next Scan to pick up your playlist and update it. You can see the last time that your playlists were scanned below your list of master playlists, or on your profile page. In both places, you can click
    to manually queue it for update as well. If you make a large number of changes to the links, this is a great tool to get your master playlists updated quickly.

With a VIP Membership, you can have all these extra features listed below. Show your appreciation for the service and pledge a few extra dollars each month to make sure that IntelliMerge for Spotify stays online and running smoothly. Thank you very much for your support!
Manage Your Subscription

Longer Playlists: By default we only pull the first 5000 songs before we stop. If you have VIP we up that limit to 10000.

More Playlists: Basic users are limited to only creating 2 Master Playlists that are updated. VIP users can make 20 Master Playlists.

Link to Liked Tracks: Link your liked tracks to a Master Playlist directly. This isn't technically a playlist at all, but VIP users are able to link it anyway.

No Ads: We need to pay for the servers somehow and we'll cut out the middle man and hide those pesky ads if you opt to give us a few extra dollars each month instead.

More frequent updates: Basic users only get their playlists updated once every 24 hours but as a VIP member your playlists are scanned every 60 minutes.

Queue Playlist Refresh: We give you the ability to queue your playlists for a refresh. Did you just make a bunch of changes to your links? Now you can queue a refresh to pick it up at the next scan.

API Access: You can make your own API requests to our backend directly. We'll give you an API Key and you can query the status of your playlists, add and remove playlists, or queue a refresh.

Master Playlist Update Logs: We'll give you access to the update logs, letting you see how much was added or removed for the last 20 runs for each Master Playlist.

Webhooks: Once we finish updating your playlists, we'll send an update package to the webhook url that you define. Use this to get notifications in slack, discord, IFTTT, or many others.

Beta Access: The newest features and bug fixes are pushed directly to the VIP users first. This means that they will often get more functionality turned on before the regular users.

Our never-ending appreciation: This project has been the result of input from many people and that feedback has led to continuous improvement. We could not have done that without you! Thank you very much! With your subscription comes a very heart-filled Thank you!

VIP Membership on IntelliMerge for Spotify does not include any membership with Spotify, either implied or explicitly. As a third-party beneficiary of the WritheM Terms of Service / End User Licence agreement and privacy policy, Spotify is entitled to directly enforce our end user license agreement on our behalf. We reserve the right to change limits and benefits of our VIP membership at any time. We will do everything we can to inform you of these changes before we make them via our Change Log at the FAQ page. If your account on Spotify is closed, you are responsible for also cancelling your VIP subscription on our system. We do not monitor your account status on Spotify. We do not guarantee system availability but will make every effort for 99.9% uptime. All VIP memberships are non-refundable and service interruptions or cancellations beyond our control are not cause for any refunds (either partial or in full). Scheduled maintenance and outages will be posted on our system status page that can be found at https://status.writhem.com/. The scan/update service runs on the plebian server. The website runs on praetor server. Both of these servers are hosted at WM2-AB-CA. Cancelling your Intellimerge VIP membership does not delete or remove any information on either Spotify's servers or the WritheM Project server. To request removal of your account information from the WritheM Project server, please follow the process outlined at in the FAQ page.

Great! We've built the site based largely on feedback from people just like yourself. We would love to have your input. You can head over to our GitHub repository to make your feature requests or bug reports. We have some great resources for contributing to the project there including a preview of some features that might be added to future versions of IntelliMerge for Spotify.
Your privacy is important to us so we wanted to expand on our Privacy Policy and how it pertains specifically to IntelliMerge for Spotify.
  • We will never sell your information either as an anonymized collection or as distinct. Unless required to share any information by law enforcement agencies or agreements with our third party vendors (including but not limited to Spotify), we will never willingly give information about your usage of this service to anyone. You can always request an export of the data that we capture about you as well. Please create a support ticket for this and allow 7-14 days for us to process requests of this nature.
  • We only capture information from your account or usage that we absolutely require to perform the services we promise to provide. In addition to this, we only request access to the elements of your account that we absolutely require to perform the services we promise to you. This means things like age, name, or any security information about your Spotify profile are never stored in our database. We do log IP addresses and information such as browser used, but never store this in any way that can be 'linked' to a specific user. This technical information is captured to monitor security and performance as well as develop the service further (If the majority of our users switch to Internet Explorer 6.0 then we may consider re-writing our website to support that). Most recently this is what has led us to completely rewrite the website with mobile first design. We found that >65% of our users were mobile users.
  • If you're using our API we do log detailed information about its usage. This includes when, who, and what is requested. We only log uses of our API if directly using an APIKey and not when a user is logged in. Only VIPs are given the option to generate an APIKey. Usage of our API constitutes agreement with our detailed logging.
  • We also log detailed information about webhooks. This includes failure rates and full history of the set urls and their responses. We log this to deter and control abuse of the feature. As this is a VIP only feature that users must opt-in to use, if you are uncomfortable with our logging of this, do not use it. Usage of the Webhook features, constitutes agreement with our logging of your usage of this feature.

This will let you opt-out of tracking. You may choose to prevent us from aggregating and analyzing the actions you take here. Doing so will protect your privacy, but will also prevent us from learning from your actions and creating a better experience for you and other users.
In short, no. Songs that are on an Excluded list will never be added to your Master Playlist. It's a sort of blacklist. Let's think of an example. I want to create a Master Playlist that includes my country's Top 50 tracks on Spotify, but it occasionally has an artist that I can't stand. If I find a playlist that includes all of the songs I would never want to include (Most artists have a "This is __" created by Spotify that would be perfect for this), then I can set that as excluded from my Master Playlist. My Master Playlist will then only contain the songs that are in the Included Top 50 but not on the Excluded 'This is __' playlist. Alternatively, you can create your own Excluded playlist on Spotify and then exclude that from your Master Playlist. You can Include or Exclude as many playlists as you want, but know that the system will only pick up the first ~5000 songs for Basic users, or ~10000songs for VIP Users.
We currently limit the number of songs that will be added to a master list, as well as the number of master lists per account. To keep the number of hits to the Spotify API reasonable, we only add the first 5000 songs that are found on a scan. We first compile a list of songs we need to add, accounting for the songs that are excluded, and stop once we hit 5000 songs. Then we remove the old songs, which means that if we need to remove any, you'll have less than 5000 songs. Once the updater runs again, it should pick up some additional songs and get you closer to 5000 songs though. Additionally, we do increase this basic limit to 10000 songs for VIP Users. Finally, users will only be able to make 2 Master Playlists per account. VIP Users are allowed to make 20 Master Playlists.
Those numbers in the last update section of the graphic are what the system did to your track count last time it updated your master playlist. It will show the last date that it updated (according to UTC) and how many songs were added or removed. In this example there were 20 songs added and 3 removed. Now you know when the last time the master list was updated and by how much :)
As part of our agreement to access the Spotify Servers we agree to some conditions. One of which is to delete all information on our server if you revoke access to the app. To revoke this app from accessing your account going forward you can go to your Spotify Account Settings -> Click Apps and then click the Revoke Access button next to IntelliMerge for Spotify. A direct link to this page is here. Once we detect that we no longer have access to your account we put your account on hiatus until you sign back in via the web browser and re-authenticate the app. If your account stays in a hiatus status for 60 days, we remove all records of your playlists and the associations you made on the IntelliMerge for Spotify app. If you wish to manually reduce this wait period to zero, you can email our support or use our contact form and ask for manual account deletion. You will also need to provide us with your Support ID which can be found on your profile page to verify the ownership of your account.
The scale of this project has certainly grown but it is still endorsed and supported by WritheM Web Solutions. We provide a free tier as service to our users, but any donations you would like to make would be appreciated! You can send us pennies via paypal, or click this button. We also have a longer term commitment that allows people to support the service. Check out the VIP Membership from your profile page for more details.
Keep an eye out in the future for opportunities to earn your VIP membership for free by developing translations for the system too! We are planning on supporting many different languages in the future and will need help translating the system. Soon™.

Here is a copy of the updates as they were originally posted on the main page. Each named version is included below.
We are currently running version: imfs-2.3-20240402-prod build: 4649

02 Apr '24: v2.3.0.4649 - πŸ—οΈπŸ•°οΈ

Some long desired features are on the horizon but some necessary design/infrastructure changes caused some of the existing feature sets to break. This means that I needed an intermediate release to correct the new glitches that have come up with the infrastructure upgrades but push the features until we get more user testing on them. The next "minor" release should contain all of the features I've been building (including importing/exporting playlist links and webhooks).

Added

  • I've changed the way some of the API calls are processed and altered the getMasterPlaylists API method. It now returns the full list of playlist links with the existing MasterPlaylist object. This is the first step to being able to export your playlist links for backup/sharing. The next version will implement this feature in the UI. The UI will also be able to import using existing API functions.
  • Some database changes were also required for some upcoming features including the ability to suppress playlist description logs (#33)

Fixed

  • Another maintenance update. This time to increase the version for PHP and the Spotify API library. Things should be relatively invisible [now], but upgrades were necessary to continue being secure and stable.
  • Linked playlists can once again be unlinked. New strict type-casting in PHP 8.2+ and non-dynamic variables made for some errors that were not caught in conditional statements. In some cases PHP would previously return a 1 as true instead of an integer. So we were outputting as a string explicitly instead and then checking for "1" in the UI. We can now check for an integer or bool in the front end to avoid these odd situations.

Known Issues

  • When creating new links to a playlist the Action Buttons are not always built correctly. Closing the Edit Links modal and reopening seems to correct it for now. I assume this is somehow a type-error in the JS library. I will need to track this down further.
  • When updating the links of a list and then returning to the list of Master Lists clicking refresh can sometimes fill a toast with the JSON of your master lists and it's history, rather than updating it directly behind the scene. I am currently investigating the cause. A workaround is to just refresh the page with your browser for now.
15 Sep '21: v2.2.1.4505 - πŸ₯ΊπŸ‘‰πŸ‘ˆ

Fixed

  • Spotify used to limit playlist lengths based on a soft limit. We could request a maximum of 100 songs at a time and if we exceeded a maximum playlist length by those extra few songs then we would be okay. No longer. They have a hard limit of 10,000 songs per playlist. Existing playlists seem to be immune to the issue but we are unable to add songs to those lists or any other beyond the hard limit now. This has forced us to rework the way we add songs to your master lists. We now stop exactly at your limit. Theoretically there might be cases where we have less than your limit given excluded songs and songs to remove from a list but a subsequent scan should bring it close to your limit. We will never add more than the limit though (currently 5,000 for Basic users and 10,000 for VIP users) Issue #27
  • We finally found and fixed a minor display bug that linked to an invalid page on Spotify if you clicked through to a master playlist in certain circumstances. #24
05 Feb '21: v2.2.0.4463 - Saranghae

Here's an early Valentines Day present:

Introducing: Special Playlists. These are playlists that don't actually exist on Spotify, but we let you link link to a Master Playlist anyway. Read on for more explanation as to what they are and why you should care.

New

  • We've added the ability to link your Liked Songs to a Master Playlist. This feature was one of the first requested features since the release of 2.0 so it's nice to finally get it done. Thanks for your patience! (Issue: #6)
  • We've also added 3 new Special Playlists that are normally completely hidden from a user in the Spotify apps. Because we can access the Spotify backend, we can get access to your top tracks over certain periods. We use this to give you access to your Top played tracks of the last 4 weeks, 6 months, and all time. You can exclude these from a Master Playlist to keep it fresh, or include them to populate it with the very best of your library. Enjoy!
  • These two features above will require two additional scopes to your account. Both of these grant the app read-only access to view your library and your top tracks. If you have not previously given Intellimerge permission to access these portions of your Spotify account, you will be prompted the next time you login to Intellimerge with a request to add them. As always, we ONLY use permissions as required to provide you the services we claim to give you. We never cache the data we get from your account or save it for analysis or to share with any third parties. You can refresh yourself of our privacy policy and [how we use your data on our About/FAQ Page](writhem.net/intellimerge/about.php#privacy) however if you choose to not sign-in to the new version everything will continue to work as it did before the new version.

Fixed

  • Hopefully we've fixed some caching issues reported by a chrome-mobile user that was suffering from cached data thanks to chrome's data saver functionality. We now instruct the browser not to cache the variables on the playlist editor page. All images, and scripts should still be cached as it was before. Time will tell if this solves it entirely though... Please report your experience on the github issue if you continue to see any adverse effects: Issue #23

Planned but deferred

We wanted to include these features in this major release, but would rather release these features sooner than making you wait until all of them are done.

  • The ability to follow/anti-follow an artist. #12
  • The ability to support podcasts in master playlists.
12 Jan '21: v2.1.4.4415 - ⌚

Fixed

  • Just a minor update to fix an out-of-bounds error on the manual queue button once we changed the DB field to TIMESTAMP from DATETIME. Clicking the queue for refresh button should now set the last update date to one second past Jan 1, 1970 instead of one second past Jan 1, 0000.
19 May '20: v2.1.3.4405 - βš“

Fixed

  • Further improvements made to the race-condition checking.
  • Some weird scrolling was going on on the FAQ page. Fixed that up and made anchors more responsive. (Issue #15)
13 May '20: v2.1.2.4325 - 🏎️

Fixed

  • Finally found that duplicates glitch pointed out in Issue #10. Was a race condition that if two update threads were running at the same time, they didn't properly claim the task for themselves. To remove any duplicates that IntelliMerge may have added you can either remove them manually or you can remove all songs and let it rebuild entirely. Sorry about that!
11 May '20: v2.1.1.4297 - 🐬

Fixed

  • When the DB is unavailable for whatever reason the user experience was really bad. Added some additional error handling and output (Issue: #11)
  • Was not properly encoding the history id as an integer which was leading to huge overhead in the output of the base62 ids. Corrected.
  • We were outputting the dates in the history table based on a non-ISO format. We've corrected that. (Issue: #13)
07 May '20: v2.1.0.4200 - Livy

This one is all about history, a minor bug fix, and some privacy enhancements.

New

  • We've added the ability to see the history of your Master Playlists in the settings view of each Master Playlist. (Issue: #1)
  • We now respect the Do-Not-Track feature of your browser and allow you to opt-out of analytics tracking. This is a per-device setting but allows you to request us to not track your device and the actions you take on it. We do rely on this information to develop features but wanted to respect your privacy first. You can find this setting in your profile page or the about page under the Privacy question. (Issue: #8)

Changed

  • We now pull the changelog (since 2.0) from GitHub directly. This means we'll have fancier looking news options and the ability to see it via github.com/WritheM/IntelliMerge/releases. We also cache it from GitHub so if they are down or overloaded it wont affect our changelog :-)

Fixed

  • Properly encoding the titles of Master Playlists means that when the name of your playlist contains characters like ™ it'll display that exactly as you enter it. Additionally spaces between words is not replaced by a + anymore. (Issue: #9)
04 May '20: v2.0.1.4100 - ChickieNuggies

May the fourth be with you... Just a small update on this one that affects the Updater.

Fixed

  • Fixed a bug that was erroneously marking accounts for purge
01 May '20: v2.0.0.4060 - Lacquer

Celebrate! 2.0! We have performed a complete re-write of the front-end and most of the backend. Please verify that your master playlists and their links have been correctly migrated from v1.x. I did my best to ensure everything was correct but with over 1100 users and 10k links, I couldn't look at every little thing.

Changed

  • I have added a few limitations... This should allow more room for new users. Included is a limit to the number of Master Playlists that can be created/enabled at once. If you've already created more than the new limit, we've disabled your newest playlists that you've created. You are free to disable and enable your Master Playlists as you please to ensure you can have them all updated but if you remove any, you won't be able to create new ones to replace them. Thank you for being an early adopter!
  • There is a new way of setting Master Playlists to not remove old songs. Instead of including the Master Playlist in itself, we have now created a full option for it. The updater should auto-migrate this setting upon first scan, or you can set it manually in the Master Playlist settings.

New

  • We have added the ability to upgrade your account to a premium level, that comes with premium perks. As a thank you to our early adopters, we are offering 3 months of free VIP to all users (no purchase necessary) or 50% off a paid subscription, effectively giving you 6 months for free when you sign up for an annual subscription. These discount codes will only work until the end of May so act fast. For the 3 months free use IMFS3FREE and for the 6 months free use IMFS50OFF during checkout, which can be started from the new Profile page once logged in.
  • We've implemented ajax loading, which should make the interface seem much more responsive and subsequently makes less hits to the Spotify API, which means we won't get as many errors. It will also be much easier to manage large collections with many links. We implemented a long over-due change in the requirements from the Spotify API which means we don't have to store the owner of a playlist anymore in the local database, keeping true with our privacy policy that ensures we only store exactly what we need.

Fixed

  • We changed the way we handle errors in the updater. Previously if an error happened, we'd log it, save it (for 24 hours), then move onto the next user. Now we also roll-back the change in the database for that user... this ensures that they get a second attempt (or third, etc) when updating. If 5 errors are detected in a row, then we'll skip this update cycle and try again at next interval.
  • Fixed a bug that would continue editing a playlist if it errored out while fetching the included or excluded playlists... this used to lead to most of your songs removed and then added again in the next update. Now it will only add/remove songs to a Master Playlist once it has finished successfully scanning all of the linked playlists for that Master Playlist.
08 Mar '20: v1.2.0.1025-"Clones"
  • I've found the bug that was causing duplicate songs to be added. If you delete all songs in your current master playlists on spotify, it will rebuild it without duplicates and it will never add a duplicate song going forward. Alternatively, manually remove the duplicates. Thanks to Martijn for reporting this back in July '19; Thank you for your patience!
08 Jan '20: v1.1.0.1015-"Algernon"
  • I've had to reduce the frequency that we check for updates. We're just too darn popular! We currently have 3 instances of the generate script running at any time so to reduce the number of hits to the spotify servers we now only check your playlists once each hour. Thanks for your understanding :)
  • To increase efficiency in the incrimental generation script I've moved the purge function to the cleanup process which only executes once a day instead of every 10 minutes. Users who need to be purged will via a separate process that runs once a day.
  • I've also added a bit of additional debug output to help isolate a duplicates glitch that was reported late last year. Updates likely to follow in the next minor version.
11 Jun '19: v1.0.0.1005-"Kokiri-Forest"
  • Welcome to 1.0.
  • You can now blacklist a set of songs with the exclude feature. Check the About/FAQ for full information
  • I have added the ability for you to decide if you want the script to update your cover-art on a per-playlist basis.
5 Jun '19: v0.9.0.900-"Lemon-Squeezy"
  • It is super basic but I've started to work on a theme. This means that the app will fully respect mobile devices and their screen sizes. Things should look much better for mobile users.
  • I am aware that some users have url's in their magic playlist's description. For those users the script is currently double escaping the /'s in the url and making for a messy display after a few runs: "&#x2F". The only solution I have right now is that you dont use urls in your playlist's description. It's not clickable anyway, so I urge you to consider it's importance anyway. :/
30 May '19: v0.8.0.775-"πŸ›"
  • Was updating the playlist log but not sorting it. Now it sorts by date. Most recent at top. Which means the cover art now shows the last time it was udpated, not the first time. Thanks to Martjin for reporting.
  • Playlist descriptions are respected if there is one. A '#log' is appended for the last 5 days at the end of the description.
5 May '19: v0.7.0.680-"Rembrandt"
  • New functionality: The script will now update the cover art and description with a short log of when it added/removed anything. Some users may need to re-oauth for the cover-art to work. TODO: Will add a way to choose if you want the cover art replaced in the future. Dates are based on UTC.
  • A limit has been added of maximum 7500 songs in a single magic list. If more songs are gathered, only the first 7500 songs will be added.
  • I was previously detecting purged accounts based on ANY error from spotify when refreshing the oauth token. I am now properly capturing and purging only instances of token's being revoked on Spotify Accounts. The script will only purge revoked accounts now :) Sorry for anyone who was erroneously purged :( Feel free to use the import feature that I've added to re-add. Shouldn't happen again though.
10 Dec '18: v0.6.0.547-"Brutus"
  • We are just starting to generate updates again after a month of being offline. Thank you for baring with us. We have optimized the script and it should run smoother than ever. Check status.writhem.com for updated information
26 Nov '18: v0.5.0.546-"Caesar"
  • Recently went through some major server upgrades that did two things... Made things run faster, and did not migrate data. Sue me. You don't pay me. Okay don't sue me... please. I this for free. That being said, users will need to reauthenticate and then recreate their magic playlists. Sorry about that :( Should be generating lists again soon.
13 Jun '18: v0.4.0.545-"Reassignment-Surgery"
  • Fixed some assumptions on data-types.
27 May '18: v0.3.0.460-"Echelon"
  • Was getting some spotify api errors. The script catches those now and skips the problematic entry if anything dies. Additionally I output the errors to a log file so that I can analyze the problems later. The file deletes at the start of every day at midnight. Should allow me to fix the problem thon Spotify is throwing...
30 Apr '18: v0.2.0.450-"Owlet"
  • First public version.

Show me some cool stats?

Alright. We don't have a lot of data but:
  • We monitor lists for 2,055 accounts
  • These users have 998 master lists that are linked on Spotify
  • These users have created 21,819 playlist links
And some specific technical stats on our last run:
  • last_add=>0
  • last_del=>0
  • last_exclude=>804
  • last_include=>79,484
  • last_mpls=>25
  • last_users=>2
  • total_add=>310,372,972
  • total_del=>36,600,961
  • total_mpls=>1,338
  • total_runs=>604,374
  • total_users=>2,055
  • time_complete=>2024-12-06 08:10:39 UTC
  • time_current=>2024-12-06 08:18:17 UTC