Youtube-Archiver

Always keep a local backup.

This utility allows you to define a collection of links to youtube-channels and/or playlists, which you want to keep synced to your local storage. All you have to do is to call download.sh, which will download all videos of your defined playlists that are not already saved locally.

This basically means, after doing the initial big download, you could run it as a cronjob, since it won't take long when it's only downloading newly uploaded videos.

How does it work?

Pretty easily.

1

First, you define the stuff you want to download, in yaml files. For more info on syntax, see the example file.

# linklist-music.yaml

# Eminem
-
  url: https://www.youtube.com/c/eminem/videos
  folder-name: Eminem

# DJ. S3RL
-
  url: https://www.youtube.com/channel/UCb6JTMjrHZCYFD9Y04CBk9g

# Snoop Dogg
-
  url: https://www.youtube.com/watch?v=zV-Xcy_bF2w&list=PL75C4B43E5F60A82C
  folder-name: Snoog Dogg

2

Secondly, calling download.sh will invoke the two python scripts responsible for downloading.

3

These python scripts will invoke yt-dlp for each link supplied. Yt-dlp runs in download-archive mode, which basically means it won't download a video twice. It will save it's ID and check if it's already saved before downloading.

Files will be saved to ./videos/<folder>/ and ./music/<folder>.

Description
Languages
Python 72.6%
Shell 20.4%
Batchfile 7%