ydl_api_ng
HTTP API wrapper for yt-dlp to manage downloads and scheduling
239 stars 27 forks last commit first released GPL-3.0
Actively maintained
Last commit 22 Aug 2026.
ydl_api_ng is a Python-based HTTP API that exposes yt-dlp functionality for automated downloading and processing of online media. It provides preset-driven configurations, a queue system, optional Redis-backed scheduling, and browser integration via a userscript.
Key Features
- REST API to enqueue and manage downloads with preset parameter files
- Full compatibility with yt-dlp options through a flexible parameter system
- Presets and parameter metadata files generated for easy customization
- Queue management with optional Redis backend for worker coordination
- Programmation (scheduling) system for recurring or timed recordings (requires Redis)
- Hooks for progress and postprocessing to run custom Python scripts during downloads
- Docker and docker-compose support plus a systemd service file for non-container deployments
- Browser userscript to trigger downloads from visited pages and integrate presets
- Configurable UID/GID for filesystem permissions and volume mappings for downloads, params and logs
Use Cases
- Archive channels, playlists, or livestreams on a schedule for media preservation
- Provide an internal API for on-demand media downloads and format extraction for other services
- Integrate browser-based download buttons for team members via the provided userscript
Limitations and Considerations
- Scheduling/programmation features require Redis to be enabled; without Redis scheduling is not available
- Precise start times for scheduled jobs have a small known timing drift (about -1 minute tolerance)
- Many postprocessing features depend on external tools (for example, ffmpeg) and a compatible yt-dlp installation
- User management is disabled by default; enabling token-based access requires additional configuration
ydl_api_ng is suited for self-hosted environments where automated, configurable media acquisition is required. It emphasizes scriptable presets, extensibility via hooks, and production-ready deployment options via Docker or systemd.
Categories:
Tags:
Tech Stack:
Similar to ydl_api_ng
Plex Prerolls
Automates scheduling and generation of Plex preroll videos
Manage and schedule Plex pre-roll listings with advanced date/weight rules, path globbing, Docker deployment, and Plex webhook-based auto-generation of prerolls.
YoutubeDL-Material
Material Design web UI for youtube-dl downloads
Self-hosted web interface for managing video/audio downloads using youtube-dl, with a Material Design UI, queue management, and an optional public API.


MeTube
Web GUI for yt-dlp to download videos from YouTube and other sites
A lightweight web interface for yt-dlp (youtube-dl fork) that manages queued downloads, playlists, and filename templates via Docker or local Python/Angular setup.


ChannelTube
Scheduled YouTube channel downloader using yt-dlp
Fetch and synchronize video or audio from YouTube channels on a schedule using yt-dlp. Runs in Docker and can trigger Plex/Jellyfin library scans.
Boxarr
Automated box office tracker that integrates with Radarr
Tracks weekly box office charts and automatically adds trending theatrical releases to Radarr with filters, scheduling, and a web dashboard.

Mainsail
Web interface for controlling Klipper-based 3D printers
Modern, responsive web UI for Klipper via Moonraker to control, monitor, and manage one or multiple 3D printers from any device.




