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 JSONcaptions_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) :
- Sous-titres VTT (
captions_source_url) : Téléchargez aveccurl -sL "<url>". C'est un fichier WebVTT avec horodatages et texte. - Transcription JSON (
source_url) : Téléchargez aveccurl -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_urletcaptions_source_urlsont 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.