- Download (HTTP → yt-dlp → fallback) - Upload to Hippius (S3 API) - Metadata schema - Retry + failure handling