You may know many tools for downloading Spotify songs to MP3, but our Spotify to MP3 shortcut or flow solution has a few advantages.
- Available on Windows, Mac, Android, and iOS (iPadOS).
- You don’t need to install additional apps since Shortcuts for iOS and macOS and Power Automate Desktop for Windows are built-in.
- You see each action to make sure we don’t do anything evil.
- You can customize actions in the Spotify to MP3 shortcut or flow for your preference.
- Completely free without limits.
Spotify to MP3 Flow on Windows
Power Automate Desktop is preinstalled on every Windows 11 PC. It allows you run many kinds of automation tasks. Each task is called a flow. You can assign a keyboard shortcut to trigger a flow. That is to say, you can copy Spotify track URL and press a keyboard shortcut to download the song to your PC.
If you use Windows 10, you can also download and install Power Automate Desktop for free. It woks the same. Let me show you how to import Power Automate Desktop flow.
Step 1. Copy the code at the end of this article. Make sure you don’t include any empty lines.
Step 2. Open the Power Automate Desktop app and create a new flow.
Step 3. Press CTRL+ V to paste the copied code under Main Flow. It will automatically become valid actions.
Step 4. Copy a Spotify track link and run this flow.
This Spotify to MP3 flow will save the downloaded music to C:/Users/Public/Music. You can edit the flow to change the download folder.
Previously, I have shared the Chrunos Multi Downloader flow for downloading videos. If you need to download videos from YouTube, Instagram, Tiktok and more, you can also get that flow.
Spotify to MP3 Shortcut for iPhone and Mac
Shortcuts app was first introduced in iOS 12 and later came to Mac on macOS Monteray. Shortcuts allows you to automate a wide range of tasks, enhancing productivity and efficiency. I have made shortcut to download Spotify tracks to MP3.
Click the button below to get the shortcut. I will also release new updates for the shortcut to imporve performance here. There are two ways to run the shortcut to download music.
- With the Spotify app, locate the track that you want to download. Tap the three-dot icon and select Share. Tap More and select the Spotify to MP3 shortcut. When downloaded, it will prompt you to select a location to save the music file.
- Copy the Spotify track link and open the Shortcuts app to run the shortcut.
If you don’t want to get prompted, you can open the shortcut and edit the Save File action. Simply toggle off the Ask Where to Save option and specify a location in Files to save it. This way, the shortcut will automatically download Spotify music to your preferred location.
I have share a few other Spotify shortcuts including Spotify Playlist Downloader, Shazam to Spotify Playlist, etc. If you are interested, be sure to check my Spotify Shortcuts collection.
Spotify to MP3 Flow for Android
The Automate app for Android enables you to automate various tasks on smartphones and tablets. You can create automation flows using a simple drag-and-drop interface, linking different actions and conditions to customize their device’s behavior.
I believe Automate is the best Shortcuts alternative for Android. With the Automate app, I have created a flow to download Spotify songs to MP3. Let me show you how to use it step by step.
- Download the Automate app from Play Store. It is free without ads.
- Click the button below to import the flow to your Automate.
- Open Automate to start the Spotify to MP3 flow. Then it will be available in Share Sheet.
- Open Spotify and share a song that you want to download.
- Select Automate > Spotify to MP3 from share sheet.
By default, the flow will save downloaded files in your Downloads folder. To be specific, it is “/storage/emulated/0/Download/”. Of course, you can change it to any folder on your Android device.
By the way, the Automate app has one restriction free users can only run a maximum of 30 blocks. My flow contains 14 blocks, so feel free to use it.
FAQ
Absolutely. All these are free to use without restrictions. You can even edit actions to your liking.
Yes. If you need help set up these flows or shortcuts, you can contact me on Telegram or check our Contact Us page. Feel free to suggest any new features or improvements.
Sure. I will release updates to fix errors if any. Be sure to contact us if you have any issues using our Spotify to MP3 solutions.
No. You can view all the actions even without importing them to your device.
You can get our Premium Plan to support us. Along with it, you will get a few advanced shortcuts and flows.
Conclusion
Our Spotify to MP3 solutions offer a free and customizable approach to downloading music from Spotify on Windows, Mac, Android, and iOS. Leveraging built-in tools like Shortcuts and Power Automate, these provide a seamless and efficient method to download music.
Additionally, our commitment to transparency ensures you can trust the process without concerns about data privacy. I hope these tools enhance your music experience and welcome any feedback or suggestions for future improvements.
Web.InvokeWebService.InvokeWebService Url: $'''https://raw.githubusercontent.com/CodyChrunos/Shortcuts/main/spotifytomp3.json''' Method: Web.Method.Get Accept: $'''application/xml''' ContentType: $'''application/xml''' ConnectionTimeout: 30 FollowRedirection: True ClearCookies: False FailOnErrorStatus: False EncodeRequestBody: True UserAgent: $'''Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.21) Gecko/20100312 Firefox/3.6''' Encoding: Web.Encoding.AutoDetect AcceptUntrustedCertificates: False Response=> WebServiceResponse
Variables.ConvertJsonToCustomObject Json: WebServiceResponse CustomObject=> JsonAsCustomObject
SET version TO 1.0
IF version = JsonAsCustomObject.aVersion THEN
Clipboard.GetText Text=> ClipboardText
IF Contains(ClipboardText, $'''spotify''', True) THEN
Web.InvokeWebService.InvokeWebService Url: JsonAsCustomObject.key Method: Web.Method.Get Accept: $'''application/xml''' ContentType: $'''application/xml''' ConnectionTimeout: 30 FollowRedirection: True ClearCookies: False FailOnErrorStatus: False EncodeRequestBody: True UserAgent: $'''Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.21) Gecko/20100312 Firefox/3.6''' Encoding: Web.Encoding.AutoDetect AcceptUntrustedCertificates: False Response=> SpotifyMatePage
Text.ParseText.RegexParse Text: SpotifyMatePage TextToFind: $'''<input name=\"(.*?)\" type=\"hidden\" value=\"(.*?)\" \\/>''' StartingPosition: 0 IgnoreCase: True Matches=> Matches
Text.ParseText.RegexParse Text: Matches TextToFind: $'''\"(.*?)\"''' StartingPosition: 0 IgnoreCase: False Matches=> Matches2
Text.CropText.CropTextBetweenFlags Text: Matches2[0] FromFlag: $'''\"''' ToFlag: $'''\"''' IgnoreCase: False CroppedText=> key
Text.CropText.CropTextBetweenFlags Text: Matches2[2] FromFlag: $'''\"''' ToFlag: $'''\"''' IgnoreCase: False CroppedText=> value
Web.InvokeWebService.InvokeWebService Url: JsonAsCustomObject.api Method: Web.Method.Post Accept: $'''*/*''' ContentType: $'''application/x-www-form-urlencoded''' RequestBody: $'''%key%=%value%&url=%ClipboardText%''' ConnectionTimeout: 30 FollowRedirection: True ClearCookies: False FailOnErrorStatus: False EncodeRequestBody: False UserAgent: $'''Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.21) Gecko/20100312 Firefox/3.6''' Encoding: Web.Encoding.AutoDetect AcceptUntrustedCertificates: False Response=> WebServiceResponse2
Text.ParseText.RegexParseForFirstOccurrence Text: WebServiceResponse2 TextToFind: $'''href=\"([^\\\"]+)\" class=\"abutton is-success is-fullwidth\"><span><span>Download Mp3''' StartingPosition: 0 IgnoreCase: False Match=> Match
Text.CropText.CropTextBetweenFlags Text: Match FromFlag: $'''href=\"''' ToFlag: $'''\"''' IgnoreCase: False CroppedText=> DownloadUrl
IF Contains(DownloadUrl, $'''http''', True) THEN
Text.ParseText.RegexParseForFirstOccurrence Text: DownloadUrl TextToFind: $'''title=([^&]*)''' StartingPosition: 0 IgnoreCase: False Match=> Match2
Text.CropText.CropTextAfterFlag Text: Match2 FromFlag: $'''title=''' IgnoreCase: True CroppedText=> titleCode
LOOP LoopIndex FROM 1 TO 4 STEP 1
@@copilotGeneratedAction: 'False'
Scripting.RunPowershellScript.RunPowershellScript Script: $'''$base64String = \"%titleCode%\"
$bytes = [System.Convert]::FromBase64String($base64String)
$text = [System.Text.Encoding]::UTF8.GetString($bytes)
Write-Output $text''' ScriptOutput=> Title
IF IsEmpty(Title) THEN
SET titleCode TO $'''%titleCode%='''
ELSE
EXIT LOOP
END
END
Text.Trim Text: Title TrimOption: Text.TrimOption.Both TrimmedText=> Title
Web.DownloadFromWeb.DownloadToFile Url: DownloadUrl FilePath: $'''C:\\Users\\Public\\Music\\%Title%.mp3''' ConnectionTimeout: 30 FollowRedirection: True ClearCookies: False UserAgent: $'''Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.21) Gecko/20100312 Firefox/3.6''' Encoding: Web.Encoding.AutoDetect AcceptUntrustedCertificates: False DownloadedFile=> DownloadedFile
Display.ShowMessageDialog.ShowMessageWithTimeout Title: $'''Downloaded in your Preferred Location''' Message: $'''Get Help from Our Telegram Group''' Icon: Display.Icon.Information Buttons: Display.Buttons.OKCancel DefaultButton: Display.DefaultButton.Button1 IsTopMost: False Timeout: 5 ButtonPressed=> ButtonPressed
IF ButtonPressed = $'''OK''' THEN
WebAutomation.LaunchEdge.LaunchEdgeNoWait Url: $'''https://t.me/chrunoss''' WindowState: WebAutomation.BrowserWindowState.Normal ClearCache: False ClearCookies: False Timeout: 5
EXIT Code: 0
ELSE
EXIT Code: 0
END
EXIT Code: 0
ELSE
Display.ShowMessageDialog.ShowMessage Title: $'''Sorry, Failed to Download the Song''' Message: $'''Report the error on Telegram''' Icon: Display.Icon.ErrorIcon Buttons: Display.Buttons.OK DefaultButton: Display.DefaultButton.Button1 IsTopMost: False
WebAutomation.LaunchEdge.LaunchEdge Url: $'''https://t.me/chrunoss''' WindowState: WebAutomation.BrowserWindowState.Normal ClearCache: False ClearCookies: False WaitForPageToLoadTimeout: 60 Timeout: 60 BrowserInstance=> Browser2
END
ELSE
Display.ShowMessageDialog.ShowMessage Title: $'''Error, This is not a Spotify URL''' Icon: Display.Icon.None Buttons: Display.Buttons.OK DefaultButton: Display.DefaultButton.Button1 IsTopMost: False
EXIT Code: 0
END
ELSE
Display.ShowMessageDialog.ShowMessage Title: $'''A New Version Is Available for This Flow''' Message: $'''%JsonAsCustomObject.notes%
%JsonAsCustomObject.release%
Open Your Browser to Get the Update''' Icon: Display.Icon.Information Buttons: Display.Buttons.OK DefaultButton: Display.DefaultButton.Button1 IsTopMost: False
WebAutomation.LaunchEdge.LaunchEdge Url: JsonAsCustomObject.url WindowState: WebAutomation.BrowserWindowState.Normal ClearCache: False ClearCookies: False WaitForPageToLoadTimeout: 60 Timeout: 60 BrowserInstance=> Browser
EXIT Code: 0
END