mediago

mediago-devMIT活跃维护

跨平台视频下载工具,能嗅探并抓取 m3u8/HLS 流媒体,支持 B 站、YouTube 等站点,提供桌面端和 Docker 两种部署方式。

Cross-platform video downloader — sniff and grab m3u8/HLS streams, Bilibili, YouTube and more. Desktop + Docker + 🦞.

v3.5.0发布于 2026-04-21 16:38 UTC9,371star +8 / 7 天830fork同步于 2026-11-10 17:31 UTC

怎么上手

由 README 提炼,执行前请确认
docker run -d --name mediago -p 8899:8899 -v /path/to/mediago:/app/mediago caorushizi/mediago:3.5.0
硬件要求按 README 说明

README 未说明显存或 GPU 要求;桌面版支持 Windows、macOS(Apple Silicon 与 Intel)、Linux,Docker 镜像支持 amd64 与 arm64。

支持 Apple Silicon有 Docker 镜像
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

跨平台视频下载器,内置嗅探,抓取 m3u8/HLS 与 Bilibili、YouTube 等站点视频

跨平台视频下载工具,能嗅探并抓取 m3u8/HLS 流媒体,支持 B 站、YouTube 等站点,提供桌面端和 Docker 两种部署方式。

核心能力

  • 内置嗅探,指向页面即可挑选并保存视频
  • Chrome/Edge 扩展自动检测视频资源并一键发送到 MediaGo
  • 底层用 yt-dlp 支持 YouTube 等 1000+ 站点
  • 提供完整 HTTP API,可脚本化创建任务与查询进度
  • 下载完成后在应用内直接转码换格式与画质

容易踩的坑

部分构建首次访问需初始化码,需读取服务器配置目录下的 setup-token 文件并在设置页输入;从源码构建需先安装 One CLI 0.1.24 或更新版本,仅执行 pnpm install 不会安装 BBDown 等运行时二进制;UI 开发服务器默认只绑定 127.0.0.1,局域网调试需设置 MEDIAGO_DEV_HOST=0.0.0.0。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v3.5.0
  1. v3.6.0-beta.13.6.0-beta.1pre-release2026-10-21 · 2026-10-21 18:10 UTC
    查看更新说明

    Windows 安装器修复

    • 修复安装器标题未随系统语言本地化的问题,保留产品名和版本号;意大利语显示为 Installazione di …。
    • 将安装器底部文字调整为 Copyright mediago-community。
    • 本地化开始菜单和桌面快捷方式的描述;升级时更新已有快捷方式描述,并保留目标、启动参数、图标等属性,不重建用户已删除的快捷方式。
    • Windows 程序列表中的名称不再重复包含版本号,版本仍显示在独立字段中。

    相关修复:PR #743、Issue #742。这些改动需要安装或升级到本次新安装包后生效。

    其他更新

    • 为 macOS 公证票据附加和校验增加网络异常退避重试,保留完整签名与安全校验(PR #750)。

    • 改进应用内意大利语翻译。

    • 修复 Core 与 Electron E2E 构建之间的执行顺序。

    • 新增 One CLI 工作区开发流程与安装说明。

    • 更新部分运行与构建依赖。

    Windows installer fixes

    • Localized installer titles retain the product name and version, with updated copyright footer text.

    • Localized shortcut descriptions are refreshed during upgrades while preserving shortcut properties; intentionally removed shortcuts stay removed.

    • Windows' installed-app Name field no longer repeats the version shown in its separate field.

    • Also includes Italian translation refinements, build-order fixes, One CLI workspace workflows and dependency updates.

    • Build pipeline: macOS notarization and ticket validation now use bounded retries for network failures, with all signing and security checks retained (PR #750).

    Docker

    docker pull caorushizi/mediago:3.6.0-beta.1
    

    完整变更 / Full changelog: v3.6.0-beta.0…v3.6.0-beta.1

  2. v3.6.0-beta.03.6.0-beta.0pre-release2026-10-19 · 2026-10-19 17:47 UTC
    查看更新说明

    主要更新

    • 增强智能流媒体嗅探、多标签浏览和下载能力,支持管理 Docker 下载任务。
    • 新增抖音、TikTok、小红书下载支持,改进 YouTube 下载与运行依赖。
    • 改进 MCP 协议兼容性、发现能力与下载任务生命周期。
    • 优化浏览器扩展的弹窗与设置页面,改进设备模式、直播录制和系统语言跟随。

    问题修复

    • 修复异常 Docker 任务数据导致应用启动崩溃的问题。
    • 修复自动更新渠道切换、Linux 托盘兼容性和下载输出路径保存问题。
    • 恢复批量下载输入示例,改进下载与浏览器交互的稳定性。

    Docker 镜像

    支持 Linux amd64 / arm64:

    docker pull caorushizi/mediago:3.6.0-beta.0
    

    What's Changed

    New Contributors

    Full Changelog: https://github.com/mediago-dev/mediago/compare/v3.5.0...v3.6.0-beta.0

  3. v3.5.03.5.0最新正式版2026-04-21 · 2026-04-21 16:38 UTC

    🎉 MediaGo v3.5.0

    This release brings support for more sites, a brand-new browser extension, and deep integration with AI assistants. Overall, it runs faster and uses fewer resources.

    🌐 Browser Extension (Chrome / Edge)

    See a video you like while browsing? Send it to MediaGo with one click.

    • Automatically detects downloadable videos on web pages — the toolbar icon shows the count detected on the current page
    • Works with most major video sites, including Bilibili, YouTube, and more
    • Bilingual interface (English / Chinese) that follows your browser language by default
    • No need to install from the store — after installing MediaGo, find the extension files under Settings → More Settings → Browser Extension Directory

    🎬 YouTube and 1000+ Sites Supported

    Added support for YouTube, Twitter/X, Instagram, Reddit, and over a thousand other video sites. Previously supported formats are now more stable too, especially for overseas sites.

    🦞 Download with a Single Sentence via AI Assistants (OpenClaw Skill)

    If you use AI coding tools like Claude Code or Cursor, you can now just tell your AI:

    "Download this video for me: https://..."

    The AI will automatically call MediaGo to handle the download. To install:

    npx clawhub@latest install mediago
    

    Both English and Chinese commands are recognized.

    🔌 Let Other Tools Integrate with MediaGo

    A full set of APIs is now open, letting scripts, automation tools, and even other apps call MediaGo — you're no longer confined to the desktop window. The browser extension itself communicates with the desktop app through these APIs, and power users can build them into their own workflows.

    🎞️ Convert Formats Right After Downloading

    Once a video finishes downloading, you can convert its format and choose quality settings directly inside MediaGo — no need to open another tool.

    🐳 Easier Docker Deployment

    Deploy with a single command. Works on both Intel and ARM chips:

    docker run -d --name mediago -p 8899:8899 -v /path/to/mediago:/app/mediago ghcr.io/caorushizi/mediago:3.5.0
    

    If you're using the desktop version, phones and tablets on the same home network can also open MediaGo's web interface — no extra configuration needed.

    ⚡ Performance and Experience

    • Faster startup and lower memory footprint
    • Built-in video player — no need to launch a separate app
    • Some long-standing issues are fixed: download logs can now be copied, the download task list auto-refreshes when tasks are imported externally, and special characters in filenames are handled automatically — no more "can't find the file after it finishes downloading"

    Notes for macOS Users

    [Intel chips] Install the x64 version from the release page. After installation, you'll need to allow apps from unidentified developers in your Mac's security settings.

    [Apple Silicon] Install the arm64 version from the release page. After installation, run the following command in Terminal:

    sudo xattr -dr com.apple.quarantine /Applications/mediago-community.app
    

    🎉 MediaGo v3.5.0

    新版本带来更多站点支持、全新浏览器扩展、以及和 AI 助手的深度整合。整体运行更快、资源占用更少。

    🌐 浏览器扩展(Chrome / Edge)

    浏览网页时看到感兴趣的视频,一键发到 MediaGo 下载。

    自动识别网页上的可下载视频,工具栏图标会显示当前页检测到的数量 支持大多数主流视频站点 —— 包括 B站、YouTube 等 中英双语界面,默认跟随浏览器语言 不用去商店下载,装完 MediaGo 后在设置 → 更多设置 → 浏览器扩展目录就能找到安装文件

    🎬 支持 YouTube 和 1000+ 站点

    新增对 YouTube、Twitter/X、Instagram、Reddit 等一千多个视频站点的支持。之前只能下的格式也更稳定了,特别是一些海外网站。

    🦞 AI 助手一句话下载(OpenClaw Skill)

    如果你在用 Claude Code、Cursor 等 AI 编程工具,现在可以直接跟 AI 说:

    "帮我下载这个视频:https://..."

    AI 会自动调用 MediaGo 帮你下载。安装方式:

    npx clawhub@latest install mediago
    

    中文英文指令都能识别。

    🔌 让其他工具和 MediaGo 联动

    开放了一整套接口,让脚本、自动化工具、甚至其他 App 都能调用 MediaGo —— 你不再被限制在桌面窗口里。浏览器扩展就是通过这套接口和桌面端对话的,喜欢折腾的用户也可以基于它接入自己的工作流。

    🎞️ 下载完直接转格式

    视频下载好之后,在 MediaGo 里直接就能转格式、选画质,不用再打开别的软件。

    🐳 Docker 部署更简单

    一条命令就能部署,支持 Intel 和 ARM 两种芯片:

    docker run -d --name 
    
  4. v3.5.0-beta.13.5.0-beta.1pre-release2026-04-12 · 2026-04-12 18:39 UTC
    查看更新说明

    New Added YouTube downloads via yt-dlp, supporting 1000+ sites Improved Consolidated binary path args into a single --deps-dir flag Redesigned download dialog and resource extraction page Cleaned up unused browser extension dependencies Fixed Download failure logs showing [object Object] instead of actual output Electron deprecation warnings and update check crash Missing translation for password confirmation on sign-in page Hardcoded Chinese strings in Skills setup commands

  5. v3.5.0-beta.03.5.0-beta.0pre-release2026-04-03 · 2026-04-03 11:05 UTC
    查看更新说明

    MediaGo Community v3.5.0-beta.0

    🦞 OpenClaw Skill

    支持在 AI 编程助手中通过自然语言下载视频。安装 Skill 后,直接对 AI 说「帮我下载这个视频」即可。

    安装方式:

    npx clawhub@latest install mediago
    

    支持 Claude Code、Cursor 等主流 AI 编程助手,中英文指令均可使用。

    🔌 开放 HTTP API

    新增完整的 HTTP REST API,支持通过接口创建下载任务、查询进度、管理下载列表。可以方便地与脚本、自动化工具或其他应用集成,不再局限于桌面端操作。

    🎬 视频格式转换

    新增视频格式转换功能,下载完成后可直接在应用内转换为其他格式,支持选择输出格式和画质。

    🐳 Docker 部署优化

    Docker 镜像迁移到 GitHub Container Registry,支持 x86 和 ARM 双架构。部署方式简化为挂载一个目录:

    docker run -d --name mediago -p 8899:8899 \
      -v /path/to/mediago:/app/mediago \
      ghcr.io/caorushizi/mediago:3.5.0-beta.0
    

    ⚡ 性能提升

    后端全面重写,启动更快,占用资源更少。视频播放器合并到主服务中,不再需要单独启动,使用体验更流畅。

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    中文   •   日本語   •   Italiano

    A cross-platform video downloader with built-in sniffing — point it at a page, pick what you want, and save. No packet capture, no browser extensions to configure, no fiddling with command-line tools.

    The app UI currently ships with English, Simplified Chinese, and Italian.

    ✨ What's inside

    🌐 Browser extension for Chrome / Edge

    See something you want on any site → click the extension → send it to MediaGo. Detects video resources automatically, shows the count on the toolbar badge, works with most mainstream video platforms including YouTube, Bilibili and more. Ships bundled with the Desktop app — open Settings → More Settings → Browser extension directory to find the install folder.

    🎬 YouTube and 1000+ sites

    Powered by yt-dlp under the hood. Supports YouTube, Twitter/X, Instagram, Reddit and over a thousand more video sites.

    🦞 AI assistants can download for you — OpenClaw Skill

    Using Claude Code, Cursor or another AI coding assistant? Install the MediaGo skill and just say "please download this video: <url>". The AI handles the rest.

    npx clawhub@latest install mediago
    

    🔌 Works with other tools

    MediaGo exposes a full HTTP API — scripts, automation tools and other apps can create download tasks, query progress and manage the list directly. The browser extension uses this same API to talk to the desktop app; anyone else can tap in too.

    🎞️ Built-in format conversion

    After a download finishes, convert it to another format or quality without leaving MediaGo. No more opening a separate tool for ffmpeg.

    🐳 One-line Docker deployment

    Headless install on your server, then access the web UI from anywhere on the same network:

    docker run -d --name mediago -p 8899:8899 -v /path/to/mediago:/app/mediago caorushizi/mediago:3.5.0
    

    For builds that request an initialization code, read setup-token in the server config directory (docker exec mediago cat /app/mediago/data/setup-token for the default container), then enter it on the setup page. The file is deleted after successful setup; existing accounts do not need to initialize again.

    Available on Docker Hub and GHCR (ghcr.io/caorushizi/mediago) — same image, pick whichever registry is faster for you. Supports both Intel / AMD (amd64) and ARM (arm64). On the desktop build, MediaGo listens on both 127.0.0.1 and your LAN IP out of the box, so phones and tablets on the same Wi-Fi can open the web UI too.

    📷 Screenshots

    Home

    Home — dark mode

    Settings

    Resource extraction

    📥 Download

    v3.5.0 (stable)

    Browsing older releases? See the GitHub Releases page.

    🪄 One-click Docker deployment via BT Panel

    1. Install BT Panel using the official script.
    2. Log in to the panel, click Docker in the sidebar and finish the Docker service setup (just follow the prompts).
    3. Find MediaGo in the app store, click Install, configure your domain, and you're done.

    📝 What's new in v3.5.0

    • 🌐 Browser extension — sniff videos on any site, send to MediaGo in one click
    • 🎬 YouTube + 1000+ sites — powered by yt-dlp
    • 🦞 OpenClaw Skill — download videos via AI coding assistants
    • 🔌 HTTP API — integrate with scripts, automation and third-party tools
    • 🎞️ In-app format conversion — choose output format and quality
    • 🐳 Simpler Docker deployment — mount a single folder, multi-arch images on GHCR
    • ⚡ Faster startup — backend rewrite, lower memory footprint, built-in video player

    🧑‍💻 Development from source

    Install One CLI 0.1.24 or newer first.

    macOS / Linux:

    curl -fsSL https://1cli.dev/install.sh | bash
    

    Windows (PowerShell):

    irm https://1cli.dev/install.ps1 | iex
    

    For manual installation, download the CLI archive for your operating system and architecture from GitHub Releases and add the one executable to PATH.

    After installation, open a new terminal and run these commands from the repository root:

    one --version
    one mise trust
    one mise install
    one setup
    one dev
    one dev:web
    one dev:electron
    one check
    one test
    

    one.manifest.toml registers the existing projects. mise.toml pins Node, pnpm, Go and Task and exposes product workflows through One. Run one run to list tasks, one build -p core to build Core, or one build -p docs to build the documentation. one dev --dry-run -o json previews execution. After changing package scripts, run one init mise and review the diff. See CONTRIBUTING.md for configuration and validation.

    The following Task commands remain compatible and are used by existing CI:

    Repository workflows support Task v3.51.1 or newer within the v3 release line. Install the latest compatible v3 release on macOS, Linux, or Windows (PowerShell) with a Go toolchain, make sure the Go binary directory is on PATH, and verify it before running repository commands:

    go install github.com/go-task/task/v3/cmd/task@latest
    task --version
    

    From the repository root, the primary clone-and-start flow is:

    git clone https://github.com/caorushizi/mediago.git
    cd mediago
    task setup
    task dev:all
    

    task setup installs the Node workspace and the runtime tools needed by the application. Their only version source is packages/tooling/manifests/runtime-deps.json; Task does not automatically upgrade them. Running pnpm install alone installs only Node workspace packages, not runtime binaries such as BBDown.

    One delegates product workflows to the existing Taskfile. Turbo, pnpm :raw scripts, Go commands, and utilities in packages/tooling remain implementation details used by Task and CI.

    Use task dev:web for the web surface or task dev:electron for desktop-only development. The deployable Web product is the Docker image; there is no separate Node.js server package. Before submitting changes, run:

    task check
    task test
    

    🛠️ Built with

    React Electron Vite TypeScript Tailwind CSS shadcn/ui Go

    🙏 Acknowledgements

    ⚖️ Disclaimer

    This project is for educational and research purposes only. Do not use it for any commercial or illegal purposes.

    1. All code and functionality provided by this project are intended solely as a reference for learning about streaming media technologies. Users must comply with the laws and regulations of their jurisdiction.
    2. Any content downloaded using this project remains the property of its original copyright holders. Users should delete downloaded content within 24 hours or obtain proper authorization.
    3. The developers of this project are not responsible for any actions taken by users, including but not limited to downloading copyrighted content or impacting third-party platforms.
    4. Using this project for mass scraping, disrupting platform services, or any activity that infringes upon the legitimate rights of others is strictly prohibited.
    5. By using this project you acknowledge that you have read and agree to this disclaimer. If you do not agree, stop using the project and delete it immediately.

    Building from source? See CONTRIBUTING.md.

    Translating MediaGo? See TRANSLATION.md.

    Security checks

    Run pnpm security:js for the complete workspace dependency audit and pnpm security:go with official govulncheck v1.9.0 on PATH for affected Go function calls. GitHub runs these checks, CodeQL, and container dependency scans on pull requests and daily. Container scans cover OS and identifiable embedded packages; absence of findings does not validate every bundled native library.

    The UI development server binds to 127.0.0.1 by default. For intentional LAN testing, set MEDIAGO_DEV_HOST=0.0.0.0 in .env.development.local.

    The runtime container uses Distroless Debian 13 with the required ICU/zlib libraries and package provenance. It keeps the same port, volume paths and appended flag overrides. There is no shell or package manager inside the production image; use docker logs and the health/API endpoints for diagnostics. The external streaming engine is rebuilt from checksum-pinned v0.2.1 source with the patched Go toolchain.

    Privacy and Code signing policy

    Usage statistics are optional. See the Privacy policy for installer-time choice and in-app controls. Windows SignPath signing is pending approval/integration; existing unsigned releases remain unsigned. See the Code signing policy.