
Social Media Downloader
Single-page YouTube downloader with real server-side extraction via yt-dlp — video, audio, and ZIP bundles.
Description
A single-page media downloader that performs real server-side extraction, not a mockup — paste a public YouTube link and the server runs yt-dlp, parses real metadata, and streams actual file bytes back to the browser as a single file or a ZIP bundle. Supports 360p-1080p MP4, MP3 audio, thumbnails, and subtitles, all anonymous with no login or cookies required. TikTok and Instagram adapters exist in the code but are intentionally disabled, since both platforms block anonymous server-side access. Because it spawns yt-dlp and ffmpeg as child processes, it needs to run on a Node host or VPS with Docker — it does not work on Vercel or Netlify serverless.
What Already Works
What's Included
- Full source code
- Dockerfile and docker-compose for production deployment
- Windows yt-dlp.exe bundled for local development
- TikTok and Instagram adapter modules (present but disabled)
- README and setup guide
- AI-ready docs (PRD, technical spec, deployment, ffmpeg setup)
- Vitest test suite
- InMyDraft Commercial License
How to Run
- Unzip the source and run npm install.
- Copy .env.example to .env.local and set DOWNLOAD_TOKEN_SECRET (generate one with node -e "console.log(require('crypto').randomBytes(32).toString('hex'))").
- Run npm run dev and open http://localhost:3000 — a Windows yt-dlp.exe is already bundled in bin/ for local development.
- For 720p/1080p video or MP3 audio, install ffmpeg and set FFMPEG_BIN in .env.local.
- For production, deploy with Docker: docker compose up -d --build (this auto-installs the Linux yt-dlp and ffmpeg binaries).
Continuation Notes
- YouTube downloads work out of the box with no login or cookies. TikTok and Instagram are code-complete but disabled until cookies are configured.
- Requires a VPS or Docker-capable Node host to actually run downloads — the landing page alone would render on Vercel, but every download would fail there.
Known Limitations
- Cannot deploy to Vercel or Netlify serverless — it spawns yt-dlp and ffmpeg as child processes and streams their output, which serverless runtimes can't support. Needs a VPS or Node host with Docker
- TikTok support is disabled — the platform blocks anonymous server-side access; the adapter exists but needs cookies to re-enable, and stays brittle even then
- Instagram support is disabled — requires cookies from a logged-in burner account to re-enable
- Video above 360p and MP3 audio extraction require ffmpeg — 360p downloads work without it
- No playlists, bulk downloads, or download history — single video per request, by design, with nothing stored server-side
Related Drafts

Design Wearpack
Public workwear design studio with live pricing and an approval flow.

Embroidery | Convert SVG/PNG to DST file
SVG/PNG-to-DST/PES/JEF embroidery digitizer with a live stitch preview.

Convert PNG to PDF
Privacy-first client-side image converter with batch ZIP export.