Download YouTube-feeds as if they are podcasts.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
tastytea 4462676df1 Remove empty directories. 3 weeks ago
LICENSE Add license. 1 month ago
README.adoc Clarify max_videos description. 1 month ago
download-yt-feeds Remove empty directories. 3 weeks ago

README.adoc

download-yt-feeds

Download YouTube-feeds as if they are podcasts. Files will be put in <download_dir>/uploader/title.extension.

This should work for all sites youtube-dl supports, but I only tested YouTube.

Features

  • Downloads newest videos from a list of channels.

  • Creates playlist with newest videos.

  • Deletes old videos.

  • Passes extra arguments to youtube-dl.

Install

Put download-yt-feeds somewhere in your ${PATH} and make it executable.

Dependencies

  • Linux (*BSD and other UNIXes should work, but I haven’t tested)

  • Zsh

  • youtube-dl

Configuration

The configuration directory is ${XDG_CONFIG_HOME}/download-yt-feeds or, if ${XDG_CONFIG_HOME} is not set, ${HOME}/.config/download-yt-feeds. You need 2 files in this directory, config and feedlist.

config

Example configuration file
# This file will be source-d.
download_dir="/home/user/Podcasts/youtube"
keep_for_days="14"
ytdl_format="bestvideo[height<=1080]+bestaudio/best[height<=1080]"
max_videos="10"
ytdl_extra_args="--quiet"

download_dir

The directory to which the videos will be downloaded.

keep_for_days

Download only videos newer than this many days and delete older videos.

ytdl_format

Same syntax as youtube-dl --format. Default is "best".

max_videos

Maximum number of videos to consider per feed. Default is to consider all.

ytdl_extra_args

Extra arguments for youtube-dl. Optional.

Warning
All old files in download_dir will be deleted. Don’t put other files in the same directory!

feedlist

A "feed" in this context is a URL to a page that lists YouTube-videos, not an RSS or Atom feed.

Example feed list
# Everything that doesn't start with "http" will be skipped.
https://www.youtube.com/channel/UCyczvB_IvA7V1a5BXXu3CRg/videos # Karakaya Talks
https://www.youtube.com/user/lefticus1/videos # C++ Weekly