-
-
Save christiangenco/2225519 to your computer and use it in GitHub Desktop.
$("h3.list_header").each(function(sectionIndex){ | |
var sectionName = $(this).text().replace(/Chapter .+ - /,"").replace(/\:/,'-').replace(/^(V|I|X)+\. /,''); | |
$(this).parent().next().find("a.lecture-link").each(function(videoIndex){ | |
var $lectureLink = $(this); | |
var videoName = $.trim($lectureLink.text()); | |
var downloadLink = $lectureLink.attr('href').replace('view','download.mp4'); | |
var cookieHeader = ' --header \"Cookie:'+ document.cookie + '\" '; | |
var directory = (sectionIndex+1) + '. ' + sectionName + '/'; | |
var filename = directory + (videoIndex+1) + '. ' + videoName + '.mp4'; | |
var cmd = 'echo "' + filename + '" && '; | |
cmd += 'mkdir -p "' + directory + '" && '; | |
cmd += 'curl -L -C - ' + cookieHeader + downloadLink + ' -o "' + filename + '"'; | |
console.log(cmd); | |
}); | |
}); null |
Thanks.
How do i install/run this JS file on a chrome browser ?
Navigate to the video list of a Coursera page. Click View -> Developer -> JavaScript Console (or command + option + J on a mac) and paste the gist into the JS command line. The output in the JS console will be a HUGE string of bash commands (one video per line) that will download the videos into folders (creating the folders if they don't exist).
Thanks for the prompt response Christian
One clarification
"The output in the JS console will be a HUGE string of bash commands (one video per line) that will download the videos into folders (creating the folders if they don't exist)."
Will the bash commands, generated on the JS console, get executed as well, or i copy them from the JS console, & run it in a terminal ?
Thanks a ton.
Copy from the JS console and run in a terminal. Preferably in the directory you'd like your videos stored in. Let me know if it works for you!
I think I may develop this further into a bookmarklet that inserts the curl commands inline and lets you choose which videos you want included in the download...
Thanks a lot. It works & looks like i can paste the huge blob for all the videos at 1 go.
A feature which will let you choose which videos to download would be awesome.
Just FYI, Dont go through trouble just for me :)
There are 2 alternatives, which have more features, but also take more work to get working though
Hi Christian
I am using the coursera video downloader bookmarklet & it works great.
I was wondering if you know of a similar good (as in lightweight) way(bookmarklet, extension, etc) to download udacity videos (which are youtube videos & unlike coursera, not organized all on one page) ?
Thanks,
cnh
Thanks! Glad you like it :D
I'd use something like a Chrome YouTube video downloader extension (a bunch exist; here's one: http://www.chromeextensions.org/other/easy-youtube-video-downloader/ ). I haven't used Udacity as much, so I can't offer any specific advise.
Creepy o_O
Not back in the US yet, unfortunately. Currently enjoying a holiday to Sydney :D
Added better file organization:
Also added some basic filtering for SAAS and Algorithms classes in video names.