import os import requests from flask import Flask, render_template, request app = Flask(__name__) prod_token = os.environ.get('SUNO_API_TOKEN') @app.route('/') def index(): return render_template('index.html') @app.route('/generate-song', methods=['POST']) def generate_song(): # Get topic from request data = request.get_json() topic = data.get('topic') print(topic) if not topic: return {'error': 'Topic is required'} # Make a request to the Suno API try: payload = {"topic": topic} # Send the POST request response = requests.post( url = "https://studio-api.prod.suno.com/api/v2/external/generate/", json=payload, headers={ "Authorization": f"Bearer {prod_token}", "Content-Type": "application/json" } ) if response.status_code == 200: song_data = response.json() return song_data['id'] else: return { 'error': f'API request failed with status code {response.status_code}' } except Exception as e: return { 'error': f'Failed to generate song: {str(e)}' } if __name__ == '__main__': app.run(debug=True)