Skip to content

Repository files navigation

YouTube / Audio Downloader

The download button YouTube never gave you. Paste a link, pick MP3 or MP4, get your file.

Every "free online downloader" is a minefield of fake buttons, popups, and files you didn't ask for. This is the boring alternative: a small web app you run yourself. No ads, no sign-up, no handing your links to a stranger's server.

Under the hood it's yt-dlp — the tool that actually does the work — with a Next.js + shadcn UI on top so you never have to remember a flag.

Formats

  • Audio: MP3, M4A, Opus (best quality), or best audio without conversion
  • Video: MP4 720p or MP4 best quality

Requires ffmpeg for audio conversion (included in Docker image). The app uses Node as the JS runtime for yt-dlp (for full YouTube support).

If YouTube says "Sign in to confirm you're not a bot": use the optional Cookies field. Export cookies from your browser in Netscape format (e.g. with a "Get cookies.txt" extension or see yt-dlp wiki), then paste the contents into the Cookies field and run again.

Run locally

npm install
npm run dev

Requires yt-dlp and ffmpeg on your PATH:

  • macOS: brew install yt-dlp ffmpeg
  • Ubuntu/Debian: sudo apt install ffmpeg and install yt-dlp from releases

Then open http://localhost:3000.

Docker

Build and run (app listens on 3000 inside the container; map to 3080 on host to avoid conflicts):

docker build -t yt-downloader .
docker run -p 3080:3000 yt-downloader

Open http://localhost:3080.

Note: in Docker there is no browser profile, so --cookies-from-browser is skipped automatically. Paste cookies into the Cookies field instead if YouTube asks you to sign in.

See DEPLOY.md for deploying to a server.

Security

This is a single-user, trusted-network tool. The download endpoint has no authentication and no rate limiting: anyone who can reach it can run yt-dlp on the host. Do not expose it to the public internet — keep it on localhost, a private network, or a VPN/tailnet, or put it behind an authenticating reverse proxy.

Credits

Downloading is done entirely by yt-dlp (Unlicense) with ffmpeg for conversion. This project is only a web UI around them and is not affiliated with either.

Respect the terms of service of the sites you download from, and applicable copyright law.

License

MIT — see LICENSE.

About

Grab video or audio from any link. Self-hosted, no ads, no limits.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages