Loom Transcript Fetcher 用于获取并展示 Loom 视频的完整文字记录(transcript)。当用户希望获取或阅读某个 Loom 视频的转录文本时,可使用该技能。它通过 Loom 的 GraphQL API 读取视频信息与转录内容。
用途
该技能面向需要从 Loom 视频链接中提取文字稿的场景。用户提供 Loom 视频 URL 后,技能会解析视频 ID、获取视频元数据(标题、描述、创建时间、作者),并下载可用的转录文件进行展示。
主要能力
- 从 Loom URL 中提取 32 位十六进制视频 ID。支持的 URL 格式包括:
- https://www.loom.com/share/<video-id>
- https://www.loom.com/embed/<video-id>
- https://www.loom.com/share/<video-id>?sid=<session-id> 视频 ID 为 /share/ 或 /embed/ 之后的 32 位十六进制字符串。
-
通过 POST 请求 Loom GraphQL 接口 https://www.loom.com/graphql 获取视频标题与详情,使用 GetVideoSSR 操作,返回 id、name、description、createdAt、owner 的 display_name 等字段。
-
通过 GraphQL 接口的 FetchVideoTranscript 操作获取转录 URL,返回 source_url(JSON 转录文件地址)和 captions_source_url(VTT WebVTT 字幕地址)。
-
下载并解析转录内容:使用 curl -sL 下载两个 URL(若可用)。VTT 字幕文件包含时间戳与文本,JSON 转录文件包含转录分段。优先使用 VTT 字幕作为主要来源,因其包含合适的时间戳;当 VTT 不可用时回退到 JSON 转录。
-
按格式向用户展示完整转录内容,包括视频标题、作者、日期,以及带时间戳的分段文本。
使用方式
调用时给出 Loom 视频 URL。技能按步骤使用 curl/Bash 与 WebFetch 调用 Loom GraphQL API,替换 <VIDEO_ID> 为实际提取的视频 ID,随后下载并解析转录文件,最终按时间戳格式呈现转录。
示例 GraphQL 请求(获取视频元数据):
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 } } } }"
}'
示例 GraphQL 请求(获取转录 URL):
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 } } }"
}'
转录展示格式示例:
Video: [Title from metadata] Author: [Owner name] Date: [Created date]
0:00 - First transcript segment text...
0:14 - Second transcript segment text...
(按所有分段继续)
适用场景
- 需要阅读或整理 Loom 视频内容时
- 需要从 Loom 分享链接中提取字幕或文字稿时
- 需要按时间戳查看视频转录分段的场景
限制
- 无需认证或 Cookie,Loom 的转录 API 可公开访问
- 该 API 仅提供英文转录
- 转录为自动生成,可能包含少量错误
- 仅支持 /share/ 与 /embed/ 形式的 Loom URL
错误处理
- 若 GraphQL 响应包含 GenericError,向用户报告错误信息
- 若 source_url 与 captions_source_url 均为 null 或缺失,告知用户该视频没有可用转录
- 若视频 URL 无效或无法提取 ID,请用户提供有效的 Loom URL