This is an automated archive made by the Lemmit Bot.

The original was posted on /r/selfhosted by /u/FrankMagecaster on 2023-11-04 03:48:52.


Hey all, it has been almost a year since I last posted about ytdl-sub. For folks who are new, ytdl-sub is a command-line tool that uses yt-dlp to download and format media for any self-hosted use case. It uses YAML files to build configs and subscriptions. Three main uses cases are:

  • Channels/playlists/etc as TV Shows
  • with Plex, Jellyfin, Emby, Kodi support
  • Music (YouTube, SoundCloud, Bandcamp)
  • with tag-support for Navidrome/Gonic/etc usage
  • Music Videos

When I last posted, ytdl-sub’s learning curve was quite high. We’ve been focusing on adding things to make it easier for users to start downloading hassle-free.

A few features I want to highlight are:

Usability:

  • ytdl-sub can now be used in-browser using the ytdl-sub-gui Docker image
  • This image runs VS-Code in browser with ytdl-sub preinstalled for users to edit subscriptions and run ytdl-sub from the terminal
  • Portable downloads for Linux, ARM, Windows, Pip. Docker is not required

Ease-of-use:

  • We’ve built many presets for many use-cases into the app, which means little-to-no configuring is required to start downloading and watching/listening asap
  • Simplified subscription syntax to express downloads much easier

And now, for a quick demo. To download and only keep the last two months of Linus Tech Tips videos, and the entirety of my toddler’s favorite train channel for Plex, all you need is this file:


subscriptions.yaml
==================

global overrides for all subscriptions
======================================

**preset**:
 overrides:
 tv\_show\_directory: "/tv\_shows"
 date\_range: "2months"

All subs under this use the `Plex TV Show by Date` preset
=========================================================

Plex TV Show by Date:

# Sets genre and rating to "Kids" and "TV-Y"
 = Kids | = TV-Y:
 "Jake Trains": "

# Uses `Only Recent` preset to keep 2months worth
 Only Recent | = Tech | = TV-14:
 "Linus Tech Tips": ""

And the command: ytdl-sub sub subscriptions.yaml

That’s it! Successive downloads will start right where you left off. Will take a while to download, but that’s the nature of scraping with yt-dlp. Any part of the download/naming/formatting process is configurable, but will require some reading in our extensive documentation.

We support all popular players, scraping music with proper tagging, music videos, and more! Check out our repo for more info:

Thanks for reading, hope you find it as useful as I do!