I have youtube-dl installed on linux as a “binary”. I’m using quotes because it’s not really binary but zipped executable. I needed to patch my youtube-dl with a patch from some user that provided it in github issues. So, here it goes.
The main installation method to install youtube-dl, according to https://github.com/ytdl-org/youtube-dl/blob/master/README.md#installation is to
sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl sudo chmod a+rx /usr/local/bin/youtube-dl
You end up with a single executable file in /usr/local/bin/ and that’s totally fine. Updating youtube-dl to the latest version is usually done with
sudo youtube-dl -U
But how to patch this? Contrary to usual logic it’s possible to simply unpack executalble and patch. That executable is actually a zip file. I first create a folder for hacking and extract the zip into it:
mkdir ~/.local/src/youtube-dl unzip /usr/local/bin/youtube-dl -d ~/.local/src/youtube-dl/
I have downloaded a patch to enable some franceTV videos to be downloaded, since they changed their API, into a file ~/.local/src/youtube-dl/youtube-dl-patch.txt, so in order to patch the extractor for franceTV – francetv.py I do
patch ~/.local/src/youtube-dl/youtube_dl/extractor/francetv.py < ~/.local/src/youtube-dl/youtube-dl-patch.txt
I can then run the program simply by running __main__.py
cd ~/.local/src/youtube-dl/ ./__main__.py --verbose https://www.france.tv/spectacles-et-culture/.....html
There’s a way to pack the new patched tree back into an executable zip with ‘make youtube-dl’, but I couldn’t find a way yet.