mirror of
https://github.com/xpltdco/media-rip.git
synced 2026-06-02 09:54:29 -06:00
Create Home wiki page for media-rip
commit
7f897b6e26
1 changed files with 73 additions and 0 deletions
73
Home.md
Normal file
73
Home.md
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
# 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](Architecture) | System design, data flow, SSE broker, design decisions |
|
||||
| [Getting Started](Getting-Started) | Docker quick start, local dev setup |
|
||||
| [Data Model](Data-Model) | SQLite schema, session management |
|
||||
| [API Reference](API-Reference) | Complete REST + SSE endpoint inventory |
|
||||
| [Deployment](Deployment) | Docker, Caddy, volumes, health checks |
|
||||
| [Configuration](Configuration) | All environment variables and YAML config |
|
||||
| [Development Guide](Development-Guide) | Code patterns, testing, CI/CD |
|
||||
| [Agent Context](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
|
||||
Loading…
Add table
Reference in a new issue