mirror of
https://github.com/xpltdco/media-rip.git
synced 2026-04-02 18:43:59 -06:00
Full-featured self-hosted yt-dlp web frontend:
- Python 3.12+ / FastAPI backend with async SQLite, SSE transport, session isolation
- Vue 3 / TypeScript / Pinia frontend with real-time progress, theme picker
- 3 built-in themes (cyberpunk/dark/light) + drop-in custom theme system
- Admin auth (bcrypt), purge system, cookie upload, file serving
- Docker multi-stage build, GitHub Actions CI/CD
- 179 backend tests, 29 frontend tests (208 total)
Slices: S01 (Foundation), S02 (SSE+Sessions), S03 (Frontend),
S04 (Admin+Auth), S05 (Themes), S06 (Docker+CI)
41 lines
920 B
TOML
41 lines
920 B
TOML
[build-system]
|
|
requires = ["setuptools>=68.0", "wheel"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "media-rip"
|
|
version = "0.1.0"
|
|
description = "media.rip() — self-hosted media downloader"
|
|
requires-python = ">=3.12"
|
|
dependencies = [
|
|
"fastapi==0.135.1",
|
|
"uvicorn[standard]==0.42.0",
|
|
"yt-dlp==2026.3.17",
|
|
"aiosqlite==0.22.1",
|
|
"apscheduler==3.11.2",
|
|
"pydantic==2.12.5",
|
|
"pydantic-settings[yaml]==2.13.1",
|
|
"sse-starlette==3.3.3",
|
|
"bcrypt==5.0.0",
|
|
"python-multipart==0.0.22",
|
|
"PyYAML==6.0.2",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
dev = [
|
|
"httpx==0.28.1",
|
|
"pytest==9.0.2",
|
|
"anyio[trio]",
|
|
"pytest-asyncio",
|
|
"ruff",
|
|
]
|
|
|
|
[tool.pytest.ini_options]
|
|
asyncio_mode = "auto"
|
|
markers = [
|
|
"slow: marks tests as slow (network-dependent)",
|
|
"integration: marks tests requiring external services (network, yt-dlp)",
|
|
]
|
|
|
|
[tool.ruff]
|
|
target-version = "py312"
|