الانتقال إلى المحتوى الرئيسي
استعلم دورياً (Poll) عن نقطة النهاية هذه للتحقق من حالة مهمة إنشاء الموسيقى الخاصة بك.
إذا تضمنت استجابة الإنشاء poll_url، فامنح الأفضلية لهذا الرابط الدقيق عند إجراء polling. يجب التعامل مع id وtask_id على أنهما هوية المهمة غير المتزامنة نفسها.إذا لم تعد المهمة موجودة أو لم يعد بالإمكان حلّها عبر عقد المهام غير المتزامنة العامة، يعيد TokenLab القيمة async_task_not_found مع الرسالة Task not found or no longer available.

معلمات المسار

id
string
مطلوب
معرف (ID) مهمة إنشاء الموسيقى.

الاستجابة (Response)

id
string
معرف المهمة.
task_id
string
الاسم البديل لمعرّف المهمة غير المتزامنة عندما يكون متاحًا.
poll_url
string
عنوان URL المفضل للاستعلام عند توفيره في استجابة الإنشاء.
status
string
حالة المهمة: pending أو processing أو completed أو failed.
progress
integer
قيمة تقدم اختيارية. لا تُعاد إلا عند توفر قيمة تقدم حقيقية؛ استخدم status لتحديد اكتمال المهمة.
audio_url
string
رابط (URL) لتنزيل ملف الصوت (عند الاكتمال).
video_url
string
رابط (URL) لنسخة الفيديو مع المصور المرئي (عند الاكتمال).
title
string
عنوان الأغنية المنشأة.
lyrics
string
كلمات الأغنية المنشأة أو المقدمة.
error
string
رسالة الخطأ (عند الفشل).
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.example.com/music/abc123.mp3",
  "video_url": "https://cdn.example.com/music/abc123.mp4",
  "title": "Night Drive",
  "lyrics": "[Verse 1]\nDriving through the night..."
}