About this project

ytdl-sub is a command-line tool that automates downloading media through yt-dlp and prepares the resulting files for popular media players and servers, including Kodi, Jellyfin, Plex, Emby and modern music players. According to the README, no additional plugins or external scrapers are required. How it works: subscriptions are defined in YAML files. Each subscription imports presets that describe how media files should be handled and output. The project ships with many prebuilt presets so users can start downloading without building a config from scratch. A single command, `ytdl-sub sub subscriptions.yaml`, processes the file. Typical use cases shown in the README include treating YouTube channels as TV shows, organizing music videos and concerts, and handling SoundCloud or Bandcamp discographies. The README notes that SoundCloud handling writes music tags via the beets API. Output is arranged into directories such as tv_shows, music and music_videos, with generated thumbnails, .nfo metadata files, posters and fanart suitable for media servers. Configuration is flexible: global overrides can be set under a `__preset__` section, and options can be passed directly to yt-dlp's Python API, for example a cookie file. Presets can set genre tags, content ratings, and use an "Only Recent" preset to limit downloads by date range and file count. Custom configs are supported, with a walk-through guide and example configurations linked from the README. Installation options listed include Docker Compose (Web-GUI, headless, CPU/GPU passthrough), Docker CLI, Windows, Unraid, Linux, Linux ARM, PIP, local install and local Docker build. The Web-GUI Docker image is described as combining LinuxServer.io's code-server image with ytdl-sub preinstalled, and is recommended by the README. Community support is available through a Discord channel, GitHub Issues for feature requests and bug reports, and an FAQ in the documentation. The README also links to readthedocs for detailed information on all config fields.