How to download free stems from lalal.ai
and create accurate backing tracks for your practicing sessions
The only publicly available website I know that manages to successfully isolate single instruments from very busy tracks (in my case, Zappa’s guitar solo from Keep It Greasy) is lalal.ai. Out of the box, the website offers a free tier which is basically useless because of two reasons: you can only process a maximum of ten minutes of audio, and you cannot even download the stems afterwards. Luckily, there is a way to bypass both the time limitation and the paywall in order to create infinite high-quality backing tracks for free:
1. Create a free-tier account using a disposable email service
Disposable emails virtually remove the arbitrary ten-minute time limit by allowing you to continuously create new accounts as soon as you reach the limit on the old ones. The website will try to block your attempts to do so (“Please enter your permanent email address, not a disposable one”), but the DuckDuckGo Email Protection service works perfectly fine for our purposes. Set it up on your browser and generate a new fake email address with it every time you log into lalal.ai: this way you will never run out of processing time.
2. Upload and process your file
Once you are logged in, just use the website as intended—select which instrument you want to isolate from the rest of the arrangement, and upload your audio file. When the first preview page appears, click on the button confirming you want to actually process the whole file, and wait until you get redirected to the results.
3. Download the generated backing track
Once the processing is complete, the page will update and show you the two stems it extracted from
your input file. In theory, free-tier accounts should only be able to preview and listen to these
files directly in the browser; downloading them requires a paid account. In practice, though, a
browser cannot play back audio files without also downloading them somehow. If you start the
playback and open your Network tab (CTRL + SHIFT + E on Firefox, F12 → Network
on Chrome), you will be able to see exactly how your browser does it: in this case, each stem is
split in many segments, then fetched selectively according to the playback cursor position (probably
for performance reasons).

Example of a segment file download request. If you click on its title, the browser will reveal in the Headers tab on the right the complete path from which it is fetching the audio file (underlined in red by me).
The good news is that if you copy and paste these URLs in a new tab, you can download and save all
of your audio segments just fine. Each segment is approx. only ten seconds long though, so you
absolutely do not want to copy-paste all of these URLs by hand because there will be dozens of them
and it would take way too much time. Most likely, your operating system already has some kind of
small utility command-line tool for downloading files. On Linux, for example, you could use
curl; on Windows, you could use the Invoke-WebRequest
command on PowerShell instead. Whatever your operating system is, it is very trivial to write a
simple script to automate the download of all these segment files at once, because their URLs only
differ by their segment number in a predictable, sequential way (000
, 001
, 002
, etc.). It is
so trivial, in fact, that even ChatGPT manages to do it correctly. Just ask it to generate a script for
your operating system to automatically iterate through all segments, download them in the current
folder and abort execution as soon as there are no more segments to download. Chances are it will
work perfectly already on your first try, and you won’t have to write any code at all. That is exactly what
happened with the PowerShell script
it spit out for me. You can use it as well, just remember to replace the URL value for $baseUrl
to
whatever your request paths are before running it.
4. Consolidate all segments into one single track
Once you execute your script, you will have a bunch of segment-***.mp3
files laying around in your
folder—you now need to join them all together into one single file. It is not as easy as it looks
though, since there is a very short (~0.012s) but noticeable silence gap at the start of every
segment. The simplest way I found to both trim the start of every file and consolidate them all into
one single track is just by using Audacity
macros. You can download the one I created
and import it in your project (Tools → Macros… → Import…) so you can execute it as well and
process all files simultaneously. Once you have imported it and can see it in the list of available
macros (Tools → Apply macro → Process lalal.ai segments) you can just:
- Import all segments into a new Audacity project. You should see one track for each segment and they should all be aligned with the start of the project timeline;
- Execute the “Process lalal.ai segments” macro. This will trim all segments and automatically align them end-to-end, so that tracks only start when the previous one ends;
- Export your project as a .wav file (File → Export → Export as WAV).
Some examples
Here are just some examples of guitar backing tracks I managed to obtain by following the whole process above. A great thing about it is that the most time-consuming step is basically waiting for lalal.ai to process your audio files—everything else is pretty much instantaneous. Also the resulting quality seems to be generally acceptable, given these tracks are only meant as practice tools. As you can hear, the stem separation algorithm seems to work fine even in very hectic arrangements, or very lo-fi recordings. In some instances it also had the nice side-effect of only isolating the distorted lead guitar and keeping the clean rhythm guitar in, so you can focus 100% on your solos. Happy practicing!