This bookmarklet adds functionality to Coursera's Video Lectures page to download and organize multiple videos at once with curl.
The bookmarklet generates bash code that can be entered directly into the command line and will download the selected videos sequentially. The videos are organized in the following structure:
1. Introduction - Why Model?/
1. Why Model?.mp4
2. Intelligent Citizens of the World.mp4
...
2. Segregation and Peer Effects/
...
- Navigate to this project's GitHub Page. (Why?)
- Drag and drop this link to your bookmarks bar: Coursera Downloader.
- Navigate to the "Video Lectures" page of any Coursera course.
- Click the "Coursera Downloader" bookmarklet in your bookmarks bar. This will add checkboxes to each video and a command output section at the top of the page.
- Select the videos you wish to download.
- "Select all" and "copy" the generated bash code in the text area near the top of the page.
- On your machine, open a terminal and navigate to the location you'd like your videos downloaded to.
- Paste the GIGANTIC command into your terminal and hit enter.
Your selected videos will now be downloaded with the curl
utility and organized as described above.
Why do I have to navigate to this project's GitHub Page before installing the bookmark?
The GitHub-flavored markdown renderer on this project's repo page doesn't allow inline javascript, which is how the bookmark functions, so the simple "drag-and-drop" into your bookmarks bar doesn't work. GitHub pages allow this.
- coursera-dl by jplehmann: "Script for downloading Coursera.org videos and naming them." (python)
- coursera_downloader.py by LoganDing: "A python script to download lectures (videos and slides) from Cousera.org" (python)
This project is an expansion of a gist by csabapalfi.
Suggestions are welcome! Please tweet your bugs or improvements to @cgenco.
Get the source code on GitHub: christiangenco/Coursera-Video-Downloader-Bookmarklet
<script type="text/javascript"> var e = document.getElementById("step1"); e.setAttribute("class", "done"); //For Most Browsers e.setAttribute("className", "done"); //For IE; harmless to other browsers. </script> <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-30513002-2']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'https://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script>