Download new videos from YouTube channels with youtube-dl

7696071 Batch up calls to downloader

3 months ago

8408ae2 Add support for writing state file

4 months ago


spektilo is a utility for downloading new videos from YouTube channels with youtube-dl.


Install by running cargo install --path . from a source checkout. The project will be uploaded to crates.io when it is ready for a release. As well as the Rust dependencies handled by Cargo, you will need to have youtube-dl installed and available on your $PATH.


You will need to set up a configuration file. By default this is located at $XDG_CONFIG_DIR/spektilo.toml (usually $HOME/.config/spektilo.toml), but this can be overriden with the -c/--config option. A sample configuration file looks like this; both of the global options (base_dir and timeout) are required.

base_dir = "/home/josh/yt" # must be absolute
# timeout only specifies the timeout (in seconds) for fetching
# the Atom feeds from YouTube, not the actual fetching of videos
# use youtube-dl configuration to control that
timeout = 5

rust = "UCaYhcUwRBNscFNUKTjgPFiA"
MozillaDeveloper = "UCh5UlGiu9d6LegIeUCW4N1w"

For each item name = "id" in the subs table, spektilo will create a directory called name under base_dir to download new videos into using youtube-dl. On the first run, it will download all videos referenced in the Atom feed (this is probably not what you want and will be fixed Real Soon Now), but on each run it updates a file (in the base_dir) called .spektilo.state to keep track of successfully downloaded videos.


Send patches[^patches-how], bug reports, thanks, suggestions, and any other feedback directly to me at josh@inv.alid.pw.

[^patches-how]: using git send-email

#Known issues

  • the première feature breaks everything

#Missing features

  • initial run setup
  • skip this video
  • pass custom options through to youtube-dl