loom-transcript

作成者: n8n-io

Fetch and display the full transcript from a Loom video URL. Use when the user wants to get or read a Loom transcript.

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.

n8n-ioのその他のスキル

n8n-cli
n8n-io
n8n CLIを使用して、n8nインスタンス上のワークフロー、認証情報、実行などを管理します。ユーザーがn8nとの連携やワークフローの自動化を依頼した場合に使用します。
official
create-issue
n8n-io
n8nの規約に従ってLinearチケットまたはGitHub Issueを作成します。ユーザーがチケット作成、バグ報告、Issue作成を依頼した場合、または/create-issueと入力した場合に使用します。
official
node-add-oauth
n8n-io
既存のn8nノードにOAuth2認証情報のサポートを追加します — 認証情報ファイルを作成し、ノードを更新し、テストを追加し、CLI定数を同期させます。次の場合に使用します…
official
spec-driven-development
n8n-io
実装と仕様の同期を維持します。.claude/specs/に仕様がある機能を扱う場合、ユーザーが/specと言った場合、または開始時に使用します。
official
content-design
n8n-io
Product content designer for UI copy. Use when writing, reviewing, or auditing user-facing text: button labels, error messages, tooltips, empty states, modal…
official
create-issue
n8n-io
Create Linear tickets or GitHub issues following n8n conventions. Use when the user asks to create a ticket, file a bug, open an issue, or says /create-issue.
official
agent-builder
n8n-io
Use when creating, configuring, or editing a target n8n agent's build configuration — chat integrations/triggers, MCP servers, node-tool resource locators,…
official
create-pr
n8n-io
Creates GitHub pull requests with properly formatted titles that pass the check-pr-title CI validation. Use when creating PRs, submitting changes for review,…
official