Repository navigation
The first public release of YTConvert, a self-hosted media conversion application built with FastAPI, yt-dlp, and FFmpeg.
YTConvert provides a web interface for analyzing supported YouTube video sources, discovering available formats, and converting authorized media into video and audio files.
Features
Media Analysis
- Analyze supported YouTube video URLs.
- Retrieve video metadata and available source formats using yt-dlp.
- Display video and audio stream information, including codecs, resolutions, bitrates, and file sizes when available.
- Cache successful analysis results to reduce repeated extraction requests.
Media Conversion
- Support MP4 and WebM video output.
- Support MP3, M4A, and Opus audio output.
- Detect available FFmpeg encoders and report supported output formats.
- Process conversion jobs through a separate worker process.
- Provide job status, progress updates, cancellation, and completed-file downloads.
Web Interface
- Responsive browser-based interface.
- Source analysis and output format selection.
- Real-time job progress using Server-Sent Events (SSE).
- Confirmation of media processing rights before job creation.
API
- REST API built with FastAPI.
- Health and application status endpoints.
- Media analysis and format discovery endpoints.
- Persistent job records and session-scoped job access.
- Structured JSON error responses and request IDs.
Security and Operational Controls
- Host validation and configurable inbound IP blocking.
- Request rate limiting and bounded concurrent analysis.
- Security headers and Content Security Policy (CSP).
- HTTP-only, SameSite session cookies.
- Restricted media output paths and download ownership checks.
- Worker readiness checks, resource limits, and execution timeouts.
- Media conversion worker disabled by default.
Deployment
YTConvert is designed for self-hosted deployment using Python, Uvicorn, and an HTTPS reverse proxy such as Nginx.
Media conversion requires compatible FFmpeg and ffprobe binaries with the necessary encoders.
The conversion worker must be explicitly enabled after verifying the runtime environment and security requirements.
Security Notice
YTConvert is intended for processing media that users are authorized to download or convert.
Application-level URL validation does not provide complete protection against SSRF, DNS rebinding, or redirect-based attacks. The initial release does not implement outbound network isolation.
The media worker inherits the API process identity. Deployments running as root require particular caution because worker resource limits do not provide a privilege boundary.
Review the deployment and architecture documentation before enabling media processing.
Release Information
- Version: v0.1.0
- Release type: Initial public release
- Backend: FastAPI
- Media extraction: yt-dlp
- Media processing: FFmpeg / ffprobe
- License: Not specified
Documentation
YTConvert v0.1.0 establishes the initial public codebase for self-hosted media analysis, format discovery, and controlled media conversion.