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 startThen 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:latestCreate 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-stoppedThen run:
# Build and start containers
docker-compose up -d
# View logs
docker-compose logs -f
# Stop containers
docker-compose downBuild 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 basicytdlguito view real-time logs - Use
docker stats basicytdlguito 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!
