Passer au contenu principal

Démarrage rapide des tâches de transcodage

Soumettez une tâche de transcodage à la demande via l’API Studio Livepeer et suivez sa progression jusqu’à son achèvement à l’aide de l’API Tasks.

Résumé prêt pour l’IA (pour les humains et les assistants)

  • Utilisez l’URL de base de l’API Studio :https://livepeer.studio/api
  • Soumettez des tâches avecPOST /transcode
  • Le transcodage est asynchrone ; interrogez GET /task/{id}
  • Une réussite “POST /transcode retourne une “task.id
  • Revue technique finale requise par Rick (TD)

Statut de la revue

Ce guide de démarrage rapide est structuralement complet et basé sur la spécification OpenAPI Studio validée sur GitHub, mais la revue de Rick (TD) est requise avant la publication finale pour la précision du flux canonique et les paramètres par défaut visibles aux utilisateurs.

1. Prérequis

  • Une clé API Livepeer (utilisation uniquement côté serveur)
  • curl (et éventuellement jq)
  • Vidéo d’entrée accessible via HTTPou une source compatible S3
  • Destination du stockage de sortie (preuve de délégation S3-compatible ou web3.storage)

2. URL de base et authentification

  • URL de base : https://livepeer.studio/api
  • En-tête d’authentification : Authorization: Bearer <LIVEPEER_API_KEY>
export LIVEPEER_API_KEY="<YOUR_API_KEY>"

3. Soumettre un travail de transcodage

La spécification Studio exige :
  • input
  • storage
  • outputs
L’exemple ci-dessous utilise :
  • URL d’entrée HTTP
  • Stockage de sortie compatible S3
  • Sorties HLS + MP4

Corps de la requête exemple

{
  "input": {
    "url": "https://example.com/video.mp4"
  },
  "storage": {
    "type": "s3",
    "endpoint": "https://gateway.storjshare.io",
    "bucket": "outputbucket",
    "credentials": {
      "accessKeyId": "<ACCESS_KEY_ID>",
      "secretAccessKey": "<SECRET_ACCESS_KEY>"
    }
  },
  "outputs": {
    "hls": {
      "path": "/samplevideo/hls"
    },
    "mp4": {
      "path": "/samplevideo/mp4"
    }
  },
  "profiles": [
    {
      "name": "720p",
      "width": 1280,
      "height": 720,
      "bitrate": 3000000,
      "fps": 30
    }
  ]
}

Requête curl exemple

curl -sS \
  -X POST "https://livepeer.studio/api/transcode" \
  -H "Authorization: Bearer $LIVEPEER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "input": { "url": "https://example.com/video.mp4" },
    "storage": {
      "type": "s3",
      "endpoint": "https://gateway.storjshare.io",
      "bucket": "outputbucket",
      "credentials": {
        "accessKeyId": "<ACCESS_KEY_ID>",
        "secretAccessKey": "<SECRET_ACCESS_KEY>"
      }
    },
    "outputs": {
      "hls": { "path": "/samplevideo/hls" },
      "mp4": { "path": "/samplevideo/mp4" }
    },
    "profiles": [
      {
        "name": "720p",
        "width": 1280,
        "height": 720,
        "bitrate": 3000000,
        "fps": 30
      }
    ]
  }'

4. Capturez l’ID de la tâche

La transcodification est asynchrone. La réponse est untask objet. Enregistrez leid champ et interrogez l’endpoint de la tâche. Format de réponse exemple (réduit) :
{
  "id": "09F8B46C-61A0-4254-9875-F71F4C605BC7",
  "type": "transcode-file",
  "status": {
    "phase": "pending",
    "updatedAt": 1587667174725
  }
}

5. Interroger l’état de la tâche

Utilisez GET /task/{id}jusqu’à ce que status.phasesoit completedou failed.
TASK_ID="<TASK_ID_FROM_TRANSCODE_RESPONSE>"

curl -sS \
  -H "Authorization: Bearer $LIVEPEER_API_KEY" \
  "https://livepeer.studio/api/task/$TASK_ID"
Les phases définies dans la spécification Studio incluent :
  • pending
  • waiting
  • running
  • failed
  • completed
  • cancelled

6. Vérifier la complétude et les sorties

Quand status.phase est completed:
  • Confirmez que la tâche n’a pas signalé une “errorMessage
  • Examinez les métadonnées de sortie de la tâche et/ou les identifiants d’actifs liés
  • Vérifiez les chemins de sortie que vous avez demandés sous “outputs” dans votre stockage de destination

7. Cas d’échec courants

401 Unauthorized

  • Clé API invalide
  • En-tête manquant/incorrect Authorizationheader

422 Validation Error

  • Champs obligatoires manquants (input, storage, outputs)
  • Schéma invalideinput (différence entre URL et objet S3)
  • Schéma invalideprofiles forme

La tâche entre dansfailed

  • Vérifierstatus.errorMessage
  • Vérifier que l’URL d’entrée est accessible au service
  • Vérifier les identifiants de stockage de sortie et les autorisations du bac
  • Relancer avec une combinaison de profil/minimale sortie d’abord

8. Vérification par Rick (TD) (bloquant avant la publication finale)

  • Confirmer le flux de transcodage visible par l’utilisateur pour les documents 2026
  • Confirmer les exemples de profil par défaut recommandés
  • Confirmer les attentes de sondage et les directives de vérification de la fin
  • Confirmer que les exemples obsolètes doivent être supprimés/étiquetés
  • Confirmer la limite avec les API en temps réel (ce qui appartient ailleurs)

9. Étapes suivantes

Références canoniques (source de vérité en premier)

Last modified on March 1, 2026