Skip to content

hissincn/suno-ai

Repository files navigation

suno-ai

suno-ai is a Node.js library for interacting with the Suno AI music generation service. It provides a set of methods for generating songs, retrieving metadata, saving generated songs, and more.

简体中文

Installation

npm install suno-ai

Usage

  1. Import the library and initialize the SunoAI instance:
const { SunoAI } = require('suno-ai');
const cookie = 'your cookie';
const suno = new SunoAI(cookie);
await suno.init();
  1. Generate songs:
const payload = {
  gpt_description_prompt: 'a blues song about always being by your side',
  mv: 'chirp-v3-0',
  prompt: '',
  make_instrumental: false
};

const songInfo = await suno.generateSongs(payload);
  1. Save generated songs:
const outputDir = './output';
await suno.saveSongs(songInfo, outputDir);
  1. Get metadata:
const ids = ['79742cdf-86c9-432f-81f2-8c2126de42d9', 'ae5ccb5-f4f8-49c9-8f5c-192e43ed9b0c'];
const songs = await suno.getMetadata(ids);
  1. Get all generated songs:
const allSongs = await suno.getAllSongs();
  1. Generate lyrics:
const lyrics = await suno.generateLyrics('hissin in the kitchen');
console.log(lyrics);

API

SunoAI(cookie)

  • cookie (string): The cookie for the Suno AI service.

init()

Initializes the SunoAI instance. Must be called before using any other methods.

generateSongs(payload)

  • payload (object): Parameters for generating songs.
    • gpt_description_prompt (string): Prompt for generating lyrics with GPT.
    • prompt (string): Custom lyrics.
    • tags (string): Music genre tags.
    • make_instrumental (boolean): Whether to generate instrumental music (no lyrics).
    • title (string): Song title.
    • mv (string): Video style, options: ('chirp-v2-xxl-alpha').
    • continue_clip_id (string): ID for continuing song generation.
    • continue_at (number): Seconds to continue generation from.

Returns information about the generated songs.

getRequestIds(payload)

  • payload (object): Same as generateSongs method.

Returns a list of request IDs.

getMetadata(ids = [])

  • ids (string[]): List of song IDs. If empty, returns all songs.

Returns metadata for the specified songs.

getAllSongs()

Returns metadata for all generated songs.

saveSongs(songInfo, outputDir)

  • songInfo (object): Song information object.
  • outputDir (string): Output directory path.

Saves the generated songs to the specified directory.

generateLyrics(prompt)

  • prompt (string): Prompt for generating lyrics.

Returns the generated lyrics.

getLimitLeft()

Returns the remaining request limit.

Example

Here's a complete example demonstrating how to use the suno-ai library to generate and save songs:

const { SunoAI } = require('suno-ai');

async function main() {
  try {
    const cookie = 'your cookie';
    const suno = new SunoAI(cookie);
    await suno.init();

    const payload = {
      gpt_description_prompt: 'a blues song about always being by your side',
      mv: 'chirp-v3-0',
      prompt: '',
      make_instrumental: false
    };

    const songInfo = await suno.generateSongs(payload);
    const outputDir = './output';
    await suno.saveSongs(songInfo, outputDir);

    const ids = ['79742cdf-86c9-432f-81f2-8c2126de42d9', 'ae5ccb5-f4f8-49c9-8f5c-192e43ed9b0c'];
    const songs = await suno.getMetadata(ids);

    const allSongs = await suno.getAllSongs();

    const lyrics = await suno.generateLyrics('hissin in the kitchen');
    console.log(lyrics);

  } catch (error) {
    console.error('Error:', error);
  }
}

main();

Notes

  • You must call the init() method to initialize the SunoAI instance before using any other methods.
  • Make sure to provide a valid cookie, otherwise you won't be able to interact with the Suno AI service.
  • Generating songs takes some time, please be patient.
  • This library is for learning and research purposes only. Please do not use the generated songs for any commercial purposes.

Here are some common payload examples:

  1. Generate lyrics with GPT and generate a song with lyrics
const payload = {
  gpt_description_prompt: "a blues song about always being by your side",
  mv: "chirp-v3-0",
  prompt: "",
  make_instrumental: false
};
  1. Generate instrumental music (no lyrics)
const payload = {
  gpt_description_prompt: "a funky instrumental song about dancing",
  mv: "chirp-v3-0", 
  prompt: "",
  make_instrumental: true
};
  1. Generate a song with custom lyrics
const payload = {
  prompt: "First line of lyrics\nSecond line of lyrics\nThird line of lyrics",
  tags: "dreamy children's music",
  mv: "chirp-v3-0",
  title: "Song Title",
  make_instrumental: false,
  continue_clip_id: null,
  continue_at: null
};
  1. Continue generating a song from a specific point
const payload = {
  prompt: "",
  tags: "futuristic jazz",
  mv: "chirp-v3-0",
  title: "",
  continue_clip_id: "d55b5269-6bad-4f61-a8f5-871fb124044d",
  continue_at: 109
};
  1. Remix and continue generating a song
const payload = {
  prompt: "[Verse]\nWalking down the street, no one takes a glance\nBlending in the crowd, just another stranger (oh-oh-oh)\nBut I don't wanna fade into the gray, I wanna burst with color\nI wanna soar high in this city\n\n[Verse 2]\nIn the world of trends and fashion, I don't fit in\nBut I'm proud to be different, no need to apologize (oh-oh-oh)\nI won't follow the game's rules, I'll pave my own way\nLet my soul fly free\n\n[Chorus]\nHey world, look at me (look at me)\nThe one you once ignored, now shining bright (oh-oh-oh)\nI'll dance to my own beat, sing my own song (sing it loud)\nI won't be forgotten in the crowd for long (forgotten)",
  tags: "electronic hip hop",
  mv: "chirp-v3-0", 
  title: "Lost in the Shuffle",
  continue_clip_id: "62ed33cb-f802-47d3-a233-9a7f3fc804a3",
  continue_at: 90.36
};

These examples cover using GPT to generate lyrics, generating instrumental music, using custom lyrics, continuing generation from a specific point, and remixing and continuing generation. You can modify the parameters in the payload object to suit your needs.

About

Creat high quality songs from suno.ai by Javascript API.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published