Fetch and display the full transcript from a Loom video URL. Use when the user wants to get or read a Loom transcript.
复制下面这句话,粘贴给 Claude Code、Codex、Cursor 等 AI 编程工具,它会读取安装说明并在你确认后完成安装。
请阅读 https://ai.atlankj.com/install/asset/gh-loom-transcript-d40af19f09d0 ,按照其中的说明把「n8n:loom-transcript」安装到你(当前 AI 工具)中。执行前先告诉我将运行的命令和写入的位置,等我确认。
查看 AI 将读取的安装说明正在读取 GitHub 原文…
内容来自 GitHub 原始文件,由原作者维护。在 GitHub 查看
Fetch the transcript from a Loom video using Loom's GraphQL API.
Given the Loom URL: $ARGUMENTS
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/.
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 } } } }"
}'
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 URLcaptions_source_url — VTT (WebVTT) captions URLFetch both URLs returned from step 3 (if available):
captions_source_url): Download with curl -sL "<url>". This is a WebVTT file with timestamps and text.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.
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)
GenericError, report the error message to the user.source_url and captions_source_url are null/missing, tell the user that no transcript is available for this video.