finds.dev← search

// the find

mediago-dev/mediago

★ 9,244 · TypeScript · MIT · updated Sep 2026

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

MediaGo is an Electron desktop app (with a Docker/web build) that sniffs m3u8/HLS streams off any page you point it at, plus wraps yt-dlp for YouTube/1000+ sites and BBDown for Bilibili. It's aimed at people who want a GUI/API download manager instead of juggling yt-dlp, ffmpeg, and a browser extension separately.

It doesn't reinvent extraction logic — it wraps yt-dlp, BBDown, N_m3u8DL-RE and aria2, so site coverage and format handling ride on tools that are already battle-tested. It exposes a real HTTP API that the bundled browser extension itself consumes, so third parties get the same interface rather than a token gesture. Docker images are multi-arch (amd64/arm64) and published to both Docker Hub and GHCR with a single volume mount, which is a low-friction self-host story. The Go backend is organized into actual service boundaries (queue, discovery, parser, mcpserver) rather than being a thin Electron wrapper around a shell script.

The whole feature set sits in the same legal gray zone the README's five-paragraph disclaimer is trying to paper over — generic HLS sniffing plus Bilibili scraping is a different risk profile than yt-dlp alone, and the project leans on the disclaimer instead of any technical safeguard. The 'OpenClaw Skill' lets an AI coding assistant trigger downloads via `npx clawhub@latest install mediago` — that's a third-party package with no provenance discussion added to the trust chain, presented as a headline feature rather than something flagged for the security implications it has. Runtime dependencies (BBDown, etc.) are pinned in a separate `runtime-deps.json` manifest outside the normal pnpm lockfile, so a `pnpm install` alone silently gives you a broken app — an easy trap for anyone not following the Taskfile religiously. No coverage numbers, benchmarks, or CI badge are visible in the README, so there's no way to gauge how well the m3u8/parser layer actually holds up against real-world stream quirks from outside the code.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →