资讯动态

如何从零搭建 Suno-API:把 AI 音乐生成接口接进你的产品

发布时间:2026/10/23 2:37:15 来源:尧图企业网站定制
如何从零搭建 Suno-API把 AI 音乐生成接口接进你的产品【免费下载链接】Suno-APICreate Music in Seconds with SunoAPI.项目地址: https://gitcode.com/GitHub_Trending/su/Suno-API想在产品里加个「输一句话、出一首 demo 歌」的功能又不想自己去逆向 suno.com 的登录态Suno-API 把 Suno 的内部接口封装成了标准的 AI 音乐生成 API 服务FastAPI 起服务token 自动刷新保活你只管调接口。五条命令把服务跑起来依赖很少就 fastapi、uvicorn、aiohttp、python-dotenv、pydantic、requests见 requirements.txt。先克隆代码并装依赖git clone https://gitcode.com/GitHub_Trending/su/Suno-API cd Suno-API pip3 install -r requirements.txt然后把 .env.example 复制为.env填三个值BASE_URL默认https://studio-api.suno.ai不用动SESSION_ID和COOKIE要你自己采一次。cookie 到底去哪拿浏览器登录 suno.comF12 打开 Network找 URL 里带/sessions/、结尾是/tokens的那个请求URL 里的sess_...一段就是SESSION_IDRequest Headers 里整段Cookie复制进COOKIE。这一步只做一次后面由 cookie.py 接管。最后启动两种方式二选一uvicorn main:app --host 0.0.0.0 --port 8000或者用 Docker 执行docker compose build docker compose up镜像基于 python:3.10-slim对外 8000 端口环境变量同样读.env。起来之后打开http://127.0.0.1:8000/docs所有接口都列在那里可以直接在线试。场景一一句话生成一首歌音乐生成有两个入口。最常用的是POST /generate/description-modegpt_description_prompt里写一句描述make_instrumental默认 false带人声想要纯 BGM 就设 true模型版本mv默认chirp-v3-0不用改。curl -X POST http://127.0.0.1:8000/generate/description-mode \ -H Content-Type: application/json \ -d {gpt_description_prompt: A happy blues song about the future, make_instrumental: false}另一个是POST /generate自定义模式参数见 schemas.pyprompt传完整歌词外加title、tags风格、negative_tags想避开的风格选填continue_atcontinue_clip_id可以从上一首的某秒续写。为什么提交完拿不到音频因为生成是异步的接口只负责下单aid相当于订单号——你得轮询GET /feed/{aid}等audio_url不再为空。test.py 里有现成的参考写法每 30 秒查一次90 秒还没结果就按失败处理。有个容易踩的坑description 模式下请求体里的prompt字段只是占位符必须保持空字符串见 schemas.py 的DescriptionModeGenerateParam填了反而报错。这个场景适合产品 demo 歌曲生成、BGM 素材批量生产。场景二歌词生成与额度监控歌词是独立接口POST /generate/lyrics/传{prompt: 一首关于春天的歌}拿到lid后GET /lyrics/{lid}取歌词内容。和上一个场景组合就能搭出先生成歌词 → 人工审一遍 → 喂给自定义模式出歌的两段式流程。额度查询看GET /get_creditsutils.py 会返回四个字段credits_left剩余额度、period计费周期、monthly_limit、monthly_usage。curl http://127.0.0.1:8000/get_credits适合的业务歌词创作助手、订阅类产品的用量看板。⚠️ 两类真实报错的排查路径刚启动就 401Authorization 是 Bearer None现象服务刚起来调任何生成接口都 401。原因token 是后台线程每 5 秒刷新一次cookie.py 的keep_alive而 deps.py 只取内存里当前值启动头几秒 token 还是 None。解法启动后等 5~10 秒再发请求如果长时间仍 401说明.env里的SESSION_ID/COOKIE已失效按前面步骤重新采集。响应体是 An error occurred: ... 字符串现象返回的是错误字符串而不是 JSON。原因utils.py 的fetch()把异常全部吞掉并以字符串返回一般是服务器到BASE_URLhttps://studio-api.suno.ai的网络不通或 token 被对端拒绝。解法先测服务器外网连通性再核对.env里的BASE_URL和 cookie 配置。 接入自己业务前的三件事把轮询-下载流程封装进业务代码调/generate后轮询/feed/{aid}拿到audio_url下载 mp3test.py 的save_song()就是现成参考加额度告警定时调/get_creditscredits_left低于阈值就通知你避免生成流程中途突然失败生产前收紧安全main.py 里 CORS 目前是allow_origins[*]上线前改成你的域名并给服务加一层反代和限流。【免费下载链接】Suno-APICreate Music in Seconds with SunoAPI.项目地址: https://gitcode.com/GitHub_Trending/su/Suno-API创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑