A simple webapp that uses yt-dlp to download youtube videos

Welcome to Youtube Downloader ?

A simple webapp that uses yt-dlp to download youtube videos. This application is designed for personal backups or anything that falls under fair use! Do not use this to download anything that might infinge on copyrights.

Demo

Quickstart via docker

docker run -p 8080:8080 derockdev/youtubedownloader

And your done! You can view the site at http://127.0.0.1:8080

Install

# Clone this repo
git clone https://github.com/ItzDerock/youtube-downloader-website

# Go inside the files
cd youtube-downloader-website

# Install dependencies
npm install

Development Usage

npm run dev

Build for production

# Build
npm run build

# Run prod code
npm run start

Configuration

The application can be configured using environment variables.

The backend environment variables can be set at runtime (in docker, with -e KEY=VALUE) or by editing ./backend/.env.

Key Description Default
PORT The port to listen on. 8080
HOST The IP to listen on. 0.0.0.0
FRONTEND_PATH The location of the frontend files. (relative to backend) ../frontend/build
LOG_LEVEL The level to log. info (prod) or debug (dev)
NO_LOGS Disables saving logs to file. false
MAX_DOWNLOAD_LENGTH Max video length. (-1 to disable) -1
TEMP_DIR Where temporary files will be stored. os.tmpdir()

For frontend, there are two env files.

  • ./frontend/.env is global (dev and prod)
  • ./frontend/.env.local is for development only Upon changing, you will need to rebuild the frontend.
Key Description Default (dev) Default (prod)
REACT_APP_API_URL API URL. Set to nothing for same location as where the frontend is served. http://localhost:8080 nothing

Author

? Derock

? Contributing

Contributions, issues and feature requests are welcome!Feel free to check issues page.

Show your support

Give a ⭐️ if this project helped you!


GitHub

View Github