MediaGo 深度解读:跨平台视频嗅探下载器的核心能力、Docker 部署与源码开发指南
音视频桌面应用后端【免费下载链接】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仓库目录caorushizi/mediago是一款开源的跨平台视频下载工具核心卖点是内置网页嗅探——把目标页面地址交给它选择想要的内容即可保存无需抓包、无需手动配置浏览器扩展、无需折腾命令行工具。本文以仓库根目录 README.md 为主线结合 apps/core/README.md、Taskfile.yml、Dockerfile 等源码级资料系统梳理它的功能矩阵、Docker 一键部署方式、HTTP API 集成面以及从源码参与开发的标准工作流。读完你可以独立完成 MediaGo 的部署、集成与二次开发环境搭建。一、项目定位把网页视频提取做成一条龙MediaGo 的定位从 README.md 的开篇即可概括一个跨平台视频下载器内置嗅探built-in sniffing指向一个页面即可选择目标资源并保存。它把发现视频 → 解析源 → 下载 → 转格式整合进同一应用内桌面端同时覆盖 Windows 与 macOS应用界面目前支持英语、简体中文与意大利语三种语言。从仓库结构看MediaGo 是一个典型的 monorepo核心组件分工明确apps/coreGoGin实现的多任务下载服务端同时内嵌了 Web 界面与播放器 UI通过go:embed打包进二进制apps/electronElectron 桌面壳负责窗口、系统托盘与本地桥接apps/ui主 Web 前端React Vite Tailwind shadcn/uipackages/browser-extension 与 packages/mediago-extension浏览器嗅探扩展packages/common、packages/core-sdk、packages/tooling共享代码、SDK 与构建工具链。二、核心能力矩阵六项开箱即用的能力1. 内置浏览器嗅探扩展Chrome / Edge在任何站点上看到想保存的内容点击扩展即可发送到 MediaGo。扩展会自动检测视频资源并在工具栏徽章上显示检测数量兼容 YouTube、Bilibili 等绝大多数主流视频平台。该扩展随桌面应用一起打包在设置 → 更多设置 → 浏览器扩展目录中即可找到安装文件夹。嗅探相关的桌面端实现集中在 apps/electron/src/services/sniffing-helper.service.ts 与 apps/electron/src/services/discovery-executor.service.ts浏览器端负责资源发现桌面端执行器负责最终的媒体发现与下载回传。2. 多站点下载yt-dlp 引擎YouTube 与 1000 站点MediaGo 的通用站点下载能力基于 yt-dlp。仓库在 packages/tooling/manifests/runtime-deps.json 中固定了 yt-dlp 的版本与各平台二进制linux-x64/darwin-arm64/win32-x64等并附有 SHA-256 校验值保证下载的引擎与预期一致。支持 YouTube、Twitter/X、Instagram、Reddit 及上千个视频站点。3. AI 助手可代为下载OpenClaw Skill如果你使用 Claude Code、Cursor 等 AI 编码助手可以安装 MediaGo 的 Skill然后直接说出请下载这个视频 由 AI 完成后续操作npx clawhublatest install mediago项目根目录 skills/mediago/SKILL.md 就是该 Skill 的本地定义文件可作为 AI 助手能力边界的参考实现。4. 对外 HTTP API脚本与第三方工具集成MediaGo 暴露了完整的 HTTP API脚本、自动化工具和其他应用可以直接创建下载任务、查询进度、管理任务列表。浏览器扩展正是通过这一 API 与桌面应用通信其他第三方工具同样可以接入。API 层实现在 apps/core/internal/api/api.go服务端入口是 apps/core/cmd/server/main.go。根据 apps/core/README.md核心端点包括POST /api/tasks—— 创建下载任务POST /api/tasks/:id/stop—— 停止任务POST /api/config—— 更新配置GET /api/events—— SSE 实时事件流POST /api/discoveries—— 创建媒体发现任务GET /api/discoveries/:id—— 查询脱敏后的发现结果POST /api/discoveries/:id/cancel—— 取消发现任务POST /api/discoveries/:id/downloads—— 从 source ID 创建下载GET /api/discovery-executor/status—— 查询浏览器执行器状态GET /swagger/*any—— Swagger UI在线 API 文档与测试几点实现细节值得注意服务默认开启 API Key 认证--enable-auth详见下方 Docker 部署部分浏览器发现模式要求桌面端 Electron 与 Core 保持连接独立 Docker/Core 目前仅支持对直接 M3U8 的inspect模式useSessionCookies默认关闭公开的 HTTP/MCP/CLI 结果永远不包含 Cookie 或 Authorization内置 MCP 工具为discover_media、get_media_discovery、cancel_media_discovery、download_discovered_media。命令行同样可以驱动发现流程来自 apps/core/README.md# CLI等待并打印脱敏后的发现结果 mediago discover https://example.com/watch/1 --mode browser --json # 从结果中的 source ID 创建下载 mediago discover download discovery-id --source source-15. 内置格式转换下载完成后可直接在应用内转换为其他格式或清晰度无需再打开单独的 ffmpeg 工具。转换服务的核心实现在 apps/core/internal/service/conversion.go它通过ConversionService管理转换任务支持启动StartConversion、停止StopConversion与进度回调转换任务记录持久化到数据库。底层的 ffmpeg 二进制同样由 packages/tooling/manifests/runtime-deps.json 按平台锁定版本。6. 一行命令 Docker 部署在服务器上无头安装然后同一网络内的任意设备即可通过 Web UI 访问docker run -d --name mediago -p 8899:8899 -v /path/to/mediago:/app/mediago caorushizi/mediago:3.5.0镜像同时托管在 Docker Hub 与 GHCR两个 registry 使用同一镜像可选择网络更快的一个同时支持 Intel/AMDamd64与 ARMarm64两种架构。桌面构建版默认同时监听127.0.0.1与局域网 IP同一 Wi-Fi 下的手机和平板可以直接打开 Web UI。三、Docker 部署纵深镜像结构、启动参数与数据目录MediaGo 的 Docker 镜像采用多阶段构建完整流程记录在 DockerfileNode 构建阶段基于node:24.14.0-bookworm-slim先安装 pnpm 工作区依赖再构建内嵌播放器 UImediago/player-ui与 Web UIAPP_TARGETserver生产构建最后按目标架构下载全部第三方工具到.deps/linux-*Go 构建阶段基于golang:1.25-bookworm将 player-ui 与 Web UI 的构建产物分别拷贝进 apps/core/assets/player 与 apps/core/assets/web通过go:embed打进单一二进制mediago-coreCGO_ENABLED0静态编译支持TARGETOS/TARGETARCH交叉编译运行阶段基于debian:bookworm-slim预装ca-certificates与libicu72将二进制安装到/usr/local/bin/mediago-core第三方工具统一放到/app/deps并暴露8899端口、声明/app/mediago卷。容器内实际启动参数由 docker/docker-entrypoint.sh 提供它把调用参数与 Dockerfile 解耦这样修改默认参数无需重建镜像层且调用方可以通过docker run追加参数覆盖单个 flagexec mediago-core \ --port8899 \ --enable-auth \ --db-path/app/mediago/data/mediago.db \ --config-dir/app/mediago/data \ --log-dir/app/mediago/logs \ --local-dir/app/mediago/downloads \ --deps-dir/app/deps \ $其中$会把docker run ... mediago-core --foobar追加的参数透传给 Go 进程exec替换 shell 进程确保docker stop的 SIGTERM 信号能直达 Go 进程。因此容器内的数据分三类存放数据库与配置data、日志logs、下载文件downloads。用 Docker Compose 编排仓库根目录还提供了 docker-compose.yml适合与现有服务统一编排services: mediago: build: context: .. dockerfile: mediago/Dockerfile ports: - 8899:8899 volumes: - mediago-data:/app/data - mediago-logs:/app/logs restart: unless-stopped volumes: mediago-data: mediago-logs:本地构建镜像同样受 Task 支持在仓库根目录执行task build:docker即可生成mediago:local镜像构建前会通过docker info校验 Docker daemon 可用见 Taskfile.yml 中internal:docker:daemon任务。宝塔面板BT Panel一键部署README 中还给出了面向宝塔面板的部署路径用官方脚本安装宝塔面板登录面板在侧边栏点击Docker完成 Docker 服务初始化按提示操作即可在应用商店找到MediaGo点击安装配置域名后即完成。服务端启动参数与默认值服务端启动参数的解析集中在 apps/core/cmd/server/main.go 的registerConfigFlags中结合 apps/core/internal/app/config.go 的DefaultConfig()可以整理出完整的默认值表参数 / 环境变量默认值说明--port/PORT8080容器内为8899服务监听端口HOST0.0.0.0监听地址GIN_MODEreleaseGin 运行模式--log-levelinfo日志级别debug/info/warn/error--log-dir./logs日志目录--max-runner2最大并发下载 runner 数--local-dir./downloads默认下载目录--delete-segmentstrue下载完成后删除分段文件--proxy/--use-proxy空 /false下载代理--db-path/DB_PATH空SQLite 数据库路径--config-dir同日志目录持久化配置文件目录--enable-authfalse是否启用 API Key 认证MEDIAGO_DEPS_DIR空下载器工具二进制目录若设置了MEDIAGO_RUNTIME_ROOT环境变量则data/logs/downloads会自动落到runtime-root下的对应子目录DB_PATH与ConfigDir也会随之推导。桌面版通过私有的MEDIAGO_ELECTRON_BRIDGE_TOKEN启动令牌区分桌面模式IsDesktop()从而决定是否提供浏览器发现能力。四、下载与安装v3.5.0stable提供以下桌面安装包类型更早版本可查看 Releases 页面Windows安装版installer与便携版portablemacOSApple Siliconarm64与 Intelx64两种架构的.dmgLinux.deb安装包Dockerdocker run -d --name mediago -p 8899:8899 -v /path/to/mediago:/app/mediago caorushizi/mediago:3.5.0Docker Hub 与 GHCR 均可拉取安装包内的程序会自动按相对路径查找下载器工具./bin/N_m3u8DL-RE、./bin/BBDown、./bin/aria2cWindows 下为.exe后缀无需手动配置任何环境变量即可运行见 apps/core/README.md。五、v3.5.0 新特性一览README 对 v3.5.0 的更新点总结如下浏览器扩展任意站点嗅探视频一键发送到 MediaGoYouTube 1000 站点yt-dlp 驱动OpenClaw Skill通过 AI 编码助手下载视频HTTP API与脚本、自动化工具和第三方工具集成应用内格式转换选择输出格式与清晰度更简单的 Docker 部署挂载单个文件夹、GHCR 多架构镜像更快的启动后端重写、更低内存占用、内置视频播放器。六、从源码开发Task 驱动的标准工作流MediaGo 的仓库工作流基于 Task v3.51.1 及以上v3 发布线。先在 macOS、Linux 或 WindowsPowerShell上安装最新的兼容 v3 版本确保 Go 工具链的二进制目录在PATH中并验证版本go install github.com/go-task/task/v3/cmd/tasklatest task --version从仓库根目录开始的推荐流程为task setup task dev:alltask setup会安装 Node 工作区依赖与运行所需的全部运行时工具。这些工具唯一的版本来源是 packages/tooling/manifests/runtime-deps.jsonTask 不会自动升级它们。单独执行pnpm install只安装 Node 工作区包不会安装 BBDown 等运行时二进制task是开发、构建、测试与发布唯一的公共入口。Turbo、pnpm:raw脚本、Go 命令以及 packages/tooling 中的工具都是 Task 与 CI 的内部实现细节开发 Web 面用task dev:web桌面端单独开发用task dev:electron。可部署的 Web 产品就是 Docker 镜像仓库没有独立的 Node.js 服务包提交代码前运行task check task test其中task check聚合 lint、格式检查与类型检查task test运行 TypeScriptVitest与 Gogo test ./...两套测试套件。Node 版本方面task doctor与依赖安装要求 Node 24.14.0 及以上Taskfile.yml 中的 precondition 会显式校验。七、技术栈MediaGo 的构建技术栈清晰呈现在 README 的 Built with 部分React TypeScript前端 UIElectron桌面应用壳Vite构建工具Tailwind CSS shadcn/ui样式与组件GoGin后端下载服务八、致谢与声明MediaGo 的下载能力建立在多个知名开源项目之上包括 N_m3u8DL-REHLS/M3U8 下载、BBDownB 站下载、yt-dlp通用站点下载、aria2直接文件下载以及 mediago-core。这些工具的具体版本与校验值同样固化在 packages/tooling/manifests/runtime-deps.json。最后请务必遵守项目附带的免责声明见 README.md 末尾本项目仅用于教育与研究目的不得用于任何商业或非法用途。下载的任何内容仍归其原始版权所有者所有用户应在 24 小时内删除下载内容或获得适当授权禁止使用本项目进行批量抓取、干扰平台服务或侵犯他人合法权益的活动。九、继续深入阅读项目主文档README.md后端能力与 API 详解apps/core/README.md开发任务与 CI 定义Taskfile.yml运行时依赖清单版本与 SHA-256packages/tooling/manifests/runtime-deps.json镜像多阶段构建细节Dockerfile 与 docker/docker-entrypoint.sh编译构建相关CONTRIBUTING.md、TRANSLATION.md赞分享音视频桌面应用后端【免费下载链接】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点击查看免费下载相关推荐为什么选择Eclipse JerseyJAX-RS实现对比与选型指南为什么选择Eclipse JerseyJAX RS实现对比与选型指南 在构建RESTful Web服务时选择合适的JAX RS实现框架至关重要。作为JAX音视频桌面应用后端Cleanenv实战教程如何优雅管理微服务配置Cleanenv实战教程如何优雅管理微服务配置 Cleanenv是一款专为Golang设计的轻量级环境配置读取工具它能帮助开发者以简洁优雅的方式管理微服务配音视频桌面应用后端强力资源嗅探器终极跨平台视频音乐下载解决方案强力资源嗅探器终极跨平台视频音乐下载解决方案 还在为无法保存喜欢的短视频、音乐而烦恼吗这款专业的资源嗅探器为你提供一站式跨平台资源获取方案轻松实现全网视频桌面应用网络音视频上一篇jvm-sandbox-repeater性能测试报告录制回放对系统影响分析下一篇PhotonDB 开源项目教程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考