This is a YouTube video downloader written in GNU Awk. It works well but please don't take it too seriously. It's a proof of concept code, written to see what can be done with GNU Awk's networking interface. It was written by Peteris Krumins (peter@catonmat.net). His blog is at http://www.catonmat.net -- good coders code, great reuse. The code is licensed under the MIT license. The code was written as a part of the article "Downloading YouTube Videos with GNU Awk" on my website. The whole article can be read at: http://www.catonmat.net/blog/downloading-youtube-videos-with-gawk/ ------------------------------------------------------------------------------ Table of contents: [1] Why did I write this program? [2] How to use it? [1]-Why-did-I-write-this-program?--------------------------------------------- One day I found out that the GNU implementation of Awk had added networking support to Awk via a special filename that looks like this: "/inet/protocol/localport/hostname/remoteport". Since I love to explore obscure things and interesting language features, this got me curious if I could write a YouTube downloader in Awk. This program is the result of it. The most challening parts in this project were: 1) How to do HTTP redirection? I had to write a tiny HTTP protocol parser in Awk. (see get_headers function) 2) How to do binary I/O? Awk is not meant for binary I/O. It turned out I had to choose a random character as the RS separator. (see save_file function) [2]-How-to-use-the-program?--------------------------------------------------- Specify the list of YouTube URLs as command arguments to get_youtube_vids.awk: $ gawk -f get_youtube_vids.awk http://www.youtube.com/watch?v=ID1> [...] This will download all the videos specified on the command line. You can also specify just the YouTube video IDs: $ gawk -f get_youtube_vids.awk ID1 ID2 ID3 ... ------------------------------------------------------------------------------ Happy downloading! Sincerely, Peteris Krumins http://www.catonmat.net
meddah/gnu-awk-youtube-downloader
A program written in GNU Awk that downloads YouTube Videos. Proof of concept that AWK can do binary IO and networking effectively.