Skip to content

Instantly share code, notes, and snippets.

@ldong
Last active December 7, 2023 16:16
Show Gist options
  • Save ldong/b289d56090f98d02423c to your computer and use it in GitHub Desktop.
Save ldong/b289d56090f98d02423c to your computer and use it in GitHub Desktop.
download egghead videos

Download videos from egghead

Go to the egghead website, i.e. Building a React.js App

run

$.each($('h4 a'), function(index, video){
  console.log(video.href);
});

You will get the following list

https://egghead.io/lessons/react-building-a-react-js-app-notetaker-introduction
https://egghead.io/lessons/react-building-a-react-js-app-up-and-running-with-react-and-webpack
https://egghead.io/lessons/react-building-a-react-js-app-basic-routing-with-react-router
https://egghead.io/lessons/react-building-a-react-js-app-state-props-and-thinking-in-react
https://egghead.io/lessons/react-building-a-react-js-app-component-validation-with-proptypes
https://egghead.io/lessons/react-building-a-react-js-app-using-reactfire-to-add-data-persistence
https://egghead.io/lessons/react-building-a-react-js-app-managing-state-in-child-components
https://egghead.io/lessons/react-building-a-react-js-app-transitions-with-react-router
https://egghead.io/lessons/react-building-a-react-js-app-making-server-requests-in-react-with-axios
https://egghead.io/lessons/react-building-a-react-js-app-rendering-a-ui-of-dynamic-data
https://egghead.io/lessons/react-building-a-react-js-app-componentwillreceiveprops-and-react-router
https://egghead.io/lessons/react-building-a-react-js-app-es6-refactor-non-components
https://egghead.io/lessons/react-building-a-react-js-app-es6-refactor-createclass-to-javascript-classes-and-proptypes
https://egghead.io/lessons/react-building-a-react-js-app-es6-refactor-proptypes-in-es6
https://egghead.io/lessons/react-building-a-react-js-app-es6-refactor-routing-without-mixins
https://egghead.io/lessons/react-building-a-react-js-app-es6-refactor-firebase-and-react-binding-with-re-base

Steps:

  1. Save as list.txt

  2. brew install youtube-dl

  3. youtube-dl -a list.txt

Run this rename script to get rid of the Mojibake

for i in *mp4; do
   mv "$i" "`echo $i | sed "s/#.*//"`"'.mp4';
done
@a-eid
Copy link

a-eid commented Oct 26, 2018

this is a programatic way of doing what is described above, it's very basic
I might add to it later

https://github.com/a-eid/egghead-basic-downloader

@peebeebee
Copy link

copy([...new Set(Array.from(document.querySelectorAll('[href^="/lessons"]')).map(a => a.href))].join('\n'))

@ijasxyz
Copy link

ijasxyz commented Apr 1, 2019

copy([...new Set(Array.from(document.querySelectorAll('[href^="/lessons"]')).map(a => a.href))].join('\n'))

Add a '/' after lessons to ignore /lessons link,

copy([...new Set(Array.from(document.querySelectorAll('[href^="/lessons/"]')).map(a => a.href))].join('\n'))

@saeedafroozi
Copy link

I have read all the comments but still I could not download anythings.I will appreciate if some helps me to download some videos

@ashleyconnor
Copy link

Protected content can be downloaded via the --add-header= flag. Courses already have a download button but Collections do not.

youtube-dl -a playlist.txt --add-header=Cookie:"ahoy_visitor=...."

@bchenSyd
Copy link

I have read all the comments but still I could not download anythings.I will appreciate if some helps me to download some videos

I did got those links by following instructions above, but youtube-dl gave me "URL not supported error"

so far I'm only able to download these links, which is pretty useless

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment