Spaces:
Running
Running
| import gradio as gr | |
| import re | |
| def convert_url_to_mp3(url: str): | |
| """ | |
| Convert a Suno song URL to the direct MP3 link. | |
| Returns a tuple: (displayed URL, downloadable URL) | |
| """ | |
| match = re.search(r'suno\.com/song/([a-f0-9\-]+)', url) | |
| if not match: | |
| return "Invalid Suno URL", None | |
| song_id = match.group(1) | |
| mp3_url = f"https://cdn1.suno.ai/{song_id}.mp3" | |
| return mp3_url, mp3_url # first displayed, second downloadable | |
| # Define the Gradio interface | |
| demo = gr.Interface( | |
| fn=convert_url_to_mp3, # Use the function name convert_url_to_mp3 | |
| inputs=gr.Textbox(label="Enter Suno song URL", placeholder="https://suno.com/song/..."), | |
| outputs=[ | |
| gr.Textbox(label="MP3 URL"), | |
| gr.File(label="Download MP3") | |
| ], | |
| title="Suno → MP3 Converter", | |
| description="Enter any Suno song URL to get a direct MP3 link." | |
| ) | |
| # Launch the Space | |
| if __name__ == "__main__": | |
| demo.launch(share=True, debug=True) |