Passer au contenu principal
Interrogez cet endpoint pour vérifier le statut de votre tâche de génération de musique.
Si la réponse de création contient poll_url, privilégiez cette URL exacte pour le polling. id et task_id doivent être traités comme le même identifiant de tâche asynchrone.Si la tâche n’existe plus ou n’est plus disponible dans l’enregistrement public de tâche, TokenLab renvoie async_task_not_found avec le message Task not found or no longer available.

Paramètres de chemin

id
string
requis
L’ID de la tâche de génération de musique.

Réponse

id
string
ID de la tâche.
task_id
string
Alias de l’identifiant de tâche asynchrone lorsqu’il est disponible.
poll_url
string
URL de polling à privilégier lorsque la réponse de création la fournit.
status
string
Statut de la tâche : pending, processing, completed ou failed.
progress
integer
Valeur de progression facultative. Renvoyée uniquement lorsqu’une progression réelle est disponible ; utilisez status pour déterminer la fin de la tâche.
audio_url
string
URL pour télécharger le fichier audio (une fois terminé).
video_url
string
URL vers la version vidéo avec visualiseur (une fois terminé).
title
string
Titre de la chanson générée.
lyrics
string
Paroles générées ou fournies.
error
string
Message d’erreur (en cas d’échec).
curl "https://api.tokenlab.sh/v1/tasks/ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
  -H "Authorization: Bearer sk-your-api-key"
import requests
import time

task_id = "ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

while True:
    response = requests.get(
        f"https://api.tokenlab.sh/v1/tasks/{task_id}",
        headers={"Authorization": "Bearer sk-your-api-key"}
    )
    result = response.json()

    if result["status"] == "completed":
        print(f"Audio URL: {result['audio_url']}")
        break
    elif result["status"] == "failed":
        print(f"Error: {result['error']}")
        break

    time.sleep(5)  # Poll every 5 seconds
const taskId = 'ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';

async function pollForMusic() {
  while (true) {
    const response = await fetch(
      `https://api.tokenlab.sh/v1/tasks/${taskId}`,
      { headers: { 'Authorization': 'Bearer sk-your-api-key' } }
    );

    const result = await response.json();

    if (result.status === 'completed') {
      console.log(`Audio URL: ${result.audio_url}`);
      return result.audio_url;
    } else if (result.status === 'failed') {
      throw new Error(result.error);
    }

    await new Promise(r => setTimeout(r, 5000));
  }
}
package main

import (
    "encoding/json"
    "fmt"
    "net/http"
    "time"
)

func main() {
    taskID := "ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

    for {
        req, _ := http.NewRequest("GET",
            fmt.Sprintf("https://api.tokenlab.sh/v1/tasks/%s", taskID), nil)
        req.Header.Set("Authorization", "Bearer sk-your-api-key")

        client := &http.Client{}
        resp, _ := client.Do(req)

        var result map[string]interface{}
        json.NewDecoder(resp.Body).Decode(&result)
        resp.Body.Close()

        if result["status"] == "completed" {
            fmt.Printf("Audio URL: %s\n", result["audio_url"])
            break
        } else if result["status"] == "failed" {
            fmt.Printf("Error: %s\n", result["error"])
            break
        }

        time.Sleep(5 * time.Second)
    }
}
<?php
$taskId = 'ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';

while (true) {
    $ch = curl_init("https://api.tokenlab.sh/v1/tasks/{$taskId}");

    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HTTPHEADER => [
            'Authorization: Bearer sk-your-api-key'
        ]
    ]);

    $response = curl_exec($ch);
    curl_close($ch);

    $result = json_decode($response, true);

    if ($result['status'] === 'completed') {
        echo "Audio URL: {$result['audio_url']}\n";
        break;
    } elseif ($result['status'] === 'failed') {
        echo "Error: {$result['error']}\n";
        break;
    }

    sleep(5);
}
{
  "id": "ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "task_id": "ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "poll_url": "/v1/tasks/ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "status": "completed",
  "audio_url": "https://cdn.suno.ai/abc123.mp3",
  "video_url": "https://cdn.suno.ai/abc123.mp4",
  "title": "Night Drive",
  "lyrics": "[Verse 1]\nDriving through the night..."
}