explaingit

caorushizi/mediago

8,905TypeScriptAudience · generalComplexity · 2/5Setup · easy

TLDR

A desktop app for downloading videos from thousands of sites including YouTube and Bilibili, with a browser extension for one-click capture, a built-in video converter, a Docker server mode, and an HTTP API for automation.

Mindmap

mindmap
  root((MediaGo))
    What it does
      Video downloader
      Format converter
      Browser extension
    Platforms
      Windows macOS Linux
      Docker server
    Sources
      YouTube Bilibili
      HLS streams
      1000 plus sites
    Automation
      HTTP API
      AI assistant plugin
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Download HLS streams and YouTube videos to your computer with one click from the browser extension.

USE CASE 2

Run MediaGo as a Docker server to manage video downloads from your phone or tablet on your home network.

USE CASE 3

Automate video downloads by calling the MediaGo HTTP API from a script or AI assistant.

USE CASE 4

Convert downloaded videos to a different format using the built-in converter without installing extra software.

Tech stack

TypeScriptDocker

Getting it running

Difficulty · easy Time to first run · 5min

In plain English

MediaGo is a desktop application for downloading videos from websites. You point it at a page, select the video you want, and it saves it to your computer. It works on Windows, macOS, and Linux, and also runs as a Docker container for headless server use. The app handles HLS streams (the format many streaming sites use, identified by .m3u8 URLs) as well as YouTube, Bilibili, and over a thousand other video sites, using a well-known open-source download tool called yt-dlp under the hood. The app ships with a Chrome and Edge browser extension. When you visit a page with video content, the extension badge shows how many video resources it detected. One click sends that video to MediaGo to download. There is no need to inspect browser network traffic or configure separate command-line tools. After downloading, MediaGo can also convert the file to a different format or quality using a built-in converter, so you do not need a separate video conversion program. For server users, a single Docker command starts MediaGo and exposes a web interface accessible from any device on the same network. This makes it usable from a phone or tablet without installing the desktop app on each device. The Docker image supports both Intel/AMD and ARM processors. MediaGo also exposes an HTTP API, which means scripts and other tools can instruct it to start downloads, check progress, and manage the download queue programmatically. The browser extension uses this same API. There is also an integration for AI coding assistants: by installing a plugin called OpenClaw Skill, you can ask an AI assistant to download a video by URL and MediaGo handles the rest. The README includes a disclaimer stating the project is intended for educational and research use only, and that users should comply with copyright law in their jurisdiction. The interface is available in English, Simplified Chinese, and Italian.

Copy-paste prompts

Prompt 1
Write a Python script that calls the MediaGo HTTP API to queue a list of video URLs for download and poll their progress.
Prompt 2
How do I deploy MediaGo with Docker Compose and access its web interface from another device on my local network?
Prompt 3
Help me set up the MediaGo Chrome extension so it automatically detects and sends videos to my local MediaGo instance.
Open on GitHub → Explain another repo

← caorushizi on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.