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 /themes volume
  • 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