yt-dlp-Manager Svelte Themes

Yt Dlp Manager

yt-dlp Manager is a feature-rich download manager for the yt-dlp engine, supporting thousands of websites and offering multi-user capabilities.

yt-dlp Manager

Palestine Flag Syria Flag Ukraine Flag

šŸ•Šļø Freedom for Palestine, Ukraine, Syria, and all nations fighting against tyrants šŸ•Šļø

Free Palestine • Free Syria • Peace for Ukraine


yt-dlp Manager Logo

A powerful web-based download manager for YouTube, Vimeo, and thousands of other video sites

Features • Installation • Quick Start • How to Use • Docker • Configuration


✨ Features

  • šŸ‘„ Multi-User Support - Create accounts for family or team members with isolated data folders
  • šŸ“ Organized Downloads - Organize downloads by folders with custom configurations
  • šŸ“… Scheduled Downloads - Set up automatic download schedules using cron expressions
  • šŸ”“ Real-time Progress - Watch download progress live in your browser via SSE streaming
  • šŸ”„ Automatic Retries - Handles connection issues gracefully
  • šŸ“ Subtitle Support - Download subtitles in multiple languages
  • šŸ“ø Metadata - Saves video info, thumbnails, and descriptions
  • šŸŖ Cookie Support - Upload cookies for restricted content
  • šŸ”— Deduplication - Global storage with symlinks to avoid re-downloading
  • āš™ļø Server Manager - Admin panel for system status, user management, and logs

šŸ“¦ Installation

Docker Compose

services:
  yt-dlp-manager:
    image: mbnoimi/yt-dlp-manager:latest
    container_name: yt-dlp-manager
    ports:
      - "4000:4000"
    volumes:
      - ./data:/app/data
      - ./logs:/app/backend/logs
    environment:
      - BACKEND_SECRET_KEY=your-secret-key-change-in-production
      - ADMIN_USERNAME=admin
      - ADMIN_PASSWORD=pass
    restart: unless-stopped

Then

docker-compose up -d

Direct Command

docker run -d \
  --name yt-dlp-manager \
  -p 4000:4000 \
  -v $(pwd)/data:/app/data \
  -v $(pwd)/logs:/app/backend/logs \
  -e BACKEND_SECRET_KEY=your-secret-key-change-in-production \
  -e ADMIN_USERNAME=admin \
  -e ADMIN_PASSWORD=pass \
  --restart unless-stopped \
  mbnoimi/yt-dlp-manager:latest

The image is automatically pulled from Docker Hub.


šŸš€ Quick Start

  1. Open http://localhost:4000
  2. Login with default credentials:
    • Username: admin
    • Password: pass
  3. Create a datasource and start downloading!

šŸ“– How to Use

1. Create a Datasource

A datasource combines your download settings with the URLs you want to download.

  1. Click + New in the Datasources section
  2. Enter a name (e.g., "YouTube Music")

2. Add URLs

In the URLs tab:

  • Add YouTube channels, playlists, or single videos
  • Organize into folders

3. Configure Options

In the Config tab:

  • Choose video quality (720p, 1080p, 4K, etc.)
  • Set output filename format
  • Enable subtitles
  • Add cookies for restricted content

4. Download

Click the Download button and watch progress in real-time!

5. Manage Files

Browse, rename, or delete downloaded files in the Files tab.


šŸŖ Cookies

Some videos require YouTube login. To download them:

  1. Export cookies from your browser (use a "Get cookies.txt" browser extension)
  2. In your datasource, click the gear icon → Upload cookies
  3. Save your config

šŸ“… Scheduler

Schedule downloads to run automatically:

  1. Go to the Scheduler tab
  2. Create a new task
  3. Set when to run (e.g., 0 2 * * * = every day at 2 AM)
  4. Choose which datasource to download

Cron Examples

Expression Description
0 2 * * * Every day at 2 AM
0 9 * * 0 Every Sunday at 9 AM
0 */6 * * * Every 6 hours

šŸ–„ļø Admin

The admin can:

  • Create and manage user accounts
  • View all downloads across users
  • Monitor server status (CPU, memory, disk)
  • Upgrade yt-dlp to latest version
  • Configure server settings
  • Browse server files
  • View backend logs

🐳 Docker

Quick Start

# Pull and run from Docker Hub
docker-compose up -d

The application is available at http://localhost:4000

Image

Environment Variables

Variable Default Description
BACKEND_SECRET_KEY - JWT signing key
ADMIN_USERNAME admin Default admin username
ADMIN_PASSWORD pass Default admin password
BACKEND_MAX_CONCURRENT_DOWNLOADS 3 Max parallel downloads
BACKEND_DEDUPLICATION_ENABLED true Enable deduplication
ALLOW_NEW_USERS false Allow user registration

šŸ› ļø Technology Stack

Backend

  • Framework: FastAPI - Modern Python web framework
  • Database: SQLite with SQLAlchemy ORM
  • Download Engine: yt-dlp - YouTube downloader
  • Auth: JWT-based multi-user authentication
  • Server: Uvicorn ASGI server

Frontend

  • Framework: Svelte 5 - Cybernetically enhanced web apps
  • Build Tool: Vite - Next generation frontend tooling
  • Styling: Tailwind CSS 4 - Utility-first CSS
  • UI Components: Skeleton UI - Svelte component library

šŸ“‚ Project Structure

yt-dlp Manager/
ā”œā”€ā”€ src/
│   ā”œā”€ā”€ backend/              # FastAPI application
│   │   ā”œā”€ā”€ api/v1/          # API endpoints
│   │   ā”œā”€ā”€ core/            # Config, security, deps
│   │   ā”œā”€ā”€ db/              # Database models & sync
│   │   ā”œā”€ā”€ services/        # Downloader, scheduler
│   │   └── main.py          # Entry point
│   │
│   ā”œā”€ā”€ frontend/             # Svelte SPA
│   │   ā”œā”€ā”€ src/
│   │   │   ā”œā”€ā”€ lib/         # Components, pages, stores
│   │   │   ā”œā”€ā”€ App.svelte   # Root component
│   │   │   └── main.ts      # Entry point
│   │   └── package.json
│   │
│   └── data/                # User data
│       └── <username>/
│           ā”œā”€ā”€ downloads/   # Downloaded files
│           ā”œā”€ā”€ configs/     # Config JSON files
│           └── urls/       # URL JSON files
│
ā”œā”€ā”€ docker-compose.yml        # Docker deployment
└── .env                    # Configuration

šŸ¤ Contributing

We welcome contributions! Here's how you can help:

  1. Fork the repository
  2. Create a new branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Run tests
  5. Commit your changes
  6. Push to the branch
  7. Open a Pull Request

šŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


šŸ™ Acknowledgments

  • yt-dlp - The amazing download engine
  • FastAPI - The powerful Python framework
  • Svelte - The wonderful UI framework
  • Skeleton UI - Beautiful Svelte components
  • All contributors who help improve this project

Made with ā¤ļø by a Syrian developer who believes in freedom for Palestine, Ukraine, Syria, and any nation standing against tyrants

⭐ Star this repo if you find it useful!

Top categories

Loading Svelte Themes