Initial commit

This commit is contained in:
yangke 2024-03-27 17:52:09 +08:00
parent 7cb8dd3441
commit e94f7ee71d
6 changed files with 152 additions and 41 deletions

View File

@ -1,36 +1,71 @@
This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). # Suno AI API
[English](./README.md) | [简体中文](./README_CN.md)
Use API to call the music generation service of Suno.ai and easily integrate it into agents like GPTs.
## Introduction
Suno.ai v3 is an amazing AI music service. Although the official API is not yet available, we couldn't wait to integrate its capabilities somewhere.
We discovered that some users have similar needs, so we decided to open-source this project, hoping you'll like it.
## Features
- Perfectly implements the creation API from app.suno.ai
- Supports Custom Mode
- One-click deployment to Vercel
- In addition to the standard API, it also adapts to the API Schema of Agent platforms like GPTs and Coze, so you can use it as a tool/plugin/Action for LLMs and integrate it into any AI Agent.
- Permissive open-source license, allowing you to freely integrate and modify.
## Demo
We have deployed an example bound to a free Suno account, so it has daily usage limits, but you can see how it runs:
https://...
## Getting Started ## Getting Started
First, run the development server: ### 1. Obtain the cookie of your app.suno.ai account
### 2. Clone and deploy this project
### 3. Configure suno-api
### 4. Run suno api
### 5. Create more freely
## API Reference
Suno API currently mainly implements the following APIs:
```bash ```bash
npm run dev - `/api/create`: Create music
# or - `/api/get`: Get music
yarn dev
# or
pnpm dev
# or
bun dev
``` ```
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. ## Integration with Common Agents
You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. ### Integration with GPTs
This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font. ### Integration with Coze
## Learn More ### Integration with Dify
To learn more about Next.js, take a look at the following resources: ## Contribution Guidelines
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. ## License
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome! LGPL-3.0 or later
## Deploy on Vercel ## Contact Us
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. - Contact us: <support@gcui.art>
- Join our [Discord](https://...)
- Follow us on Twitter: [@gcui](https://twitter.com/gcui_art)
Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. ## Related Links
- Project repository: [github.com/gcui-art/suno-api](https://github.com/gcui-art/suno-api)
- Suno.ai official website: [suno.ai](https://suno.ai)

73
README_CN.md Normal file
View File

@ -0,0 +1,73 @@
# Suno AI API
[English](./README.md) | [简体中文](./README_CN.md)
Use API to call the music generation service of suno.ai, and easily integrate it into agents like GPTs.
## 简介
Suno.ai v3 是一个令人惊叹的 AI 音乐服务,虽然官方还没有开放 API但我们已经迫不及待的想在某些地方集成它的能力。
我们发现有一些用户也有类似需求,于是我们将这个项目开源了,希望你们喜欢。
## Features
- 完美的实现了 app.suno.ai 中的创作 API
- 支持 Custom Mode
- 一键部署到 vercel
- 除了标准 API还适配了 GPTs、coze 等 Agent 平台的 API Schema所以你可以把它当做一个 LLM 的工具/插件/Action集成到任意 AI Agent 中。
- 宽松的开源协议,你可以随意的集成和修改。
## Demo
我们部署了一个示例,绑定了一个免费的 suno 账号,所以它每天有使用限制,但你可以看到它运行起来的样子:
https://...
## 如何开始使用?
### 1. 获取你的 app.suno.ai 账号的 cookie
### 2. 克隆并部署本项目
### 3. 配置 suno-api
### 4. 运行 suno api
### 5. 更加自由的创作
## API 说明
Suno API 目前主要实现了以下 API:
```bash
- `/api/create`: 创建音乐
- `/api/get`: 获取音乐
```
## 集成到你的常见 Agent 中
### 集成到 GPTs
...
### 集成到 coze
...
### 集成到 Dify
## 贡献指南
## 许可证
LGPL-3.0 或更高版本
## 联系方式
- 联系我们:<support@gcui.art>
- 加入我们的 [Discord](https://...)
- 在 twitter 上关注我们: [@gcui](https://twitter.com/gcui_art)
## 相关链接
- 项目仓库: [github.com/gcui-art/suno-api](https://github.com/gcui-art/suno-api)
- Suno.ai 官网: [suno.ai](https://suno.ai)

View File

@ -1,5 +1,11 @@
{ {
"name": "suno-api", "name": "suno-api",
"description": "Use API to call the music generation service of suno.ai, and easily integrate it into agents like GPTs.",
"author": {
"name": "gcui.art",
"url": "https://github.com/gcui-art/"
},
"license": "LGPL-3.0-or-later",
"version": "0.1.0", "version": "0.1.0",
"private": true, "private": true,
"scripts": { "scripts": {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

@ -5,8 +5,10 @@ import "./globals.css";
const inter = Inter({ subsets: ["latin"] }); const inter = Inter({ subsets: ["latin"] });
export const metadata: Metadata = { export const metadata: Metadata = {
title: "Create Next App", title: "suno api",
description: "Generated by create next app", description: "Use API to call the music generation service of suno.ai",
keywords: ["suno", "suno.ai", "api", "music", "generation", "ai"],
creator: "@gcui.art",
}; };
export default function RootLayout({ export default function RootLayout({

View File

@ -5,8 +5,7 @@ export default function Home() {
<main className="flex min-h-screen flex-col items-center justify-between p-24"> <main className="flex min-h-screen flex-col items-center justify-between p-24">
<div className="z-10 max-w-5xl w-full items-center justify-between font-mono text-sm lg:flex"> <div className="z-10 max-w-5xl w-full items-center justify-between font-mono text-sm lg:flex">
<p className="fixed left-0 top-0 flex w-full justify-center border-b border-gray-300 bg-gradient-to-b from-zinc-200 pb-6 pt-8 backdrop-blur-2xl dark:border-neutral-800 dark:bg-zinc-800/30 dark:from-inherit lg:static lg:w-auto lg:rounded-xl lg:border lg:bg-gray-200 lg:p-4 lg:dark:bg-zinc-800/30"> <p className="fixed left-0 top-0 flex w-full justify-center border-b border-gray-300 bg-gradient-to-b from-zinc-200 pb-6 pt-8 backdrop-blur-2xl dark:border-neutral-800 dark:bg-zinc-800/30 dark:from-inherit lg:static lg:w-auto lg:rounded-xl lg:border lg:bg-gray-200 lg:p-4 lg:dark:bg-zinc-800/30">
Get started by editing&nbsp; Suno API
<code className="font-mono font-bold">src/app/page.tsx</code>
</p> </p>
<div className="fixed bottom-0 left-0 flex h-48 w-full items-end justify-center bg-gradient-to-t from-white via-white dark:from-black dark:via-black lg:static lg:h-auto lg:w-auto lg:bg-none"> <div className="fixed bottom-0 left-0 flex h-48 w-full items-end justify-center bg-gradient-to-t from-white via-white dark:from-black dark:via-black lg:static lg:h-auto lg:w-auto lg:bg-none">
<a <a
@ -16,27 +15,23 @@ export default function Home() {
rel="noopener noreferrer" rel="noopener noreferrer"
> >
By{" "} By{" "}
<Image <a href="https://github.com/gcui-art/">
src="/vercel.svg" gcui.art
alt="Vercel Logo" </a>
className="dark:invert"
width={100}
height={24}
priority
/>
</a> </a>
</div> </div>
</div> </div>
<div className="relative flex place-items-center before:absolute before:h-[300px] before:w-full sm:before:w-[480px] before:-translate-x-1/2 before:rounded-full before:bg-gradient-radial before:from-white before:to-transparent before:blur-2xl before:content-[''] after:absolute after:-z-20 after:h-[180px] after:w-full sm:after:w-[240px] after:translate-x-1/3 after:bg-gradient-conic after:from-sky-200 after:via-blue-200 after:blur-2xl after:content-[''] before:dark:bg-gradient-to-br before:dark:from-transparent before:dark:to-blue-700 before:dark:opacity-10 after:dark:from-sky-900 after:dark:via-[#0141ff] after:dark:opacity-40 before:lg:h-[360px] z-[-1]"> <div className="relative flex place-items-center
<Image before:absolute before:h-[300px] before:w-full sm:before:w-[480px] before:-translate-x-1/2 before:rounded-full
className="relative dark:drop-shadow-[0_0_0.3rem_#ffffff70] dark:invert" before:bg-gradient-radial before:from-white before:to-transparent
src="/next.svg" before:blur-2xl before:content-[''] after:absolute after:-z-20 after:h-[180px] after:w-full sm:after:w-[240px] after:translate-x-1/3
alt="Next.js Logo" after:bg-gradient-conic after:from-sky-200 after:via-blue-200 after:blur-2xl
width={180} after:content-[''] before:dark:bg-gradient-to-br before:dark:from-transparent before:dark:to-blue-700 before:dark:opacity-10 after:dark:from-sky-900 after:dark:via-[#0141ff] after:dark:opacity-40 before:lg:h-[360px] z-[-1]">
height={37} <h1 className=" font-bold text-2xl">
priority Easily integrate Suno AI into your GPTs and other agents.
/> </h1>
</div> </div>
<div className="mb-32 grid text-center lg:max-w-5xl lg:w-full lg:mb-0 lg:grid-cols-4 lg:text-left"> <div className="mb-32 grid text-center lg:max-w-5xl lg:w-full lg:mb-0 lg:grid-cols-4 lg:text-left">