A modern, user-friendly web interface for downloading videos and audio from various platforms using yt-dlp.
Features • Installation • Usage • Docker • Contributing
- 🎯 Simple Interface: Clean, modern design with dark glass theme
- 🎬 Multiple Formats: Download as MP4 (video) or MP3 (audio)
- 📥 Batch Downloads: Process multiple URLs simultaneously
- 📊 Progress Tracking: Real-time progress bars and status updates
- 🎨 Metadata Support: Include video metadata, thumbnails, and comments
- 🌐 Platform Support: Works with YouTube and many other platforms
- 📱 Responsive Design: Fully functional on mobile devices
- 🐳 Docker Support: Easy deployment with Docker
# Clone the repository
git clone https://github.com/developedbyalex/basicYTDLGUI.git
# Navigate to project directory
cd basicYTDLGUI
# Install dependencies
npm install
# Start the server
npm start
Then open http://localhost:3000 in your browser.
# Pull the official image
docker pull ghcr.io/developedbyalex/basicytdlgui:latest
# Run the container
docker run -d \
--name basicytdlgui \
-p 3000:3000 \
-v $(pwd)/downloads:/usr/src/app/downloads \
ghcr.io/developedbyalex/basicytdlgui:latest
Create a docker-compose.yml
file:
version: '3.8'
services:
app:
image: ghcr.io/developedbyalex/basicytdlgui:latest
ports:
- "3000:3000"
volumes:
- ./downloads:/usr/src/app/downloads
restart: unless-stopped
Then run:
# Build and start containers
docker-compose up -d
# View logs
docker-compose logs -f
# Stop containers
docker-compose down
Build from source if you want to customize the image:
# Build the image
docker build -t basicytdlgui .
# Run the container
docker run -d \
--name basicytdlgui \
-p 3000:3000 \
-v $(pwd)/downloads:/usr/src/app/downloads \
basicytdlgui
- The downloads directory is persisted through a volume mount
- Access the web interface at http://localhost:3000
- Use
docker logs -f basicytdlgui
to view real-time logs - Use
docker stats basicytdlgui
to monitor container resources - Set custom port:
-p 8080:3000
(access on port 8080) - Set custom download directory:
-v /path/to/downloads:/usr/src/app/downloads
- Enter one or more video URLs (one per line)
- Choose your preferred format (MP4/MP3)
- Configure download options:
- Use video's title as filename
- Include metadata (thumbnails, description)
- Include comments
- Click Download and monitor progress
Variable | Description | Default |
---|---|---|
PORT |
Server port | 3000 |
DOWNLOAD_DIR |
Download directory | ./downloads |
To download from Instagram:
- Install "Get cookies.txt" extension
- Log into Instagram
- Export cookies to
cookies.txt
- Place in project root
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to your branch
- Open a pull request
Please ensure your PR adheres to the following:
- Follow existing code style
- Add tests if applicable
- Update documentation as needed
This project is licensed under the MIT License - see the LICENSE file for details.
- yt-dlp for the amazing downloader
- Express.js for the web framework
- All our contributors
Made with ❤️ by developedbyalex
⭐ Star us on GitHub — it motivates us a lot!