yt-dlp powered • Local storage • No database

Turn AutoCaptions into AnyDownload.

AnyDownload reframes the project around a broader download workflow: inspect a YouTube URL, return available media options, and let users fetch MP4, MP3, subtitles, captions, transcripts, or thumbnails without introducing a database layer.

Workflow

The download flow starts with metadata, then streams the selected asset.

Your requested product flow is now the homepage story: users submit a YouTube URL, the API inspects formats with yt-dlp, and the UI renders explicit download actions instead of assuming captions are the only output.

1 · Inspect URL

User enters a YouTube URL.

Frontend sends a POST request to /api/download with the target URL.

2 · Read metadata

API asks yt-dlp for the JSON manifest.

Return title, duration, thumbnail, subtitle languages, and downloadable formats before any heavy transfer begins.

3 · Choose output

User selects MP4, MP3, subtitle, caption, transcript, or thumbnail.

Frontend can render clear actions such as Download 720p, Download MP3, Get subtitles, or Save thumbnail.

4 · Stream to browser

API streams the chosen file back directly.

Prefer download → stream → save. Avoid download → persist → resend when running on a serverless host.

Feature direction

One project, multiple output types.

Instead of staying limited to auto captions, the project now positions YouTube as the main entry point for multiple output types while keeping the experience simple enough for static marketing pages and future API integration.

✅ Open source and ready for incremental backend work

Planned outputs

  • MP4 video downloads
  • MP3 or extracted audio downloads
  • Subtitle and caption track downloads
  • Transcript export and thumbnail saving

Technical notes

Designed around Vercel-style limits and local-first storage.

The current concept explicitly calls out serverless constraints: large downloads may exceed execution limits, streaming is safer than saving to disk, and the eventual backend should rely on a bundled yt-dlp strategy rather than assuming Python is available.