DEV Community

john jewski
john jewski

Posted on

I Built a Free Video Downloader With Node.js - Here's How

I recently built dltkk.to - a free browser-based
video downloader for TikTok, YouTube and Instagram.

Here's the tech stack and what I learned building it.

What it does

  • Downloads TikTok videos without watermark
  • Converts YouTube videos to MP3
  • Saves Instagram Reels
  • Browser based (no app installation)
  • Completely free

Tech Stack

Backend: Node.js + Express
Video Processing: Custom built processing engine
Server: Linux VPS
Frontend: HTML, CSS, Tailwind

How it works

User pastes a TikTok/YouTube/Instagram URL into
the input box. The Node.js backend receives the
URL, validates the platform, then passes it to
my custom video processing engine.

The processing engine handles each platform
differently. For TikTok it strips the watermark
during the download process. For YouTube it
extracts and converts the audio stream to MP3.

Files are temporarily stored on the server and
automatically deleted after 2 minutes to save
storage space.

Building the Processing Engine

This was the hardest part of the project.
Each platform has different:

  • URL structures
  • Authentication requirements
  • Video stream formats
  • Rate limiting behavior

Had to reverse engineer how each platform
serves video content and build handlers
for each one separately.

What I learned

  1. Always validate URLs server side not just client
  2. Set timeouts on downloads (5 min max)
  3. Auto delete temp files (learned this the hard way)
  4. Each platform needs completely different handling logic
  5. User agent spoofing is necessary to avoid being blocked

The YouTube Problem

YouTube was by far the hardest platform.
They actively fight against third party
downloading tools. Had to build in:

  • Format selection logic
  • Video and audio stream merging
  • Age restriction handling
  • Rate limit detection and backoff

Try it

Check it out at dltkk.to

Feedback welcome especially on the Node.js
backend architecture!

Top comments (0)