ydl_api_ng

ydl_api_ng

HTTP API wrapper for yt-dlp to manage downloads and scheduling

226stars
26forks
Last commit: 6d ago
Repo age: 4y old

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:

Share:

Similar Services

Syncthing

Syncthing

Open-source, peer-to-peer file synchronization tool.

79.1k
4.9k
Last commit: 2d ago

Open-source peer-to-peer file synchronization with TLS encryption, no central server, and a browser-based UI.

Alternative to:
Resilio Sync
Resilio Sync
+6
LocalSend

LocalSend

Open-source cross-platform local network file sharing app

73.3k
3.9k
Last commit: 4d ago

LocalSend is a free, open-source app for fast, encrypted file and text sharing between nearby devices over a local network, available on desktop and mobile.

Alternative to:
Apple AirDrop
Apple AirDrop
+6
AList

AList

Multi-storage file listing server with WebDAV and previews

48.8k
8k
Last commit: 26d ago

AList is a multi-storage file listing and sharing server with WebDAV access, file previews, protected routes, uploads, and cross-storage file operations.

Alternative to:
Dropbox
Dropbox
+19
copyparty

copyparty

Portable file server with fast resumable uploads and many protocols

41k
1.7k
Last commit: 19h ago

Copyparty is a portable file server with a web UI, accelerated resumable uploads, deduplication, indexing, and support for WebDAV, SFTP, FTP and more.

Alternative to:
WeTransfer
WeTransfer
+19
qBittorrent

qBittorrent

Cross-platform BitTorrent client built with Qt and libtorrent

35k
4.5k
Last commit: 21h ago

qBittorrent is a fast, free, cross-platform BitTorrent client with a desktop UI and optional Web UI, built on libtorrent for efficient torrent downloading and seeding.

Alternative to:
BitTorrent
BitTorrent
+2
Nextcloud

Nextcloud

Open-source collaboration platform for file sync and groupware

33.8k
4.7k
Last commit: 16h ago

Nextcloud is an open-source content collaboration platform providing file sync & share, groupware (calendar, contacts, mail), real-time office editing, chat and video con...

Alternative to:
Google Drive
Google Drive
+19