What does ViralMint wrap that yt-dlp + FFmpeg + Whisper don't do alone?
Each underlying tool is best-in-class but requires careful orchestration: yt-dlp's format selection / cookie handling / browser impersonation; FFmpeg's argv construction for video stitching + caption burn-in + audio mixing; Whisper's word-timestamp JSON alignment with subtitle timing. ViralMint wires them together as a single Python pipeline with sane defaults, a desktop UI, a REST API at /api/*, and an MCP server at /mcp — so you don't reimplement the orchestration in every project.
Is ViralMint open source?
Yes — AGPL-3.0. Source at github.com/openclaw-easy/ViralMint. The license requires that derivative network services release their source; for desktop forks the obligation is the standard GPL-style copyleft. Commercial use is allowed under AGPL terms.
Can I script ViralMint from Python or shell?
Yes via two paths. (1) The desktop ships a REST API at http://127.0.0.1:16888/api/* — call any endpoint with curl / requests / fetch. (2) The MCP server at /mcp exposes 136 tools to MCP-aware clients (Claude Code, Claude Desktop, Cursor) for natural-language driving. For shell scripts, the REST path is usually cleanest.
Does ViralMint handle yt-dlp's edge cases (PoT, sig fixes, bot detection)?
Yes — the download wrapper handles YouTube's PO Token / missing-PoT fallbacks, curl-cffi browser-impersonation headers for sites with bot detection, cookie extraction from your browser for age-gated / private content, and Playwright-driven manifest capture as a last-resort fallback when yt-dlp's direct extractor fails. Updates to yt-dlp's master ship within ViralMint's release cycle.
What FFmpeg operations are bundled?
Clip stitching, audio mixing (amix with ducking), ASS subtitle burn-in (word-by-word from Whisper word-timestamps), watermark overlay, 16:9 → 9:16 reframe with face-tracking via MediaPipe, EBU R128 audio loudness normalization, silence removal (Whisper-detected + FFmpeg cut), speed change with pitch preservation, multi-aspect export (9:16 + 1:1 + 16:9 zip bundle). All accessible via REST or MCP.
Can I run just the API without the desktop UI?
Technically yes — the FastAPI backend at backend/main.py runs standalone via python run.py. The packaged desktop bundle includes a pystray tray launcher; in dev mode you can skip the launcher and run the FastAPI server directly. The frontend (Vite/React UI) is optional; the API is fully usable without it.