Vodarr is a modern, high-performance IPTV VOD downloader designed for the automation era. It transforms your IPTV provider's catalog into a clean, searchable interface with advanced queue management and full media server compatibility.
- Priority Preemption: Reorder your queue via drag-and-drop to immediately pause the current download and start your new top priority.
- Active Stream Monitoring: Automatically pauses downloads if your IPTV account's active connection limit is reached, resuming only when a stream becomes free.
- Smart Resume: Automatically detects and resumes from existing
.partfiles using HTTP Range headers—never lose progress on a backend restart. - Concurrent Discovery: Proactively performs
HEADrequests to streams to discover file sizes and metadata before you even click download. - Full-Queue Auto-Retry: Automatically restarts all failed items once the queue is exhausted, up to a configurable limit.
- Radarr Compatible: Automatically organizes movies into
Movies/Title (Year)/Title (Year).ext. - Sonarr Compatible: Handles series with precision:
TV/Series Title/Season XX/Series Title - SxxExx - Episode Title.ext. - Naming Standards: Uses industry-standard sanitization and naming patterns for perfect importing into Plex, Emby, or Jellyfin.
- Admin Authentication: Secure login with bcrypt-hashed passwords and JWT (JSON Web Tokens).
- Local Network Bypass: Option to disable login for local addresses (LAN), ensuring a smooth experience at home while keeping external access secured.
- REST API Access: Full automation support with rotatable API Keys. Use the
X-Api-Keyheader to interact with every feature programmatically.
- Two-State Management: Switch between a discreet footer monitor and a full-screen, maximized management dashboard.
- Live Metrics: Monitor individual speeds, global bandwidth usage, and accurate ETAs based on remaining bytes.
- Bulk Operations: One-click controls to Start, Pause, Stop, Retry Failures, Prune Completed, or Wipe the entire queue.
- Frontend: React 18, TypeScript, TailwindCSS, Lucide Icons.
- Backend: Python 3.11, FastAPI, Uvicorn.
- Storage: SQLite 3 with
sqlite3driver. - Deployment: Docker (Multi-stage build), GitOps/ArgoCD ready.
services:
vodarr:
image: ghcr.io/acidcool/vodarr:latest
container_name: vodarr
ports:
- "6767:6767"
volumes:
- ./config:/config
- /your/media/path:/downloads
environment:
- TZ=Europe/Amsterdam
- IPTV_ADMIN_USER=admin
- IPTV_ADMIN_PASS=yourpassword
- IPTV_DEBUG=false
restart: unless-stopped| Variable | Default | Description |
|---|---|---|
IPTV_ADMIN_USER |
admin |
Initial administrative username. |
IPTV_ADMIN_PASS |
(None) | Initial administrative password. |
IPTV_AUTH_BYPASS_LOCAL |
true |
Skip authentication for LAN requests. |
IPTV_DEBUG |
false |
Enable verbose logging to stdout. |
IPTV_CHECK_STREAM_LIMIT |
true |
Pause downloads if active streams are full. |
IPTV_STREAM_LIMIT_INTERVAL |
60 |
Seconds to wait before re-checking stream limit. |
IPTV_QUEUE_RETRY_LIMIT |
10 |
Times to retry the full queue after exhaustion. |
IPTV_MAX_RETRIES |
3 |
Max retries per individual download item. |
IPTV_CONNECT_TIMEOUT |
5 |
Seconds to wait for server connection. |
IPTV_READ_TIMEOUT |
10 |
Seconds to wait for stream data chunks. |
IPTV_ENABLE_WINDOW |
false |
Enable/Disable the download time window. |
IPTV_MEDIA_MANAGEMENT |
false |
Enable Radarr/Sonarr folder structures. |
We welcome contributions! Please see our CONTRIBUTING.md for guidelines on how to submit pull requests and report bugs.
Distributed under the MIT License. See LICENSE for more information.
Disclaimer: This tool is for personal educational use only. Users are responsible for ensuring they have the rights to download any content retrieved via this application.