mirror of
https://github.com/xpltdco/media-rip.git
synced 2026-06-02 06:54:29 -06:00
No results
1
Home
xpltd_admin edited this page 2026-04-03 23:03:31 -06:00
media-rip
| Meta | Value |
|---|---|
| Repo | xpltdco/media-rip |
| Page | Home |
| Audience | developers, agents, newcomers |
| Last Updated | 2026-04-04 |
| Status | current |
What is media-rip?
media-rip is a self-hosted media downloader with a web UI. It wraps yt-dlp to provide a clean, themeable browser interface for downloading video and audio from YouTube, SoundCloud, and hundreds of other platforms. It features per-session download isolation, real-time progress via Server-Sent Events, an admin panel, automatic cleanup, and a custom theme system.
Current Status
Actively developed. Published as multi-arch Docker images (amd64 + arm64) on GitHub Container Registry. Features are production-ready with comprehensive test coverage and CI/CD.
Key URLs
| Resource | URL |
|---|---|
| Application | https://mediarip.xpltd.co |
| Repository | https://git.xpltd.co/xpltdco/media-rip |
| Container Image | ghcr.io/xpltdco/media-rip:latest |
| Health Check | https://mediarip.xpltd.co/api/health |
Core Features
- Web UI — Clean Vue 3 interface for submitting URLs and monitoring downloads
- Format Selection — Browse available formats (video resolutions, audio codecs) before downloading
- Playlist Support — Automatically splits playlists into individual download jobs
- Real-Time Progress — SSE-based live progress (percentage, speed, ETA) in the browser
- Session Isolation — Three modes: isolated (per-browser), shared (all users), open (single session)
- 9 Built-in Themes — Cyberpunk, dark, midnight, hacker, neon, light, paper, arctic, solarized
- Custom Themes — Mount your own CSS themes via
/themesvolume - Admin Panel — Password-protected settings management, storage stats, error logs
- Auto-Purge — Scheduled cleanup of old downloads with configurable retention
- Privacy Mode — Aggressive cleanup of downloads and logs
- API Keys — Optional key-based authentication for non-browser access
- Cookie Support — Upload cookies.txt for authenticated downloads (per-session)
Tech Stack
| Component | Technology |
|---|---|
| Backend | Python 3.12, FastAPI, Uvicorn |
| Frontend | Vue 3, TypeScript, Pinia, Vite |
| Database | SQLite (async via aiosqlite) |
| Downloader | yt-dlp + ffmpeg |
| Real-time | Server-Sent Events (SSE) |
| Testing | pytest (backend), Vitest (frontend) |
| Deployment | Docker (multi-arch), Caddy (optional TLS) |
Wiki Pages
| Page | Description |
|---|---|
| Architecture | System design, data flow, SSE broker, design decisions |
| Getting Started | Docker quick start, local dev setup |
| Data Model | SQLite schema, session management |
| API Reference | Complete REST + SSE endpoint inventory |
| Deployment | Docker, Caddy, volumes, health checks |
| Configuration | All environment variables and YAML config |
| Development Guide | Code patterns, testing, CI/CD |
| Agent Context | Structured metadata for LLM agents |
Infrastructure Context
- ub01 (10.0.0.10) — Server running all Docker services
- nginx01 (10.0.0.9) — Reverse proxy with TLS for
*.xpltd.co - AdGuard Home — Internal DNS rewriting to nginx01
- Cloudflare — External DNS