home

An Offline YouTube

Dec 30 '21

Advert Free!

In the last few years I began to follow the work of Tristan Harris and his organisation 'the Centre for Humane Technology'. The PowerPoint he published while working for Google titled, 'How to minimise distraction and respect users attention' Link to Verge Article brought it home to me that I didn't want to be under the control of dark pattern algorithms that proliferate with modern technology.

I certainly found that one of the most addictive sites that I visit to be YouTube, and wondered whether there was a way to automatically download videos from my favourite subscribers without having to deal with 1. The YouTube algorithm and 2. Advertising. Fortunately I stumbled across a Youtube-dl (https://youtube-dl.org/) but soon discovered that it was not the most efficient way to download videos, mainly due to speed restrictions put in place by Google to minimise the use of such tools.

Fortunately, there is a maintained script which seems to have superseded this tool called YT-DLP (https://github.com/yt-dlp/yt-dlp) what I like about this script is that I am able to compile a list of all my favourite subscribers into a file and then automate the process of downloading only their newly posted videos. So, I am able to maintain a local copy of all my favourite subscribers videos which I can watch at my leisuire, in HD and without advertisements.

Feel free to use my bash script to compile your own version. You'll obviously want to substitute the URL of your favourite YouTubers.

1 ChannelNames=(
  2 "https://www.youtube.com/c/HaraldBaldr"
  3 "https://www.youtube.com/c/justjoshingyou"       
  4 "https://www.youtube.com/c/KingsandGenerals"
  5 "https://www.youtube.com/c/ThrottleHouse"       
  6 "https://www.youtube.com/c/PlantBasedGabriel"
  7 "https://www.youtube.com/c/SeeUinHistoryMythology"       
  8 "https://www.youtube.com/c/VoicesofthePast"
  9 "https://www.youtube.com/user/kirstendirksen"       
  10 "https://www.youtube.com/c/Cercle"
  11 )       
  12 for i in "${ChannelNames[@]}"
  13 do       
  14 yt-dlp $i --download-archive ~/youtube-dl-seen.conf --prefer-free-formats --playlist-end 2 --write-description --output "/run/media/asher/Samsung/YT-DPL/%(uploader)s/%(upload_date)s - %(title)s.%(ext)s"
  15 done