loom-transcript

par n8n-io

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

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

Loom Transcript Fetcher

Fetch the transcript from a Loom video using Loom's GraphQL API.

Instructions

Given the Loom URL: $ARGUMENTS

1. Extract the Video ID

Parse the Loom URL to extract the 32-character hex video ID. Supported URL formats:

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

The video ID is the 32-character hex string after /share/ or /embed/.

2. Fetch Video Metadata

Use the WebFetch tool to POST to https://www.loom.com/graphql to get the video title and details.

Use this curl command 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. Fetch the Transcript URLs

Use curl via Bash to call the GraphQL API:

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 } } }"
  }'

Replace <VIDEO_ID> with the actual video ID extracted in step 1.

The response contains:

  • source_url — JSON transcript URL
  • captions_source_url — VTT (WebVTT) captions URL

4. Download and Parse the Transcript

Fetch both URLs returned from step 3 (if available):

  1. VTT captions (captions_source_url): Download with curl -sL "<url>". This is a WebVTT file with timestamps and text.
  2. JSON transcript (source_url): Download with curl -sL "<url>". This is a JSON file with transcript segments.

Prefer the VTT captions as the primary source since they include proper timestamps. Fall back to the JSON transcript if VTT is unavailable.

5. Present the Transcript

Format and present the full transcript to the user:

Video: [Title from metadata] Author: [Owner name] Date: [Created date]


0:00 - First transcript segment text...

0:14 - Second transcript segment text...

(continue for all segments)


Error Handling

  • If the GraphQL response contains a GenericError, report the error message to the user.
  • If both source_url and captions_source_url are null/missing, tell the user that no transcript is available for this video.
  • If the video URL is invalid or the ID cannot be extracted, ask the user for a valid Loom URL.

Notes

  • No authentication or cookies are required — Loom's transcript API is publicly accessible.
  • Only English transcripts are available through this API.
  • Transcripts are auto-generated and may contain minor errors.

Plus de skills de n8n-io

n8n-cli
n8n-io
Utilisez l'interface en ligne de commande n8n pour gérer les workflows, les identifiants, les exécutions, et plus encore sur une instance n8n. Utilisez lorsque l'utilisateur demande d'interagir avec n8n, d'automatiser des workflows,…
official
create-issue
n8n-io
Créer des tickets Linear ou des issues GitHub en suivant les conventions n8n. Utiliser lorsque l'utilisateur demande de créer un ticket, signaler un bug, ouvrir une issue, ou dit /create-issue.
official
node-add-oauth
n8n-io
Ajoute la prise en charge des identifiants OAuth2 à un nœud n8n existant — crée le fichier d'identifiants, met à jour le nœud, ajoute des tests et maintient la constante CLI synchronisée. À utiliser lorsque…
official
spec-driven-development
n8n-io
Maintient l'implémentation et les spécifications synchronisées. À utiliser lorsque vous travaillez sur une fonctionnalité qui a une spécification dans .claude/specs/, lorsque l'utilisateur dit /spec, ou lorsque vous commencez…
official
content-design
n8n-io
Concepteur de contenu produit pour les textes d'interface. À utiliser lors de la rédaction, la révision ou l'audit de textes destinés aux utilisateurs : libellés de boutons, messages d'erreur, infobulles, états vides, fenêtres modales…
official
create-issue
n8n-io
Créez des tickets Linear ou des issues GitHub en suivant les conventions n8n. À utiliser lorsque l'utilisateur demande de créer un ticket, de signaler un bug, d'ouvrir une issue, ou dit /create-issue.
official
agent-builder
n8n-io
À utiliser lors de la création, la configuration ou la modification de la configuration de build d'un agent n8n cible — intégrations/déclencheurs de chat, serveurs MCP, localisateurs de ressources d'outils de nœud,…
official
create-pr
n8n-io
Crée des pull requests GitHub avec des titres correctement formatés qui passent la validation CI check-pr-title. À utiliser lors de la création de PR, de la soumission de modifications pour révision,…
official