import { createFileRoute } from "@tanstack/react-router"; const pageStyles = ` *,*::before,*::after{box-sizing:border-box;margin:0;padding:0} :root{ --bg:#0a0a0a;--surface:#141414;--border:#262626;--text:#fafafa;--muted:#a1a1aa; --primary:#ff5500;--primary-glow:#ff7a33;--gradient:linear-gradient(135deg,#ff5500,#ff7a33); } html{scroll-behavior:smooth} body{font-family:'DM Sans',system-ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.6} h1,h2,h3,h4{font-family:'Space Grotesk',system-ui,sans-serif;font-weight:700;line-height:1.2} a{color:var(--primary);text-decoration:none} a:hover{text-decoration:underline} img{max-width:100%;height:auto;display:block} .container{max-width:1100px;margin:0 auto;padding:0 1.5rem} nav{position:sticky;top:0;background:rgba(10,10,10,.85);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);z-index:100} .nav-inner{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;max-width:1100px;margin:0 auto;flex-wrap:wrap;gap:1rem} .logo{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:1.25rem;background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text} .nav-links{display:flex;gap:1.5rem;list-style:none;flex-wrap:wrap} .nav-links a{color:var(--muted);font-size:.95rem} .nav-links a:hover{color:var(--text);text-decoration:none} .breadcrumb{padding:1rem 0;font-size:.85rem;color:var(--muted)} .breadcrumb a{color:var(--muted)} .breadcrumb span{margin:0 .5rem} .hero{padding:4rem 0 5rem;text-align:center;position:relative;overflow:hidden} .hero::before{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:600px;height:600px;background:radial-gradient(circle,rgba(255,85,0,.15),transparent 70%);pointer-events:none} .badge{display:inline-block;padding:.4rem 1rem;background:var(--surface);border:1px solid var(--border);border-radius:999px;font-size:.85rem;color:var(--muted);margin-bottom:2rem} .hero h1{font-size:clamp(2.25rem,5vw,3.75rem);margin-bottom:1.25rem} .gradient-text{background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text} .hero p.lead{font-size:1.125rem;color:var(--muted);max-width:38rem;margin:0 auto 2.5rem} form.dl-form{display:flex;flex-wrap:wrap;gap:.75rem;max-width:42rem;margin:0 auto;position:relative} form.dl-form input[type=url]{flex:1;min-width:240px;height:3.5rem;padding:0 1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:.75rem;color:var(--text);font-size:1rem;font-family:inherit} form.dl-form input[type=url]:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(255,85,0,.2)} form.dl-form button{height:3.5rem;padding:0 2rem;background:var(--gradient);color:#fff;border:none;border-radius:.75rem;font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:1rem;cursor:pointer;box-shadow:0 8px 24px rgba(255,85,0,.35);transition:opacity .2s} form.dl-form button:hover{opacity:.92} .form-note{margin-top:1rem;font-size:.85rem;color:var(--muted)} section{padding:4rem 0} section h2{font-size:clamp(1.75rem,3vw,2.5rem);margin-bottom:1rem;text-align:center} section .sub{color:var(--muted);text-align:center;max-width:40rem;margin:0 auto 3rem} .grid{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))} .card{background:var(--surface);border:1px solid var(--border);border-radius:1rem;padding:1.75rem} .card h3{font-size:1.15rem;margin-bottom:.5rem} .card p{color:var(--muted);font-size:.95rem} .card .num{display:inline-flex;width:2.5rem;height:2.5rem;align-items:center;justify-content:center;background:var(--gradient);border-radius:.6rem;font-weight:700;margin-bottom:1rem;color:#fff} .compare{overflow-x:auto;margin-top:2rem} .compare table{width:100%;border-collapse:collapse;background:var(--surface);border-radius:1rem;overflow:hidden;border:1px solid var(--border)} .compare th,.compare td{padding:1rem 1.25rem;text-align:left;border-bottom:1px solid var(--border);font-size:.95rem} .compare th{background:#1c1c1c;font-family:'Space Grotesk',sans-serif;color:var(--text)} .compare td:first-child{font-weight:500} .compare .yes{color:#4ade80;font-weight:600} .compare .no{color:#ef4444} .long-content{max-width:48rem;margin:0 auto} .long-content h3{margin-top:2rem;margin-bottom:.75rem;font-size:1.35rem} .long-content p{color:var(--muted);margin-bottom:1rem} .long-content ul{color:var(--muted);margin:1rem 0 1rem 1.5rem} .long-content li{margin-bottom:.4rem} .faq details{background:var(--surface);border:1px solid var(--border);border-radius:.75rem;margin-bottom:.75rem;padding:1.25rem 1.5rem} .faq summary{cursor:pointer;font-weight:500;font-family:'Space Grotesk',sans-serif;list-style:none;display:flex;justify-content:space-between;align-items:center} .faq summary::after{content:'+';color:var(--primary);font-size:1.5rem;font-weight:300} .faq details[open] summary::after{content:'\\u2212'} .faq details p{color:var(--muted);margin-top:.75rem} .tools-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))} .tools-grid a{display:block;padding:1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:.75rem;color:var(--text);text-align:center} .tools-grid a:hover{border-color:var(--primary);text-decoration:none} .tools-grid a span{display:block;color:var(--muted);font-size:.8rem;margin-top:.25rem} footer{background:var(--surface);border-top:1px solid var(--border);padding:3rem 0 2rem;margin-top:4rem} .footer-inner{display:flex;flex-wrap:wrap;gap:2rem;justify-content:space-between;align-items:flex-start} .footer-col h4{margin-bottom:1rem;font-size:1rem} .footer-col p{color:var(--muted);font-size:.9rem;max-width:18rem} .footer-links{display:flex;flex-direction:column;gap:.6rem} .footer-links a{color:var(--muted);font-size:.9rem} .footer-bottom{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--border);text-align:center;color:var(--muted);font-size:.85rem} @media (max-width:600px){ .hero{padding:3rem 0 4rem} section{padding:3rem 0} .nav-links{gap:.9rem} .nav-links a{font-size:.85rem} } `; export const Route = createFileRoute("/")({ head: () => ({ meta: [ { title: "SoundCloud to MP3 Downloader - Free SoundCloud MP3 Converter" }, { name: "description", content: "Free SoundCloud downloader. Convert SoundCloud songs to MP3 in seconds. Restricted tracks fall back to YouTube via RapidAPI. No signup, no JavaScript required.", }, { name: "keywords", content: "soundcloud to mp3, download soundcloud songs, soundcloud mp3 converter, free soundcloud downloader, rapidapi youtube mp3", }, { property: "og:type", content: "website" }, { property: "og:title", content: "SoundCloud to MP3 Downloader - Free MP3 Converter" }, { property: "og:description", content: "Convert SoundCloud songs to MP3 in seconds. YouTube fallback powered by RapidAPI. Free, fast, no signup.", }, { property: "og:url", content: "/" }, { name: "twitter:card", content: "summary_large_image" }, { name: "twitter:title", content: "SoundCloud to MP3 Downloader - Free" }, { name: "twitter:description", content: "Convert SoundCloud songs to MP3 instantly. RapidAPI fallback for restricted tracks.", }, ], links: [ { rel: "canonical", href: "/" }, { rel: "preconnect", href: "https://fonts.googleapis.com" }, { rel: "preconnect", href: "https://fonts.gstatic.com", crossOrigin: "anonymous" }, { rel: "stylesheet", href: "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;700&family=DM+Sans:wght@400;500&display=swap", }, ], scripts: [ { type: "application/ld+json", children: JSON.stringify({ "@context": "https://schema.org", "@type": "WebApplication", name: "SoundCloud to MP3 Downloader", description: "Free online tool to convert SoundCloud songs to MP3 with RapidAPI YouTube fallback.", applicationCategory: "MultimediaApplication", operatingSystem: "Any", offers: { "@type": "Offer", price: "0", priceCurrency: "USD" }, }), }, { type: "application/ld+json", children: JSON.stringify({ "@context": "https://schema.org", "@type": "FAQPage", mainEntity: [ { "@type": "Question", name: "Is this SoundCloud downloader free?", acceptedAnswer: { "@type": "Answer", text: "Yes, our SoundCloud to MP3 converter is 100% free with no signup required.", }, }, { "@type": "Question", name: "Do I need JavaScript to download SoundCloud songs?", acceptedAnswer: { "@type": "Answer", text: "No. This tool works with pure HTML - no JavaScript required.", }, }, { "@type": "Question", name: "What audio quality do I get?", acceptedAnswer: { "@type": "Answer", text: "You get high-quality 128kbps MP3 files, the maximum quality SoundCloud streams publicly.", }, }, { "@type": "Question", name: "Is it legal to download SoundCloud songs?", acceptedAnswer: { "@type": "Answer", text: "Downloading is legal for personal use of tracks where the artist has enabled public streaming.", }, }, ], }), }, ], }), component: Index, }); function Index() { return ( <>
Convert SoundCloud songs to MP3 in seconds. If a track is restricted, we search YouTube via Piped/Invidious and convert the exact-duration match using RapidAPI's youtube-mp36 — all automatically.
Paste any public SoundCloud track URL above. Restricted tracks fall back to a RapidAPI-converted YouTube MP3 with matching duration.
Three simple steps to convert any SoundCloud track to MP3 — no software install, no signup.
Open SoundCloud, find the track you want, and copy its URL from the address bar.
Paste the SoundCloud link into the input field at the top of this page.
Hit the button. Your browser will start downloading the MP3 file automatically.
Built to be the fastest, simplest, and most accessible SoundCloud MP3 converter on the web.
Works on any browser, even with JS disabled. Pure HTML form — accessible, fast, secure.
Get 128 kbps MP3 files — the maximum quality SoundCloud streams publicly.
No signup, no subscription, no hidden fees. Download as many SoundCloud songs as you want.
We don't store your downloads or track your activity. The URL goes in, the MP3 comes out.
Works on phones, tablets, laptops, desktops. Any OS, any modern browser.
Restricted SoundCloud tracks are matched on YouTube by exact duration and converted via RapidAPI.
See how our free SoundCloud to MP3 converter compares to popular alternatives.
| Feature | Our Tool | Other Online Tools | Browser Extensions |
|---|---|---|---|
| Free to use | ✓ Yes | ✓ Yes | ✗ Often paid |
| No signup needed | ✓ Yes | ✗ Often required | ✗ Account needed |
| Works without JavaScript | ✓ Yes | ✗ No | ✗ No |
| No ads or popups | ✓ Yes | ✗ Many ads | ✓ Sometimes |
| MP3 format | ✓ 128 kbps | ✓ Yes | ✓ Yes |
| Mobile friendly | ✓ Yes | ✓ Mostly | ✗ Desktop only |
| Works on any browser | ✓ Yes | ✓ Most | ✗ Chrome/Firefox only |
A SoundCloud downloader is an online tool that lets you save SoundCloud tracks as MP3 audio files to your device. SoundCloud is one of the world's largest music streaming platforms, hosting over 320 million tracks from independent artists, remixers, podcasters, and DJs. A free SoundCloud to MP3 converter like ours lets you save publicly streamable tracks as portable MP3 files you can listen to offline.
When you paste a SoundCloud URL into our form and click "Download MP3", your browser submits the link to our backend server. The server resolves the track, locates the highest-quality public MP3 stream, downloads the audio, and streams the MP3 file back to your browser as a download.
The legality of downloading SoundCloud songs depends on copyright law in your country. Downloading a track for personal, non-commercial offline listening generally falls under fair use. Don't redistribute, sell, or use downloaded tracks commercially without the artist's permission.
Free audio and video downloaders for every platform.
Answers to common questions about our SoundCloud MP3 converter.
Yes. 100% free, no signup, no subscription, no hidden costs.
No. The form submits directly to our server, which streams the MP3 back to your browser. No JS required.
You get 128 kbps MP3 files, which is the maximum quality SoundCloud streams publicly.
Currently single tracks only. Playlist support is on the roadmap.
Private, region-locked, or disabled streams fall back to YouTube. We only use a match with the exact same duration, powered by RapidAPI.
Downloading for personal offline listening is generally fine. Don't redistribute commercially.
Yes. Works on any device with a modern browser.
No. We don't keep a copy, log the URL, or track who downloaded what.