本文由 ChatMoney团队出品
前言
在科技与艺术的交汇处,AI音乐创作正以其独特的魅力,引领着音乐产业的一次革命。不久前,AI音乐的浪潮席卷了整个创意领域,激发了无数音乐爱好者和技术开发者的无限想象。在这场音乐与科技的盛宴中,主流的AI音乐平台suno无疑成为了焦点,尽管它尚未对外开放API服务,但这并未阻止我们探索的脚步。
今天,我们将踏上一段奇妙的旅程,用Go语言这把精准而强大的工具,尝试构建一个简易的suno-api。
开发前准备
-
golang开发环境。
-
golang版本:1.21.0
-
可登录suno的环境
-
获取suno平台cookie
开发过程
1.安装gin框架
go get -u github.com/gin-gonic/gin
2.封装suno请求
-
相关结构体
package internal
import "time"
// GenerateReq generate-Req
type GenerateReq struct {
GptDescriptionPrompt string `json:"gpt_description_prompt"`
Prompt string `json:"prompt"`
Mv string `json:"mv"`
Title string `json:"title"`
Tags string `json:"tags"`
}
// GenerateResp generate-Resp
type GenerateResp struct {
BatchSize int `json:"batch_size"`
Clips []Clips `json:"clips"`
CreatedAt time.Time `json:"created_at"`
ID string `json:"id"`
Status string `json:"status"`
Metadata `json:"metadata"`
MajorModelVersion string `json:"major_model_version"`
}
// TokenResp token-Response
type TokenResp struct {
Jwt string
Object string
}
// SidResp session-resp
type SidResp struct {
Response struct {
Object string `json:"object"`
ID string `json:"id"`
Sessions []Session `json:"sessions"`
SignIn interface{} `json:"sign_in"`
SignUp interface{} `json:"sign_up"`
LastActiveSessionID string `json:"last_a