About this project

Grabbly is a portfolio demo project built to showcase a full-stack real-time web app — it is not a commercial product or service.

What it does

Fetches metadata for a YouTube video or playlist, then converts and downloads it as video or audio in the chosen format/quality. Job progress streams live to the browser over WebSockets.

Tech stack

  • Backend: Node.js, Express 5
  • Real-time updates: Socket.IO
  • Media extraction/conversion: yt-dlp, ffmpeg (static binary)
  • Frontend: plain HTML/CSS/JavaScript, no framework
  • Deployment: Docker container managed by Coolify on a self-hosted VPS, behind Traefik as reverse proxy/TLS

Notes

  • Deployed with a small, capped memory footprint (128MB) — this is a demo, not a production-scale service.
  • Only download content you have the rights to use, and respect YouTube's Terms of Service.

← Back to the app