mcpField
L
loom-transcript

loom-transcript

github.com/n8n-io生产力208.9k301 次安装今天更新
代码仓库

关于 loom-transcript

通过 Loom 的 GraphQL API 获取并整理 Loom 视频转录文本的技能。它支持指定的分享或嵌入链接;若有字幕,会提供带时间戳的内容,且无需身份验证。

主要功能

  1. 01从 Loom 链接提取视频 ID
  2. 02获取视频元数据
  3. 03读取转录与字幕链接
  4. 04解析 VTT 字幕或 JSON 转录
  5. 05按时间戳呈现转录文本

适用场景

  1. 01无需观看视频即可阅读 Loom 内容
  2. 02通过转录时间戳定位讨论内容

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/n8n-io/n8n --skill loom-transcript

安装后在 Claude Code 中输入/loom-transcript确认已加载。

详细介绍

Loom 转录文本获取工具

使用 Loom 的 GraphQL API 获取 Loom 视频的转录文本。

说明

给定 Loom URL:$ARGUMENTS

1. 提取视频 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 位十六进制字符串。

2. 获取视频元数据

使用 WebFetch 工具向 https://www.loom.com/graphql 发送 POST 请求,获取视频标题和详情。

通过 Bash 使用此 curl 命令:

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. 获取转录文本 URL

通过 Bash 使用 curl 调用 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 } } }"
  }'

将 <VIDEO_ID> 替换为步骤 1 中提取的实际视频 ID。

响应包含:

  • source_url — JSON 转录文本 URL
  • captions_source_url — VTT(WebVTT)字幕 URL
4. 下载并解析转录文本

获取步骤 3 返回的两个 URL(如果可用):

  1. VTT 字幕(captions_source_url):使用 curl -sL "<url>" 下载。这是包含时间戳和文本的 WebVTT 文件。
  2. JSON 转录文本(source_url):使用 curl -sL "<url>" 下载。这是包含转录文本片段的 JSON 文件。

优先使用 VTT 字幕作为主要来源,因为其中包含准确的时间戳。如果 VTT 不可用,则使用 JSON 转录文本。

5. 呈现转录文本

向用户完整呈现转录文本,格式如下:

视频: [元数据中的标题] 作者: [所有者姓名] 日期: [创建日期]


0:00 - 第一段转录文本……

0:14 - 第二段转录文本……

(继续列出所有片段)


错误处理

  • 如果 GraphQL 响应包含 GenericError,向用户报告错误消息。
  • 如果 source_url 和 captions_source_url 均为 null 或缺失,告知用户此视频没有可用的转录文本。
  • 如果视频 URL 无效或无法提取 ID,请用户提供有效的 Loom URL。

注意事项

  • 无需身份验证或 Cookie — Loom 的转录文本 API 可公开访问。
  • 此 API 仅提供英文转录文本。
  • 转录文本由自动生成,可能包含少量错误。

评论

支持 Markdown