n8n:loom-transcript

Par n8n-io · n8n

Récupère et affiche la transcription complète d'une URL de vidéo Loom. À utiliser lorsque l'utilisateur souhaite obtenir ou lire une transcription Loom.

npx skills add https://github.com/n8n-io/n8n --skill n8n:loom-transcript

Loom Transcript Fetcher

Récupérez la transcription d'une vidéo Loom en utilisant l'API GraphQL de Loom.

Instructions

Étant donné l'URL Loom : $ARGUMENTS

1. Extraire l'ID de la vidéo

Analysez l'URL Loom pour extraire l'ID de vidéo hexadécimal à 32 caractères. Formats d'URL supportés :

  • https://www.loom.com/share/<video-id>
  • https://www.loom.com/embed/<video-id>
  • https://www.loom.com/share/<video-id>?sid=<session-id>

L'ID de la vidéo est la chaîne hexadécimale à 32 caractères après /share/ ou /embed/.

2. Récupérer les métadonnées de la vidéo

Utilisez l'outil WebFetch pour faire une requête POST vers https://www.loom.com/graphql afin d'obtenir le titre et les détails de la vidéo.

Utilisez cette commande curl via Bash :

curl -s 'https://www.loom.com/graphql' \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'x-loom-request-source: loom_web_45a5bd4' \
  -H 'apollographql-client-name: web' \
  -H 'apollographql-client-version: 45a5bd4' \
  -d '{
    "operationName": "GetVideoSSR",
    "variables": {"id": "<VIDEO_ID>", "password": null},
    "query": "query GetVideoSSR($id: ID!, $password: String) { getVideo(id: $id, password: $password) { ... on RegularUserVideo { id name description createdAt owner { display_name } } } }"
  }'

3. Récupérer les URLs des transcriptions

Utilisez curl via Bash pour appeler l'API GraphQL :

curl -s 'https://www.loom.com/graphql' \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'x-loom-request-source: loom_web_45a5bd4' \
  -H 'apollographql-client-name: web' \
  -H 'apollographql-client-version: 45a5bd4' \
  -d '{
    "operationName": "FetchVideoTranscript",
    "variables": {"videoId": "<VIDEO_ID>", "password": null},
    "query": "query FetchVideoTranscript($videoId: ID!, $password: String) { fetchVideoTranscript(videoId: $videoId, password: $password) { ... on VideoTranscriptDetails { id video_id source_url captions_source_url } ... on GenericError { message } } }"
  }'

Remplacez <VIDEO_ID> par l'ID de vidéo réel extrait à l'étape 1.

La réponse contient :

  • source_url — URL de la transcription JSON
  • captions_source_url — URL des sous-titres VTT (WebVTT)

4. Télécharger et analyser la transcription

Récupérez les deux URLs retournées à l'étape 3 (si disponibles) :

  1. Sous-titres VTT (captions_source_url) : Téléchargez avec curl -sL "<url>". C'est un fichier WebVTT avec horodatages et texte.
  2. Transcription JSON (source_url) : Téléchargez avec curl -sL "<url>". C'est un fichier JSON contenant les segments de transcription.

Préférez les sous-titres VTT comme source principale puisqu'ils incluent les horodatages corrects. Repliez-vous sur la transcription JSON si VTT n'est pas disponible.

5. Présenter la transcription

Formatez et présentez la transcription complète à l'utilisateur :

Vidéo : [Titre des métadonnées] Auteur : [Nom du propriétaire] Date : [Date de création]


0:00 - Texte du premier segment de transcription...

0:14 - Texte du deuxième segment de transcription...

(continuer pour tous les segments)


Gestion des erreurs

  • Si la réponse GraphQL contient une GenericError, rapportez le message d'erreur à l'utilisateur.
  • Si source_url et captions_source_url sont null ou manquants, indiquez à l'utilisateur qu'aucune transcription n'est disponible pour cette vidéo.
  • Si l'URL de la vidéo est invalide ou que l'ID ne peut pas être extrait, demandez à l'utilisateur une URL Loom valide.

Notes

  • Aucune authentification ou cookie n'est requis — l'API de transcription de Loom est accessible publiquement.
  • Seules les transcriptions en anglais sont disponibles via cette API.
  • Les transcriptions sont générées automatiquement et peuvent contenir de petites erreurs.

Skills similaires