news 2026/9/9 20:24:15

在 goose 中接入 YouTube Transcript MCP 扩展:安装配置、抓取视频字幕并让 Agent 处理全文

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
在 goose 中接入 YouTube Transcript MCP 扩展:安装配置、抓取视频字幕并让 Agent 处理全文

在 goose 中接入 YouTube Transcript MCP 扩展:安装配置、抓取视频字幕并让 Agent 处理全文

【免费下载链接】goosean open source, extensible AI agent that goes beyond code suggestions - install, execute, edit, and test with any LLM项目地址: https://gitcode.com/GitHub_Trending/goose3/goose

YouTube Transcript 是面向 goose 的一款第三方 MCP 扩展:它把mcp-youtube-transcript(基于uvx运行的标准 I/O 型 MCP Server)注册为 goose 的扩展,使 goose 可以根据一条 YouTube 链接或视频 ID 拉取视频的字幕文本,并在此基础上执行翻译、总结、问答、关键词提取等后续任务。本文将以 youtube-transcript-mcp.md 官方教程为骨架,先给出 Desktop 与 CLI 两条安装路径,再补充 deeplink、交互式配置与配置文件(config.yaml)三种底层写法,并结合 extension.rs 的扩展配置结构说明每个字段的含义。读完后,你可以独立把任意视频的字幕接入 goose 会话,并写出可复用的指令。

goose 扩展与 YouTube Transcript 的定位

goose 是一个基于 Model Context Protocol(MCP) 的可扩展 AI Agent:所有外部能力都被抽象为“扩展(Extension)”。开发者版(Developer)、Computer Controller、Memory 等属于内建扩展;而任意第三方 MCP Server——包括本文要装的mcp-youtube-transcript——都可以作为外部扩展注册进 goose。

从 goose 的角度看,一个外部扩展就是一个被 goose 拉起并持续通过 stdin/stdout 通信的子进程(MCP stdio 传输)。goose 会把该进程暴露出的“工具”映射为 Agent 可调用的能力。接入 YouTube Transcript 后,goose 相当于获得了一组与 YouTube 字幕相关的工具,可以自主完成“读取视频 ID → 拉取字幕 → 处理文本”的整条链路,而不再需要你手动去第三方网站复制粘贴。

前置条件

  • 已安装 goose(Desktop 应用或 CLI 均可)。本文以 CLI 命令为例,Desktop 对应操作会在对应小节注明。
  • 安装 uv。原因是启动命令基于uvx——它是 uv 提供的“在隔离环境中运行 Python 应用”的工具,uvx --from git+... pkg的写法会先从指定 Git 源解析并缓存包,再执行其中的可执行入口。
  • 目标视频链接,或视频 ID。以https://www.youtube.com/watch?v=dQw4w9WgXcQ为例,dQw4w9WgXcQ即为该扩展需要的 video ID。字幕是否可用取决于视频本身是否提供(YouTube 自动生成字幕也算可用来源)。

快速安装:一行命令完成注册

官方教程提供了 Quick Install 快捷入口,Desktop 与 CLI 各有一条路径:

goose Desktop(深链接一键安装)

点击 启动安装器 即可触发 goose Desktop 的扩展安装对话框。这条goose://extension?…是 goose 的深链接协议:Desktop 收到后会自动解析其中的命令与参数,填入扩展信息表单(ID、显示名、描述、启动命令)供你确认。

goose CLI(手工注册)

uvx --from git+https://github.com/jkawamoto/mcp-youtube-transcript mcp-youtube-transcript

这条命令本身即扩展的完整启动命令(command + args),两种安装界面最终落到 goose 配置里的都是它:uvx作为命令,--from git+https://github.com/jkawamoto/mcp-youtube-transcriptmcp-youtube-transcript作为参数。

完整配置:两种界面 + 两种底层写法

官方文档把安装拆成“Desktop 图形表单”和“CLI 配置向导”两条交互路径,二者只是配置入口不同,产物相同。

方式一:goose Desktop

  1. 点击左上角侧边栏按钮打开侧边栏,进入Extensions
  2. 点击Add custom extension打开添加表单。
  3. 按下表填写后点击Add
字段填写值说明
TypeStandard IOstdio 类型:goose 启动命令并以标准输入/输出与进程通信
IDyoutube-transcript-mcp扩展唯一标识,将用作配置 map 的键,可自定
NameYouTube Transcript会话中的展示名
DescriptionAccess YouTube video transcripts功能描述,帮助 goose 判断何时启用此扩展
Commanduvx启动程序
Arguments--from git+https://github.com/jkawamoto/mcp-youtube-transcriptmcp-youtube-transcript传给命令的完整参数列表
Timeout300goose 等待该扩展单次工具调用返回的最大秒数

方式二:goose CLI 配置向导

goose configure

在交互菜单中依次选择:

  1. Add Extension
  2. 扩展类型选择Command-Line Extension(本地以命令方式运行的扩展,对应配置结构中的 stdio 类型;Built-In ExtensionRemote Extension (Streamable HTTP)分别是内建扩展与远程 HTTP 扩展,本场景不适用)。类型选择逻辑可在 configure.rs 中看到:配置器会基于所选类型分发到configure_stdio_extension等实现;
  3. 提示What would you like to call this extension?时输入名称,如YouTube Transcript
  4. 提示What command should be run?时粘贴完整命令:
uvx --from git+https://github.com/jkawamoto/mcp-youtube-transcript mcp-youtube-transcript
  1. 按提示设置超时(单位秒)并确认是否添加环境变量(本扩展无需 API Key,选择No即可);
  2. 确认后配置器返回Added … extension,扩展即注册完成。

配置完成后重启会话即可在 goose 的扩展工具列表里看到该扩展暴露的字幕相关工具。

配置文件里的最终形态

两种交互方式最终都写入 goose 的配置文件~/.config/goose/config.yaml。对于“懂配置”的进阶用户,可以直接编辑该文件添加扩展。结合 extension.rs 中ExtensionConfig::Stdio的定义(namedescriptioncmdargsenvs/env_keystimeoutcwd等字段),本扩展对应的一段配置如下:

extensions: youtube-transcript-mcp: name: YouTube Transcript description: Access YouTube video transcripts cmd: uvx args: - --from - git+https://github.com/jkawamoto/mcp-youtube-transcript - mcp-youtube-transcript enabled: true type: stdio timeout: 300

各字段的含义如下:

  • extensions下的顶层键(这里是youtube-transcript-mcp)即扩展 ID,与 Desktop 表单里的 ID 对应;
  • name:展示名,会出现在 goose 对话的工具调用与权限提示中;
  • description:扩展功能说明。goose 在判定“当前任务是否需要该扩展的工具”时会参考这段描述,因此应写得具体;
  • cmd/args:完整启动命令的拆分。注意--from与后面的 Git 源是两个独立参数,要分别写入args,不能合并成一个带空格的字符串;
  • type: stdio:扩展传输类型。源码中ExtensionConfig通过#[serde(tag = "type")]区分stdiobuiltinplatformstreamable_http四类,本扩展属于stdio
  • timeout:goose 等待扩展单次工具调用返回的最长秒数,若字幕文本很大或网络较慢可适当调大;
  • enabled:是否默认启用。置为false时扩展处于已安装但禁用状态,可稍后在会话内再开启。

Deep Link 参数速查(可选:理解一键安装的原理)

Desktop 的“一键安装”本质是 goose 的 deeplink 协议。URL 格式为:

goose://extension?cmd=<command>&arg=<argument>&id=<id>&name=<name>&description=<description>
  • cmd:基础命令,允许取值包括jbangnpxuvxgooseddocker
  • arg:命令参数,可重复拼接(&arg=…&arg=…)表示多个参数;所有参数都必须 URL 编码(空格为%20@%40:%3A/%2B视场景而定,文档统一要求 URL-encode);
  • timeout:单次工具调用的等待超时(秒);
  • id/name/description:与上文表单字段一一对应。

对照上文的一键链接,可以还原出实际参数:cmd=uvxarg=--fromarg=git+https://github.com/jkawamoto/mcp-youtube-transcript+被编码为%2B),arg=mcp-youtube-transcript,再加上idname(空格编码为%20)与description。也就是说,它与 CLI 版启动命令是同一条命令的参数化表达。

使用示例

安装完成后,goose 便具备了抓取 YouTube 字幕的能力。你唯一需要提供的是目标视频的链接或视频 ID——goose 会自行解析 ID、调用字幕工具并返回结果。

goose Prompt

在会话中直接输入:

Get me the transcript for this YouTube video: https://www.youtube.com/watch?v=dQw4w9WgXcQ

goose 会从 URL 中识别出视频 IDdQw4w9WgXcQ,确认后调用 YouTube Transcript 扩展提供的工具拉取字幕。

goose Output(示意)

I'll help you get the transcript for that video. The video ID is "dQw4w9WgXcQ". Let me fetch the transcript for you. Here's the transcript: [Transcript content would appear here with timestamps and text] I've retrieved the transcript for Rick Astley's "Never Gonna Give You Up" music video. The transcript shows the lyrics of the song, though there are some minor transcription errors due to the automated nature of the system. The transcript includes the iconic chorus and verses of this famous 1987 song, which has become one of the most well-known internet memes, often used for "rickrolling." Would you like me to help you with anything else regarding the video or its transcript?

需要注意两点事实约束:

  • 字幕由 YouTube 自动生成时可能含转写错误(专有名词、歌词连读等尤为明显)。上述输出中 goose 也明确提示“minor transcription errors due to the automated nature of the system”。用于总结、检索原文时可接受,但需要逐字引用或人工校对时请以视频内的字幕原文为准,或检查视频是否提供人工上传的准确字幕。
  • 返回文本通常带时间戳与分段文本,可继续用于生成带时间点的纪要,或交给 goose 进行翻译、要点提炼与问答。

进阶追问示例

拿到转录文本后,可以继续在同一会话里追加指令,例如:

Summarize this transcript in 3 bullet points.
Translate the first two paragraphs of this transcript into Chinese.

由于扩展工具返回的文本已进入会话上下文,goose 会基于这段内容执行后续的总结、翻译、关键词抽取等文本任务,无需再次联网。

在会话内临时启用:不写入配置的方式

如果不想永久注册该扩展,可以用/extension斜杠命令在当前会话内临时加载(此方式不会修改默认配置,也不影响后续新会话):

/extension uvx --from git+https://github.com/jkawamoto/mcp-youtube-transcript mcp-youtube-transcript

同样地,也可以不进入交互式会话,直接在启动新会话时附带扩展:

goose session --with-extension "uvx --from git+https://github.com/jkawamoto/mcp-youtube-transcript mcp-youtube-transcript"

此类“一次性启用”适用于临时性、偶发性的字幕抓取需求。若希望每次会话默认具备该能力,应使用上文“完整配置”中的持久化方式,并在config.yaml中将enabled置为true

安装后的管理与排障

  • 启用/停用:运行goose configure,选择Toggle Extensions,用空格键在扩展列表中勾选或取消youtube-transcript-mcp(实心为启用);该操作决定新会话的默认加载状态。会话中途如需切换,可在 Desktop 底部扩展面板或 CLI 中执行/extension指令。
  • 修改属性:Desktop 的扩展设置齿轮按钮可改名称、超时、参数等;CLI 用户直接编辑~/.config/goose/config.yaml对应段落即可。若改动args,请保持--from与其 Git 源为相邻的两个数组元素。
  • 移除:先经Toggle Extensions停用(只有禁用状态的扩展可被删除),再在goose configure中选择Remove Extension,勾选后回车删除;或在配置文件中删除对应键。
  • 首次启动较慢uvx --from git+…首次运行需要从 Git 源解析并安装包,存在明显网络与安装耗时,这是正常现象,缓存完成后再次启动会明显变快。若在受限网络环境中,可参照 goose 文档中关于 Airgapped/离线环境扩展无法激活的说明处理。
  • 字幕获取失败:请先确认视频确实存在字幕(含 YouTube 自动字幕);私有视频、区域限制视频或未提供任何字幕轨的视频会导致拉取失败,此时需更换目标视频或手动提供文本。

小结

YouTube Transcript 扩展的接入过程可以归结为一个模式:凡是可用单条命令在本地拉起、通过 stdio 与 MCP 通信的外部服务,都可以像本教程一样注册为 goose 扩展。本次实践的核心是理解uvx启动命令的写法与 goose 扩展配置的三要素——扩展 ID、启动命令(cmd+args)、超时设置;三者既可以通过 Desktop 表单与 CLI 向导交互填写,也可以直接写入~/.config/goose/config.yaml。而配置文件背后的字段语义,均可在 extension.rs 的ExtensionConfig定义中一一对应验证。完成安装后,goose 即可把 YouTube 字幕作为上下文的一部分,用于总结、翻译、问答等下游任务。更系统的扩展管理方法(内置扩展、权限模式、MCP Roots、容器内运行等)可继续阅读 using-extensions.md 与同目录下 mcp 系列扩展教程。

【免费下载链接】goosean open source, extensible AI agent that goes beyond code suggestions - install, execute, edit, and test with any LLM项目地址: https://gitcode.com/GitHub_Trending/goose3/goose

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/9 20:22:48

数据清洗与异常值处理实战:一次销售数据分析上机的完整复盘

1月29日上机&#xff1a;一节让我彻底梳理实验逻辑的实操课 如果只用一个词形容1月29日这天上机&#xff0c;我会选“扎实”。不是那种按部就班把流程走一遍的踏实&#xff0c;而是整个过程里不断出现“咦&#xff0c;怎么跟预期不一样”然后逼着自己去查、去试、去改的充实感。…

作者头像 李华
网站建设 2026/9/9 20:22:23

用Python手写一个最小区块链:从哈希到工作量证明实战

1. 为什么用Python写区块链&#xff1a;先搞懂几个核心概念1.1 区块链到底是个什么东西以前跟朋友聊起区块链&#xff0c;大部分人的第一反应就是比特币、炒币、挖矿&#xff0c;后来变成NFT、Web3&#xff0c;好像这个东西离普通开发者特别远。其实剥掉那些金融外壳&#xff0…

作者头像 李华
网站建设 2026/9/9 20:22:11

GWO、DBO、DOA算法在光伏参数辨识中的对比与Matlab实现

光伏参数辨识模型对比&#xff1a;GWO、DBO、DOA三种算法的Matlab实现与实战复盘光伏组件标称参数和实际运行参数对不上&#xff0c;这个问题做光伏系统仿真的人应该都深有体会。厂家数据手册里给的I-V曲线是在标准测试条件&#xff08;STC&#xff09;下测的&#xff0c;温度和…

作者头像 李华
网站建设 2026/9/9 20:20:01

SR-IOV虚拟化网络性能优化:从原理到实战的完整指南

如果你搞过云计算、NFV&#xff0c;或者只是在自己的服务器上折腾过KVM虚拟化&#xff0c;大概率见过这个词——SR-IOV。网上讲它的文章不少&#xff0c;但多数要么浮在概念层&#xff0c;只告诉你“这玩意儿能让虚拟机的网络性能逼近物理机”&#xff0c;要么直接甩一篇驱动编…

作者头像 李华
网站建设 2026/9/9 20:19:01

SpringBoot+Vue智慧养老中心管理系统实战开发指南

前阵子有个做养老信息化项目的朋友跟我聊起他们公司的系统架构&#xff0c;我脑子里第一时间冒出来的&#xff0c;就是SpringBootVue这套组合。说实话&#xff0c;近几年我接触到的智慧园区、智慧社区、医院信息管理类项目&#xff0c;十有八九都是这个技术栈&#xff0c;智慧养…

作者头像 李华