Loom Transcript
This skill fetches the transcript from a Loom video using Loom's Graph QL API. It extracts the video ID from the Loom URL, fetches video metadata (title, des...
Install
npx promptshop add loom-transcriptDetails
What This Skill Does
This skill fetches the transcript from a Loom video using Loom's Graph QL API. It extracts the video ID from the Loom URL, fetches video metadata (title, description), and retrieves the transcript URLs. This is useful for extracting the text content of Loom videos for analysis or documentation.
When to Use
- Extract transcript from a Loom video.
- Get video metadata from a Loom URL.Analyze the content of a Loom video.
- Document the content of a Loom video.
- Fetch video title and description.
- Automate transcript retrieval.
Key Features
- Extracts video ID from Loom URLs.
- Fetches video metadata using Graph QL API.Retrieves transcript URLs.
- Uses curl to interact with Loom's API.Supports various Loom URL formats.
- Provides instructions for API interaction.
Fetch the transcript from a Loom video using Loom's Graph QL 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/ https://www.loom.com/embed/ https://www.loom.com/share/?sid=
The video ID is the 32-character hex string after /share/ or /embed/.
2. Fetch Video Metadata
Use the Web Fetch 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 '{
"operation Name": "Get Video SSR",
"variables": {"id": "<VIDEO_ID>", "password": null},
"query": "query Get Video SSR($id: ID!, $password: String) { get Video(id: $id, password: $password) { ... on Regular User Video { id name description created At owner { display_name } } } }"
}'
3. Fetch the Transcript URLs
Use curl via Bash to call the Graph QL 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 '{
"operation Name": "Fetch Video Transcript",
"variables": {"video Id": "<VIDEO_ID>", "password": null},
"query": "query Fetch Video Transcript($video Id: ID!, $password: String) { fetch Video Transcript(video Id: $video Id, password: $password) { ... on Video Transcript Details { id video_id source_url captions_source_url } ... on Generic Error { message } } }"
}'
Replace with the actual video ID extracted in step 1.
The response contains: source_url — JSON transcript URL captions_source_url — VTT (Web VTT) captions URL
4. Download and Parse the Transcript
Fetch both URLs returned from step 3 (if available):
VTT captions (captions_source_url): Download with curl -s L "". This is a Web VTT file with timestamps and text. JSON transcript (source_url): Download with curl -s L "". 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 Graph QL response contains a Generic Error, 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.Loom Transcript Fetcher
Fetch the transcript from a Loom video using Loom's Graph QL 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/ https://www.loom.com/embed/ https://www.loom.com/share/?sid=
The video ID is the 32-character hex string after /share/ or /embed/.
2. Fetch Video Metadata
Use the Web Fetch 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 '{
"operation Name": "Get Video SSR",
"variables": {"id": "<VIDEO_ID>", "password": null},
"query": "query Get Video SSR($id: ID!, $password: String) { get Video(id: $id, password: $password) { ... on Regular User Video { id name description created At owner { display_name } } } }"
}'
3. Fetch the Transcript URLs
Use curl via Bash to call the Graph QL 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 '{
"operation Name": "Fetch Video Transcript",
"variables": {"video Id": "<VIDEO_ID>", "password": null},
"query": "query Fetch Video Transcript($video Id: ID!, $password: String) { fetch Video Transcript(video Id: $video Id, password: $password) { ... on Video Transcript Details { id video_id source_url captions_source_url } ... on Generic Error { message } } }"
}'
Replace with the actual video ID extracted in step 1.
The response contains: source_url — JSON transcript URL captions_source_url — VTT (Web VTT) captions URL
4. Download and Parse the Transcript
Fetch both URLs returned from step 3 (if available):
VTT captions (captions_source_url): Download with curl -s L "". This is a Web VTT file with timestamps and text. JSON transcript (source_url): Download with curl -s L "". 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 Graph QL response contains a Generic Error, 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.