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.