尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

MediaGo 下载 Skill 实战指南:基于 HTTP API 让 Agent 下载 m3u8 / B 站 / 直链视频

发布时间:2026/9/25 5:25:01

资讯中心
01
ARTICLE

MediaGo 下载 Skill 实战指南:基于 HTTP API 让 Agent 下载 m3u8 / B 站 / 直链视频

MediaGo 下载 Skill 实战指南:基于 HTTP API 让 Agent 下载 m3u8 / B 站 / 直链视频
音视频桌面应用后端【免费下载链接】mediago跨平台视频提取工具支持流媒体下载、视频下载、m3u8 下载及 B站视频下载提供 Windows 和 Mac 桌面客户端。Cross-platform video extraction tool: Supports streaming download, video download, m3u8 download, and Bilibili video download, with desktop clients for Windows and Mac.项目地址https://gitcode.com/caorushizi/mediago点击查看免费下载MediaGocaorushizi/mediago是一个跨平台视频提取工具其官方 Skillskills/mediago/SKILL.md为 AI Agent 提供了一套标准化流程通过读取本地配置文件、调用 MediaGo 运行实例的 HTTP API即可完成 m3u8/HLS 流、Bilibili 视频与直链视频的下载任务。读完本文你将掌握 MediaGo Skill 的配置方式、API 调用细节、下载任务的状态机轮询流程以及这些接口在仓库源码中的真实实现位置可以据此为自己的 Agent 接入视频下载能力。Skill 是什么给 Agent 的一份「操作手册」skills/mediago/SKILL.md是一份机器可读的技能定义文件本质上是一份给 AI Agent如 Claude、Copilot 等看的使用说明书。它声明了技能的触发条件下载视频、下载这个链接、设置 mediago 地址 等中英文短语并给出了一套可执行的步骤先读取配置文件获得服务地址再通过 REST API 与一个已经在运行的 MediaGo 实例桌面客户端或 Docker 容器通信来完成下载。它的前置条件很明确MediaGo Skill 本身不负责解析视频或执行下载而是把下载能力委托给运行中的 MediaGo 服务。这与仓库的架构是一致的——下载逻辑沉淀在 Go 编写的 core 服务端apps/core而 Skill 只是它的一个 API 客户端。配置文件~/.mediago-skill.jsonSkill 的配置存储在一个 JSON 文件中{ url: http://localhost:8899, apiKey: }urlMediaGo 服务的基础地址。Docker 部署默认监听8899端口见 docker-compose.yml 中的ports: 8899:8899桌面客户端则通常随机占用一个高位端口典型如http://192.168.x.x:39719。apiKey访问令牌默认为空。只要配置了apiKeySkill 就会在每次 API 请求时附加请求头-H X-API-Key: API_KEY。从源码看这个请求头的校验逻辑在 apps/core/internal/api/middleware/auth.go认证中间件会先尝试X-API-Key请求头其次Authorization: Bearer头最后回退到?token查询参数供 SSE 等无法自定义请求头的场景使用。其中/healthy、/api/auth/*等路径被列入白名单不需要认证即可访问。首次配置流程如果~/.mediago-skill.json不存在Skill 会引导用户使用用户当前的语言完成两步安装 MediaGo桌面客户端从仓库 Releases 页面下载安装Docker 部署docker run -d --name mediago -p 8899:8899 -v /path/to/mediago:/app/mediago ghcr.io/caorushizi/mediago:latest初始化配置告知 Agent 服务地址例如 Docker 场景说「设置 mediago 地址为 http://localhost:8899」桌面客户端场景说「设置 mediago 地址为 http://192.168.x.x:39719」。Agent 拿到 URL以及可选的 API Key后写入配置文件。更新配置当用户说「设置 mediago 地址为 …」「mediago api key 是 …」「我的 mediago 跑在 …」英文对应 set mediago url to ...、mediago api key is ...时Agent 应当读取现有配置、更新对应字段并回写文件。API 参考Skill 实际调用的六个端点Skill 文档中的所有 API 调用都基于curl并且每次调用前都要从配置文件中读取url和apiKey。下面逐个端点说明请求方式、响应结构与底层实现。健康检查curl -s BASE_URL/healthy服务正常时返回{success:true,...}。该端点在 apps/core/internal/api/server/router.go 中注册为GET /healthy对应 apps/core/internal/api/handler/health.go 的HealthHandler.Check固定返回{success:true,code:200,message:OK,data:{status:ok}}。创建并启动下载任务curl -s -X POST BASE_URL/api/downloads \ -H Content-Type: application/json \ -d {tasks:[{type:TYPE,url:VIDEO_URL,name:NAME}],startDownload:true}请求体字段对应 apps/core/internal/api/dto/download.go 中的AddDownloadReq/AddDownloadBatchReq字段必填说明tasks是任务数组支持一次批量创建多个任务tasks[].type否下载类型m3u8/bilibili/direct可由 Agent 从 URL 自动推断tasks[].url是视频地址DTO 上标记了binding:requiredtasks[].name否自定义文件名不传则由服务端自动生成startDownload否true时任务创建后自动开始下载类型自动推断规则与源码中的InferDownloadType一致见 apps/core/internal/core/types.goURL 包含bilibili.com或b23.tv→bilibiliURL 以.m3u8结尾 →m3u8其余 →direct。响应中的data是创建成功的任务数组取data[0].id即为任务 ID供后续轮询状态使用。从源码看该端点的处理逻辑位于 apps/core/internal/api/handler/download.go 的DownloadHandler.Create它把请求体转换为service.AddDownloadTaskInput通过DownloadTaskService.AddDownloadTasks持久化任务若startDownload为true则立即调用StartDownloadIfNeeded启动下载。同一 URL 的重复任务会返回 HTTP 409ErrDownloadURLAlreadyExists。创建完成后还会通过 SSE Hub 广播download-create事件让所有已连接的客户端主窗口、浮层对话框、外部客户端同步刷新状态。查询任务状态curl -s BASE_URL/api/downloads/TASK_ID响应的data字段包括id、name、status、type、exists、file。status的取值在 apps/core/internal/core/types.go 中定义为任务状态枚举状态含义pending排队等待前一个任务占用下载通道时downloading下载中success下载成功完成failed下载失败stopped手动停止任务状态在 apps/core/internal/core/queue.go 的任务队列中被驱动流转入队即变为downloading若通道空闲或pending若通道被占用成功回调写入success停止写入stopped失败写入failed。exists/file字段由DownloadTaskWithFile见 apps/core/internal/service/download_task.go在查询时根据本地下载目录计算文件是否存在及最终文件路径。分页列出下载任务curl -s BASE_URL/api/downloads?current1pageSize20响应为data.total总数与data.list任务数组。分页参数current、pageSize在 apps/core/internal/api/dto/download.go 的DownloadPaginationReq中定义另外还支持可选的filter关键字过滤参数。读取配置获取下载目录等curl -s BASE_URL/api/config返回完整配置其中local字段即下载目录路径。对应 apps/core/internal/api/handler/config.go 的ConfigHandler.GetStore它会将整个配置存储对象原样返回。配置接口还支持POST /api/config局部更新、GET/PUT /api/config/:key单键读写支持点号嵌套键更新后会广播config-changedSSE 事件。标准下载工作流五步闭环Skill 文档规定的完整下载流程如下检查配置读取~/.mediago-skill.json若不存在则走上面的首次配置流程。健康检查调用/healthy确认服务可达不可达时告知用户 MediaGo 可能未启动并引导其启动。创建任务POST /api/downloads并带上startDownload: true。轮询进度每 3 秒GET /api/downloads/TASK_ID向用户报告状态。报告结果success→ 「下载完成文件[path]」failed→ 「下载失败。」轮询超过 5 分钟仍未结束 → 告知用户下载仍在进行中。这套「创建 → 轮询 → 汇报」的模式与 Web 前端的任务管理方式一致仓库中的 Web UI 通过 SSE 事件流GET /api/events注册于 apps/core/internal/api/server/router.go实时接收download-create、download-progress、download-complete等事件来刷新界面而 Skill 选择轻量的轮询方式二者殊途同归。Skill 之所以推荐轮询而非 SSE是因为 EventSource 无法设置X-API-Key请求头虽然中间件支持?token参数兜底轮询对 Agent 而言更简单可靠。注意事项与最佳实践语言一致性始终使用用户正在使用的语言中文或英文回复这是 Skill 的硬性要求。401 处理如果 API 返回 HTTP 401说明 API Key 可能有误应告知用户并请其更新。自动推断类型除非用户明确指定否则始终从 URL 自动推断下载类型。name省略用户未提供name时不要传该字段让服务端自动生成文件名。API Key 的生效条件只有当配置文件中apiKey非空时认证中间件才会要求请求携带令牌见 apps/core/internal/api/middleware/auth.go 中「storedKey 时直接放行」的逻辑未配置 Key 时/api/downloads等 API 可直接访问。这意味着仅在可信网络中或首次安装未配置认证时空 Key 才可用。延伸Skill 之外的下载能力边界值得说明的是Skill 文档描述的m3u8/bilibili/direct三种类型是 Agent 接入的最小集合。仓库底层的下载通道其实更丰富在 apps/core/internal/core/types.go 中DownloadType枚举还包括youtube、xiaohongshu小红书与mediago它们分别路由到yt-dlp等不同下载器类型到可执行文件的映射见同一文件N_m3u8DL-RE负责 m3u8、BBDown负责 B 站、aria2c负责直链。此外MediaGo 还提供了 Docker 模式下载接口/api/docker/downloads见 apps/core/internal/api/server/router.go以及 MCP 服务器apps/core/internal/mcpserver供不同集成场景选用。对 Agent 开发者而言最稳妥的做法是严格遵循 Skill 文档中的 API 子集健康检查、创建任务、查询状态、列出任务、读取配置因为它们有明确的契约、稳定的状态枚举且与源码实现一一对应便于调试与排错。赞分享音视频桌面应用后端【免费下载链接】mediago跨平台视频提取工具支持流媒体下载、视频下载、m3u8 下载及 B站视频下载提供 Windows 和 Mac 桌面客户端。Cross-platform video extraction tool: Supports streaming download, video download, m3u8 download, and Bilibili video download, with desktop clients for Windows and Mac.项目地址https://gitcode.com/caorushizi/mediago点击查看免费下载相关推荐MediaGo OpenClaw Skill 实战用自然语言驱动 m3u8、B 站与直链视频下载MediaGo OpenClaw Skill 实战用自然语言驱动 m3u8、B 站与直链视频下载 MediaGo 通过 OpenClaw Skill 把自然音视频桌面应用后端MediaGo OpenClaw Skill 实战用自然语言驱动 AI 编程助手下载 m3u8、B站与直链视频MediaGo OpenClaw Skill 实战用自然语言驱动 AI 编程助手下载 m3u8、B站与直链视频 MediaGo 为 AI 编程助手提供了一套音视频桌面应用后端10个OfflineIMAP高级配置技巧从基础到专家级10个OfflineIMAP高级配置技巧从基础到专家级 OfflineIMAP是一款强大的邮件同步工具能够帮助用户在本地与IMAP服务器之间同步邮件实现离后端上一篇Kepler.gl 用户指南从数据导入到图层、过滤与导出的完整地理分析工作流下一篇godaddy/terminus完整教程从零开始构建生产就绪的Node.js应用创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。