Download Egghead.io videos using Lynx Browser and youtube-dl. This method will only work for videos that do not require a pro account.
You need a Unix/Linux box with Lynx console browser and Youtube-dl installed.
Installation on Ubuntu(may require sudo)
$ apt-get install lynx
Installation on Fedora(may require sudo)
$ yum install lynx
Installation on Mac OS X(using homebrew)
$ brew install lynx
For all other Operating Systems, use your default package manager.
Official installation docs
https://rg3.github.io/youtube-dl/download.html
EDIT: Since HLS videos are segmented into many small parts and youtube-dl requires ffmpeg to convert videos, you also need ffmpeg as written on this page.
The following example should work for Linux and Mac.
- Grab course or Lesson URL from egghead.io page
Examples:
https://egghead.io/courses/leverage-new-features-of-react-16
OR
https://egghead.io/lessons/react-error-handling-using-error-boundaries-in-react-16 - Assign this value to a variable, say 'url'.
$ url=https://egghead.io/courses/leverage-new-features-of-react-16
- Use the below command to download all videos for a course or a given specific lesson depending on the URL you provided in last step.
# Old script had a lot of issues on os such as freeBSD and mac
# New script is as below :
$ lynx -source $url | grep -o -e 'https://[^"]*.m3u8' | xargs -n1 youtube-dl -o "%(title)s.%(ext)s"
# You can also use CURL instead of lynx browser as in below script
$ curl -L $url | grep -o -e 'https://[^"]*.m3u8' | xargs -n1 youtube-dl -o "%(title)s.%(ext)s"
UPDATE: Doesn't work on Mac as pointed out in the comments by @toddzebert and others. Try solutions from Nithanaroy and mutalis instead.
same error RROR: requested format not available