KS
Killer-Skills

loom-transcript — Categories.official

v1.0.0
GitHub

About this Skill

Perfect for Media Analysis Agents needing automated transcript fetching from Loom videos. Fetch and display the full transcript from a Loom video URL. Use when the user wants to get or read a Loom transcript.

# Core Topics

n8n-io n8n-io
[177.6k]
[55429]
Updated: 3/5/2026

Quality Score

Top 5%
92
Excellent
Based on code quality & docs
Installation
SYS Universal Install (Auto-Detect)
Cursor IDE Windsurf IDE VS Code IDE
> npx killer-skills add n8n-io/n8n

Agent Capability Analysis

The loom-transcript MCP Server by n8n-io is an open-source Categories.official integration for Claude and other AI agents, enabling seamless task automation and capability expansion. Optimized for ai, apis, automation.

Ideal Agent Persona

Perfect for Media Analysis Agents needing automated transcript fetching from Loom videos.

Core Value

Empowers agents to fetch and display full transcripts from Loom videos using Loom's GraphQL API, supporting various URL formats and extracting 32-character hex video IDs for metadata analysis.

Capabilities Granted for loom-transcript MCP Server

Fetching transcripts from Loom video URLs for content analysis
Extracting video IDs from Loom URLs for metadata retrieval
Automating transcript display for user-facing applications

! Prerequisites & Limits

  • Requires Loom video URL as input
  • Limited to Loom's GraphQL API capabilities and rate limits
  • Supports only specific Loom URL formats
SKILL.md
Readonly

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:

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

3. Fetch the Transcript URLs

Use curl via Bash to call the GraphQL API:

bash
1curl -s 'https://www.loom.com/graphql' \ 2 -H 'Content-Type: application/json' \ 3 -H 'Accept: application/json' \ 4 -H 'x-loom-request-source: loom_web_45a5bd4' \ 5 -H 'apollographql-client-name: web' \ 6 -H 'apollographql-client-version: 45a5bd4' \ 7 -d '{ 8 "operationName": "FetchVideoTranscript", 9 "variables": {"videoId": "<VIDEO_ID>", "password": null}, 10 "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 } } }" 11 }'

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.

Related Skills

Looking for an alternative to loom-transcript or building a Categories.official AI Agent? Explore these related open-source MCP Servers.

View All

flags

Logo of facebook
facebook

Use when you need to check feature flag states, compare channels, or debug why a feature behaves differently across release channels.

243.6k
0
Design

extract-errors

Logo of facebook
facebook

Use when adding new error messages to React, or seeing unknown error code warnings.

243.6k
0
Design

fix

Logo of facebook
facebook

Use when you have lint errors, formatting issues, or before committing code to ensure it passes CI.

243.6k
0
Design

flow

Logo of facebook
facebook

Use when you need to run Flow type checking, or when seeing Flow type errors in React code.

243.6k
0
Design