{ "info": { "author": "", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: End Users/Desktop", "License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Education" ], "description": "Coursera Downloader\n===================\n\n`Build Status `__ `Build\nstatus `__\n`Coverage Status `__\n`Latest version on PyPI `__\n`Code\nClimate `__\n\n.. raw:: html\n\n \n\n- `Coursera Downloader <#coursera-downloader>`__\n- `Introduction <#introduction>`__\n- `Features <#features>`__\n- `Disclaimer <#disclaimer>`__\n- `Installation instructions <#installation-instructions>`__\n\n - `Recommended installation method for all Operating\n Systems <#recommended-installation-method-for-all-operating-systems>`__\n - `Alternative ways of installing missing\n dependencies <#alternative-ways-of-installing-missing-dependencies>`__\n\n - `Alternative installation method for Unix\n systems <#alternative-installation-method-for-unix-systems>`__\n - `ArchLinux <#archlinux>`__\n - `Installing dependencies on your\n own <#installing-dependencies-on-your-own>`__\n\n - `Docker <#docker>`__\n - `Windows <#windows>`__\n - `Create an account with\n Coursera <#create-an-account-with-coursera>`__\n - `Running the script <#running-the-script>`__\n - `Resuming downloads <#resuming-downloads>`__\n\n- `Troubleshooting <#troubleshooting>`__\n\n - `China issues <#china-issues>`__\n - `Found 0 sections and 0 lectures on this\n page <#found-0-sections-and-0-lectures-on-this-page>`__\n - `Download timeouts <#download-timeouts>`__\n - `Windows: proxy support <#windows-proxy-support>`__\n - `Windows: Failed to create\n process <#windows-failed-to-create-process>`__\n - `SSLError: [Errno 1] \\_ssl.c:504: error:14094410:SSL\n routines:SSL3_READ_BYTES:sslv3 alert handshake\n failure <#sslerror-errno-1-_sslc504-error14094410ssl-routinesssl3_read_bytessslv3-alert-handshake-failure>`__\n - `Alternative CDN for\n ``MathJax.js`` <#alternative-cdn-for-mathjaxjs>`__\n\n- `Reporting issues <#reporting-issues>`__\n- `Filing an issue/Reporting a bug <#filing-an-issuereporting-a-bug>`__\n- `Feedback <#feedback>`__\n- `Contact <#contact>`__\n\n.. raw:: html\n\n \n\nIntroduction\n============\n\n`Coursera `__ is arguably the leader in\n*massive open online courses* (MOOC) with a selection of more than 300\nclasses from 62 different institutions `as of February\n2013 `__.\nGenerous contributions by educators and institutions are making\nexcellent education available to many who could not afford it otherwise.\nThere are even non-profits with \u201cfeet on the ground\u201d in remote areas of\nthe world who are helping spread the wealth (see the feedback below from\n`Tunapanda `__).\n\nThis script makes it easier to batch download lecture resources (e.g.,\nvideos, ppt, etc) for Coursera classes. Given one or more class names\nand account credentials, it obtains week and class names from the\n*lectures* page, and then downloads the related materials into\nappropriately named files and directories.\n\nWhy is this helpful? A utility like\n`wget `__\ncan work, but has the following limitations:\n\n1. Video names have numbers in them, but this does not correspond to the\n actual order. Manually renaming them is a pain that is best left for\n computers.\n2. Using names from the syllabus page provides more informative names.\n3. Using ``wget`` in a for loop picks up extra videos which are not\n posted/linked, and these are sometimes duplicates.\n\nBrowser extensions like *DownloadThemAll* is another possibility, but\n``coursera-dl`` provides more features such as appropriately named\nfiles.\n\nThis work was originally inspired in part by\n`youtube-dl `__ by which I\u2019ve\ndownloaded many other good videos such as those from Khan Academy.\n\nFeatures\n========\n\n- Support for all kinds of courses (i.e., \u201cOld Platform\u201d/time-based as\n well as \u201cNew Platform\u201d/on-demand courses).\n- Intentionally detailed names, so that it will display and sort\n properly on most interfaces (e.g.,\n `VLC `__\n or MX Video on Android devices).\n- Regex-based section (week) and lecture name filters to download only\n certain resources.\n- File format extension filter to grab resource types you want.\n- Login credentials accepted on command-line or from ``.netrc`` file.\n- Default arguments loaded from ``coursera-dl.conf`` file.\n- Core functionality tested on Linux, Mac and Windows.\n\nDisclaimer\n==========\n\n``coursera-dl`` is meant to be used only for your material that Coursera\ngives you access to download.\n\nWe do not encourage any use that violates their `Terms Of\nUse `__. A relevant excerpt:\n\n \u201c[\u2026] Coursera grants you a personal, non-exclusive, non-transferable\n license to access and use the Sites. You may download material from\n the Sites only for your own personal, non-commercial use. You may not\n otherwise copy, reproduce, retransmit, distribute, publish,\n commercially exploit or otherwise transfer any material, nor may you\n modify or create derivatives works of the material.\u201d\n\nInstallation instructions\n=========================\n\n``coursera-dl`` requires Python 2 or Python 3 and a free Coursera\naccount enrolled in the class of interest. (As of February of 2016, we\ntest automatically the execution of the program with Python versions\n2.6, 2.7, Pypy, 3.4, 3.5, and 3.6).\n\n**Note:** We *strongly* recommend that you use a Python 3 interpreter\n(3.4 or later).\n\nOn any operating system, ensure that the Python executable location is\nadded to your ``PATH`` environment variable and, once you have the\ndependencies installed (see next section), for a *basic* usage, you will\nneed to invoke the script from the main directory of the project and\nprepend it with the word ``python``. You can also use more advanced\nfeatures of the program by looking at the \u201cRunning the script\u201d section\nof this document.\n\n*Note:* You must already have (manually) agreed to the Honor of Code of\nthe particular courses that you want to use with ``coursera-dl``.\n\nRecommended installation method for all Operating Systems\n---------------------------------------------------------\n\nFrom a command line (preferably, from a virtual environment), simply\nissue the command:\n\n::\n\n pip install coursera-dl\n\nThis will download `the latest released\nversion `__ of the program\nfrom the `Python Package Index (PyPI) `__\nalong with *all* the necessary dependencies. At this point, you should\nbe ready to start using it.\n\nIf this does not work, because your Python 2 version is too old\n(e.g.\u00a02.7.5 on Ubuntu 14.4), try:\n\n::\n\n apt-get install python3 python3-pip\n pip3 install coursera-dl\n\ninstead.\n\n**Note 1:** We strongly recommend that you *don\u2019t* install the package\nglobally on your machine (i.e., with root/administrator privileges), as\nthe installed modules may conflict with other Python applications that\nyou have installed in your system (or they can interfere with\n``coursera-dl``). Prefer to use the option ``--user`` to\n``pip install``, if you need can.\n\n**Note 2:** As already mentioned, we *strongly* recommend that you use a\nnew Python 3 interpreter (e.g., 3.4 or later), since Python 3 has better\nsupport for SSL/TLS (for secure connections) than earlier versions. If\nyou must use Python 2, be sure that you have at least Python 2.7.9\n(later versions are OK). Otherwise, you can still use ``coursera-dl``,\nbut you will have to install the extra package ``ndg-httpsclient``,\nwhich may involve compilation (at least on Linux systems).\n\nAlternative ways of installing missing dependencies\n---------------------------------------------------\n\nWe strongly recommend that you consider installing Python packages with\n`pip `__, as in it is the current\n`preferred\nmethod `__, unless\ndirected otherwise by one of the project members (for instance, when\ntesting or debugging a new feature or using the source code directly\nfrom our git repository). If you are using ``pip``, you can directly\ninstall all the dependencies from the requirements file using\n``pip install -r requirements.txt``.\n\nAlternative installation method for Unix systems\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nWe strongly recommend that you install ``coursera-dl`` and all its\ndependencies in a way that does *not* interfere with the rest of your\nPython installation. This is accomplished by the creation of a *virtual\nenvironment*, or \u201cvirtualenv\u201d.\n\nFor the initial setup, in a Unix-like operating system, please use the\nfollowing steps (create/adapt first the directory\n``/directory/where/I/want/my/courses``):\n\n::\n\n cd /directory/where/I/want/my/courses\n virtualenv my-coursera\n cd my-coursera\n source bin/activate\n git clone https://github.com/coursera-dl/coursera-dl\n cd coursera-dl\n pip install -r requirements.txt\n ./coursera-dl ...\n\nTo further download new videos from your classes, simply perform:\n\n::\n\n cd /directory/where/I/want/my/courses/my-coursera\n source bin/activate\n cd coursera-dl\n ./coursera-dl ...\n\nWe are working on streamlining this whole process so that it is as\nsimple as possible, but to support older versions of Python and to cope\nwith Coursera disabling SSLv3, we have to take a few extra steps. In any\ncase, it is *highly* recommended that you always install the latest\nversion of the Python interpreter that you can.\n\nArchLinux\n~~~~~~~~~\n\nAUR package:\n`coursera-dl `__\n\nInstalling dependencies on your own\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n**Warning:** This method is not recommended unless you have experience\nworking with multiple Python environments.\n\nYou can use the ``pip`` program to install the dependencies on your own.\nThey are all listed in the ``requirements.txt`` file (and the extra\ndependencies needed for development are listed in the\n``requirements-dev.txt`` file).\n\nTo use this method, you would proceed as:\n\n::\n\n pip install -r requirements.txt\n pip install -r requirements-dev.txt\n\nThe second line above should only be needed if you intend to help with\ndevelopment (and help is *always* welcome) or if a maintainer of the\nproject asks you to install extra packages for debugging purposes.\n\nOnce again, before filing bug reports, if you installed the dependencies\non your own, please check that the versions of your modules are at least\nthose listed in the ``requirements.txt`` file (and,\n``requirements-dev.txt`` file, if applicable).\n\nDocker\n------\n\nIf you prefer you can run this software inside Docker:\n\n::\n\n docker run --rm -it -v \\\n \"$(pwd):/courses\" \\\n courseradl/courseradl -u -p \n\nOr using netrc file:\n\n::\n\n docker run --rm -it \\\n -v \"$(pwd):/courses\" -v \"$HOME/.netrc:/netrc\" \\\n courseradl/courseradl -n /netrc\n\nThe actual working dir for coursera-dl is /courses, all courses will be\ndownloaded there if you don\u2019t specify otherwise.\n\nWindows\n-------\n\n``python -m pip install coursera-dl``\n\nBe sure that the Python install path is added to the PATH system\nenvironment variables. This can be found in Control Panel > System >\nAdvanced System Settings > Environment Variables.\n\n::\n\n Example:\n C:\\Python35\\Scripts\\;C:\\Python35\\;\n\nOr if you have restricted installation permissions and you\u2019ve installed\nPython under AppData, add this to your PATH.\n\n::\n\n Example:\n C:\\Users\\\\AppData\\Local\\Programs\\Python\\Python35-32\\Scripts;C:\\Users\\\\AppData\\Local\\Programs\\Python\\Python35-32;\n\nCoursera-dl can now be run from commandline or powershell.\n\nCreate an account with Coursera\n-------------------------------\n\nIf you don\u2019t already have one, create a\n`Coursera `__ account and enroll in a class.\nSee https://www.coursera.org/courses for the list of classes.\n\nRunning the script\n------------------\n\nRun the script to download the materials by providing your Coursera\naccount credentials (e.g.\u00a0email address and password or a ``~/.netrc``\nfile), the class names, as well as any additional parameters:\n\n::\n\n General: coursera-dl -u -p modelthinking-004\n\nIf you don\u2019t want to type your password in command line as plain text,\nyou can use the script without ``-p`` option. In this case you will be\nprompted for password once the script is run.\n\n::\n\n Without -p field: coursera-dl -u modelthinking-004\n Multiple classes: coursera-dl -u -p saas historyofrock1-001 algo-2012-002\n Filter by section name: coursera-dl -u -p -sf \"Chapter_Four\" crypto-004\n Filter by lecture name: coursera-dl -u -p -lf \"3.1_\" ml-2012-002\n Download only ppt files: coursera-dl -u -p -f \"ppt\" qcomp-2012-001\n Use a ~/.netrc file: coursera-dl -n -- matrix-001\n Get the preview classes: coursera-dl -n -b ni-001\n Specify download path: coursera-dl -n --path=C:\\Coursera\\Classes\\ comnetworks-002\n Display help: coursera-dl --help\n\n Maintain a list of classes in a dir:\n Initialize: mkdir -p CURRENT/{class1,class2,..classN}\n Update: coursera-dl -n --path CURRENT `\\ls CURRENT`\n\n**Note:** If your ``ls`` command is aliased to display a colorized\noutput, you may experience problems. Be sure to escape the ``ls``\ncommand (use ``\\ls``) to assure that no special characters get sent to\nthe script.\n\nNote that we *do* support the New Platform (\u201con-demand\u201d) classes.\n\nOn \\*nix platforms, the use of a ``~/.netrc`` file is a good alternative\nto specifying both your username (i.e., your email address) and password\nevery time on the command line. To use it, simply add a line like the\none below to a file named ``.netrc`` in your home directory (or the\n`equivalent `__, if you are\nusing Windows) with contents like:\n\n::\n\n machine coursera-dl login password \n\nCreate the file if it doesn\u2019t exist yet. From then on, you can switch\nfrom using ``-u`` and ``-p`` to simply call ``coursera-dl`` with the\noption ``-n`` instead. This is especially convenient, as typing\nusernames (email addresses) and passwords directly on the command line\ncan get tiresome (even more if you happened to choose a \u201cstrong\u201d\npassword).\n\nAlternatively, if you want to store your preferred parameters (which\nmight also include your username and password), create a file named\n``coursera-dl.conf`` where the script is supposed to be executed, with\nthe following format:\n\n::\n\n --username \n --password \n --subtitle-language en,zh-CN|zh-TW\n --download-quizzes\n #--mathjax-cdn https://cdn.bootcss.com/mathjax/2.7.1/MathJax.js\n # more other parameters\n\nParameter which is stored in the file will be overriden if it is again\nspecified in your commandline script\n\n**Note:** In ``coursera-dl.conf``, all the parameters should not be\nwrapped with quotes.\n\nResuming downloads\n------------------\n\nIn default mode when you interrupt the download process by pressing\nCTRL+C, partially downloaded files will be deleted from your disk and\nyou have to start the download process from the beginning. If your\ndownload was interrupted by something other than KeyboardInterrupt\n(CTRL+C) like sudden system crash, partially downloaded files will\nremain on your disk and the next time you start the process again, these\nfiles will be discarded from download list!, therefore it\u2019s your job to\ndelete them manually before next start. For this reason we added an\noption called ``--resume`` which continues your downloads from where\nthey stopped:\n\n::\n\n coursera-dl -u -p --resume sdn1-001\n\nThis option can also be used with external downloaders:\n\n::\n\n coursera-dl --wget -u -p --resume sdn1-001\n\n*Note 1*: Some external downloaders use their own built-in resume\nfeature which may not be compatible with others, so use them at your own\nrisk.\n\n*Note 2*: Remember that in resume mode, interrupted files **WON\u2019T** be\ndeleted from your disk.\n\n**NOTE**: If your password contains punctuation, quotes or other \u201cfunny\ncharacters\u201d (e.g., ``<``, ``>``, ``#``, ``&``, ``|`` and so on), then\nyou may have to escape them from your shell. With bash or other\nBourne-shell clones (and probably with many other shells) one of the\nbetter ways to do so is to enclose your password in single quotes, so\nthat you don\u2019t run into problems. See `issue\n#213 `__ for more\ninformation.\n\nTroubleshooting\n===============\n\nIf you have problems when downloading class materials, please try to see\nif one of the following actions solve your problem:\n\n- Make sure the class name you are using corresponds to the resource\n name used in the URL for that class:\n ``https://www.coursera.org/learn//home/welcome``\n\n- Have you tried to clean the cached cookies/credentials with the\n ``--clear-cache`` option?\n\n- Note that many courses (most, perhaps?) may remove the materials\n after a little while after the course is completed, while other\n courses may retain the materials up to a next session/offering of the\n same course (to avoid problems with academic dishonesty, apparently).\n In short, it is not guaranteed that you will be able to download\n after the course is finished and this is, unfortunately, nothing that\n we can help you with.\n\n- Make sure you have installed and/or updated all of your dependencies\n according to the ``requirements.txt`` file as described above.\n\n- One can export a Netscape-style cookies file with a browser extension\n (`1 `__,\n `2 `__)\n and use it with the ``-c`` option. This comes in handy when the\n authentication via password is not working (the authentication\n process changes now and then).\n\n- If results show 0 sections, you most likely have provided invalid\n credentials (username and/or password in the command line or in your\n ``.netrc`` file or in your ``coursera-dl.conf`` file).\n\n- For courses that have not started yet, but have had a previous\n iteration sometimes a preview is available, containing all the\n classes from the last course. These files can be downloaded by\n passing the ``--preview`` parameter.\n\n- If you get an error like ``Could not find class: ``,\n then:\n\n - Verify that the name of the course is correct. Current class names\n in coursera are composed by a short course name e.g. ``class`` and\n the current version of the course (a number). For example, for a\n class named ``class``, you would have to use ``class-001``,\n ``class-002`` etc.\n - Second, verify that you are enrolled in the course. You won\u2019t be\n able to access the course materials if you are not officially\n enrolled and agreed to the honor course *via the website*.\n\n- If:\n\n - You get an error when using ``-n`` to specify that you want to use\n a ``.netrc`` file and,\n - You want the script to use your default netrc file and,\n - You get a message saying ``coursera-dl: error: too few arguments``\n\n Then you should specify ``--`` as an argument after ``-n``, that\n is, ``-n --`` or change the order in which you pass the arguments\n to the script, so that the argument after ``-n`` begins with an\n hyphen (``-``). Otherwise, Python\u2019s ``argparse`` module will think\n that what you are passing is the name of the netrc file that you\n want to use. See issue #162.\n\n- If your password has spaces, don\u2019t forget to write it using quotes.\n\n- Have you installed the right project ? **Warning**: If you installed\n the script using PyPi (pip) please verify that you installed the\n correct project. We had to use a different name in pip because our\n original name was already taken. Remember to install it using:\n\n ::\n\n pip install coursera-dl\n\nChina issues\n------------\n\nIf you are from China and you\u2019re having problems downloading videos,\nadding \u201c52.84.167.78 d3c33hcgiwev3.cloudfront.net\u201d in the hosts file\n(/etc/hosts) and freshing DNS with \u201cipconfig/flushdns\u201d may work (see\nhttps://github.com/googlehosts/hosts for more info).\n\nFound 0 sections and 0 lectures on this page\n--------------------------------------------\n\nFirst of all, make sure you are enrolled to the course you want to\ndownload.\n\nMany old courses have already closed enrollment so often it\u2019s not an\noption. In this case, try downloading with ``--preview`` option. Some\ncourses allow to download lecture materials without enrolling, but it\u2019s\nnot common and is not guaranteed to work for every course.\n\nFinally, you can download the videos if you have, at least, the index\nfile that lists all the course materials. Maybe your friend who is\nenrolled could save that course page for you. In that case use the\n``--process_local_page`` option.\n\nAlternatively you may want to try this Chrome extension:\nhttps://chrome.google.com/webstore/detail/coursera-materials-downlo/ijkboagofaehocnjacacdhdcbbcpilih\n\nIf none of the above works for you, there is nothing we can do.\n\nDownload timeouts\n-----------------\n\nCoursera-dl supports external downloaders but note that they are only\nused to download materials after the syllabus has been parsed,\ne.g.\u00a0videos, PDFs, some handouts and additional files (syllabus is\nalways downloaded using the internal downloader). If you experience\nproblems with downloading such materials, you may want to start using\nexternal downloader and configure its timeout values. For example, you\ncan use aria2c downloader by passing ``--aria`` option:\n\n::\n\n coursera-dl -n --path . --aria2 \n\nAnd put this into aria2c\u2019s configuration file ``~/.aria2/aria2.conf`` to\nreduce timeouts:\n\n::\n\n connect-timeout=2\n timeout=2\n bt-stop-timeout=1\n\nTimeout configuration for internal downloader is not supported.\n\nWindows: proxy support\n----------------------\n\nIf you\u2019re on Windows behind a proxy, set up the environment variables\nbefore running the script as follows:\n\n::\n\n set HTTP_PROXY=http://host:port\n set HTTPS_PROXY=http://host:port\n\nRelated discussion:\n`#205 `__\n\nWindows: Failed to create process\n---------------------------------\n\nIn ``C:\\Users\\\\AppData\\Local\\Programs\\Python\\Python35-32\\Scripts``\nor wherever Python installed (above is default for Windows) edit below\nfile in idle: (right click on script name and select \u2019edit with idle in\nmenu)\n\n::\n\n coursera-dl-script\n\nfrom\n\n::\n\n #!c:\\users\\\\appdata\\local\\programs\\python\\python35-32\\python.exe\n\nto\n\n::\n\n #\"!c:\\users\\\\appdata\\local\\programs\\python\\python35-32\\python.exe\"\n\n(add quotes). This is a known pip bug.\n\nSource: `issue\n#500 `__\n`StackOverflow `__\n\nSSLError: [Errno 1] \\_ssl.c:504: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure\n----------------------------------------------------------------------------------------------------------\n\nThis is a known error, please do not report about this error message!\nThe problem is in **YOUR** environment. To fix it, do the following:\n\n.. code:: bash\n\n sudo apt-get install build-essential python-dev libssl-dev libffi-dev\n pip install --user urllib3 pyasn1 ndg-httpsclient pyOpenSSL\n\nIf the error remains, try installing coursera-dl from github following\nthis instruction:\nhttps://github.com/coursera-dl/coursera-dl#alternative-installation-method-for-unix-systems\n\nIf you still have the problem, please read the following issues for more\nideas on how to fix it:\n`#330 `__\n`#377 `__\n`#329 `__\n\nThis is also worth reading:\nhttps://urllib3.readthedocs.io/en/latest/security.html#insecureplatformwarning\n\nAlternative CDN for ``MathJax.js``\n----------------------------------\n\nWhen saving a course page, we enabled ``MathJax`` rendering for math\nequations, by injecting ``MathJax.js`` in the header. The script is\nusing a cdn service provided by\n`mathjax.org `__.\nHowever, that url is not accessible in some countries/regions, you can\nprovide a ``--mathjax-cdn `` parameter to specify the\n``MathJax.js`` file that is accessible in your region.\n\nReporting issues\n================\n\nBefore reporting any issue please follow the steps below:\n\n1. Verify that you are running the latest version of the script, and the\n recommended versions of its dependencies, see them in the file\n ``requirements.txt``. Use the following command if in doubt:\n\n ::\n\n pip install --upgrade coursera-dl\n\n2. If the problem persists, feel free to `open an\n issue `__ in our\n bugtracker, please fill the issue template with *as much information\n as possible*.\n\nFiling an issue/Reporting a bug\n===============================\n\nWhen reporting bugs against ``coursera-dl``, please don\u2019t forget to\ninclude enough information so that you can help us help you:\n\n- Is the problem happening with the latest version of the script?\n- What operating system are you using?\n- Do you have all the recommended versions of the modules? See them in\n the file ``requirements.txt``.\n- What is the course that you are trying to access?\n- What is the precise command line that you are using (feel free to\n hide your username and password with asterisks, but leave all other\n information untouched).\n- What are the precise messages that you get? Please, use the\n ``--debug`` option before posting the messages as a bug report.\n Please, copy and paste them. Don\u2019t reword/paraphrase the messages.\n\nFeedback\n========\n\nI enjoy getting feedback. Here are a few of the comments I\u2019ve received:\n\n- \u201cThanks for the good job! Knowledge will flood the World a little\n more thanks to your script!\u201d Guillaume V. 11/8/2012\n\n- \u201cJust wanted to send you props for your Python script to download\n Coursera courses. I\u2019ve been using it in Kenya for my non-profit to\n get online courses to places where internet is really expensive and\n unreliable. Mostly kids here can\u2019t afford high school, and\n downloading one of these classes by the usual means would cost more\n than the average family earns in one week. Thanks!\u201d Jay L.,\n `Tunapanda `__ 3/20/2013\n\n- \u201cI am a big fan of Coursera and attend lots of different courses.\n Time constraints don\u2019t allow me to attend all the courses I want at\n the same time. I came across your script, and I am very happily using\n it! Great stuff and thanks for making this available on Github - well\n done!\u201d William G. 2/18/2013\n\n- \u201cThis script is awesome! I was painstakingly downloading each and\n every video and ppt by hand \u2013 looked into wget but ran into wildcard\n issues with HTML, and then.. I came across your script. Can\u2019t tell\n you how many hours you\u2019ve just saved me :) If you\u2019re ever in Paris /\n Stockholm, it is absolutely mandatory that I buy you a beer :)\u201d\n Razvan T. 11/26/2012\n\n- \u201cThanks a lot! :)\u201d Viktor V. 24/04/2013\n\nContact\n=======\n\nPlease, post bugs and issues on\n`github `__. Send\nother comments to Rog\u00e9rio Theodoro de Brito (the current maintainer):\nrbrito@ime.usp.br (twitter:\n[@rtdbrito]\\ `21 `__) or to John Lehmann\n(the original author): first last at geemail dotcom (twitter:\n[@jplehmann]\\ `12 `__).\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/coursera-dl/coursera-dl", "keywords": "coursera-dl,coursera,download,education,MOOCs,video", "license": "LGPL", "maintainer": "Rog\u00e9rio Theodoro de Brito", "maintainer_email": "rbrito@ime.usp.br", "name": "coursera-dl", "package_url": "https://pypi.org/project/coursera-dl/", "platform": "any", "project_url": "https://pypi.org/project/coursera-dl/", "project_urls": { "Homepage": "https://github.com/coursera-dl/coursera-dl" }, "release_url": "https://pypi.org/project/coursera-dl/0.11.4/", "requires_dist": [ "beautifulsoup4 (>=4.1.3)", "requests (>=2.10.0)", "six (>=1.5.0)", "urllib3 (>=1.10)", "pyasn1 (>=0.1.7)", "keyring (>=4.0)", "configargparse (>=0.12.0)", "attrs (==18.1.0)", "pytest; extra == 'dev'", "pytest-cov; extra == 'dev'", "pytest-xdist; extra == 'dev'", "mock (>=1.0.1); extra == 'dev'", "coverage (>=3.7); extra == 'dev'", "keyrings.alt; extra == 'dev'", "tox; extra == 'dev'" ], "requires_python": "", "summary": "Script for downloading Coursera.org videos and naming them.", "version": "0.11.4" }, "last_serial": 3996587, "releases": { "0.10.0": [ { "comment_text": "", "digests": { "md5": "78ee84aece5c50c36668773185ab2a4d", "sha256": "0d00921310821a6b1d29c4e52bf406319cd3e7155d9be6b6a6a183b79ffdf821" }, "downloads": -1, "filename": "coursera-dl-0.10.0.tar.gz", "has_sig": true, "md5_digest": "78ee84aece5c50c36668773185ab2a4d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 80127, "upload_time": "2018-02-20T02:35:31", "url": "https://files.pythonhosted.org/packages/65/40/2a1d853433ccfa6a6231d679b38f7d3c677c7868aa769a58b2f6ce3564e2/coursera-dl-0.10.0.tar.gz" } ], "0.11.0": [ { "comment_text": "", "digests": { "md5": "e732b9daa21157ab35aa35a114ad66df", "sha256": "315e14578b347ac90778065fbe3cde18575340b39fa656fc5ded5994faf71b31" }, "downloads": -1, "filename": "coursera-dl-0.11.0.tar.gz", "has_sig": false, "md5_digest": "e732b9daa21157ab35aa35a114ad66df", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 82306, "upload_time": "2018-06-02T17:25:17", "url": "https://files.pythonhosted.org/packages/5d/a9/375faccc6458723f6baa867b2dd6d9cd9d0caf49786d74d8c3a267f703b0/coursera-dl-0.11.0.tar.gz" } ], "0.11.1": [ { "comment_text": "", "digests": { "md5": "88213846dd69fd594124b3a8ea0043a9", "sha256": "7c33d223d771ff5b6fc200991cbca7d22a33b9a24eb166f8c2044e72bd8f33d7" }, "downloads": -1, "filename": "coursera-dl-0.11.1.tar.gz", "has_sig": false, "md5_digest": "88213846dd69fd594124b3a8ea0043a9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 82317, "upload_time": "2018-06-02T20:18:37", "url": "https://files.pythonhosted.org/packages/36/1a/0c91f076612cfd23af5431682039c31840c9c0587d5f51b3a9c3543c0978/coursera-dl-0.11.1.tar.gz" } ], "0.11.2": [ { "comment_text": "", "digests": { "md5": "b7dd447185258436562989959d5308fd", "sha256": "f9fd008772cac80be6db1b03609bb8078f23b07d52517320d056af799b6f7a05" }, "downloads": -1, "filename": "coursera_dl-0.11.2-py3-none-any.whl", "has_sig": false, "md5_digest": "b7dd447185258436562989959d5308fd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 63436, "upload_time": "2018-06-12T11:10:33", "url": "https://files.pythonhosted.org/packages/11/9c/251adadee298e1ad6d06d9bffe8f1a4ff856efaf7dae697dc063fa625eef/coursera_dl-0.11.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6d8fe6185592366eb93494875ea17e67", "sha256": "f933edd4ec35cd21a48b82e35cbb4ada9f018fab3b64a83f5e8e6a1aba1b1f59" }, "downloads": -1, "filename": "coursera-dl-0.11.2.tar.gz", "has_sig": false, "md5_digest": "6d8fe6185592366eb93494875ea17e67", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 82319, "upload_time": "2018-06-03T08:31:25", "url": "https://files.pythonhosted.org/packages/f5/57/3ba75dc45ab0ed977ab24cd71d1e1ef389d31df143f6773b0e65b2f696d4/coursera-dl-0.11.2.tar.gz" } ], "0.11.3": [ { "comment_text": "", "digests": { "md5": "8d4e0394862bba203c6a931cba2ece94", "sha256": "18d78196d5fd201fb14ca72a8126423fe188aa5ff22a2c2ec308f07b9b0ce177" }, "downloads": -1, "filename": "coursera_dl-0.11.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8d4e0394862bba203c6a931cba2ece94", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 65129, "upload_time": "2018-06-24T08:07:33", "url": "https://files.pythonhosted.org/packages/2e/15/2a77d67ccc865810baf34941b50161427b96cf0180852a7ad730a719e87a/coursera_dl-0.11.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "77ee23e47ce8bc93c7349076cdb64002", "sha256": "904f48577145fc898fe2cf751f990b02b3dcdaf74e8c7a0673b1496526864187" }, "downloads": -1, "filename": "coursera-dl-0.11.3.tar.gz", "has_sig": false, "md5_digest": "77ee23e47ce8bc93c7349076cdb64002", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 85109, "upload_time": "2018-06-24T08:08:34", "url": "https://files.pythonhosted.org/packages/95/8d/9f663d9a71cd200a1b692d9366b3201b3383c0ef835389127a2f87f0e053/coursera-dl-0.11.3.tar.gz" } ], "0.11.4": [ { "comment_text": "", "digests": { "md5": "19dd3d8afb227f8b2d38da264cc13489", "sha256": "b5d53bf64003003c58acfd607cee72428afba51074a048c4faab66064178abb2" }, "downloads": -1, "filename": "coursera_dl-0.11.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "19dd3d8afb227f8b2d38da264cc13489", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 65228, "upload_time": "2018-06-24T10:49:27", "url": "https://files.pythonhosted.org/packages/f4/cc/4c9df29cc11c19acd0e7416a189aa2255beebad84abf0409c9ad135f8462/coursera_dl-0.11.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f5a7c689f1d3ea29f104104bf62bb47f", "sha256": "8366ab3e22c712a3e7d4f944c8763ac6c5111210f73ce14f782d9bc24e2d8204" }, "downloads": -1, "filename": "coursera-dl-0.11.4.tar.gz", "has_sig": false, "md5_digest": "f5a7c689f1d3ea29f104104bf62bb47f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 85223, "upload_time": "2018-06-24T10:49:29", "url": "https://files.pythonhosted.org/packages/92/f2/2b4c9f67c12f43e88aa1cebcd3c0e4b477de7ef4730535cffd583b1b474d/coursera-dl-0.11.4.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "31df2fd3d279c62a9c350fcb213bb628", "sha256": "6931b940ba083b4bbd2b37f5290c641e38bb75af697c62f0092abd90418a00f8" }, "downloads": -1, "filename": "coursera-dl-0.9.0.tar.gz", "has_sig": false, "md5_digest": "31df2fd3d279c62a9c350fcb213bb628", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 75640, "upload_time": "2017-05-29T16:54:50", "url": "https://files.pythonhosted.org/packages/2d/9c/ac4c36ef87b28efeccc97cf23835cfd1f051889a188f65684ba29acf0213/coursera-dl-0.9.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "19dd3d8afb227f8b2d38da264cc13489", "sha256": "b5d53bf64003003c58acfd607cee72428afba51074a048c4faab66064178abb2" }, "downloads": -1, "filename": "coursera_dl-0.11.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "19dd3d8afb227f8b2d38da264cc13489", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 65228, "upload_time": "2018-06-24T10:49:27", "url": "https://files.pythonhosted.org/packages/f4/cc/4c9df29cc11c19acd0e7416a189aa2255beebad84abf0409c9ad135f8462/coursera_dl-0.11.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f5a7c689f1d3ea29f104104bf62bb47f", "sha256": "8366ab3e22c712a3e7d4f944c8763ac6c5111210f73ce14f782d9bc24e2d8204" }, "downloads": -1, "filename": "coursera-dl-0.11.4.tar.gz", "has_sig": false, "md5_digest": "f5a7c689f1d3ea29f104104bf62bb47f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 85223, "upload_time": "2018-06-24T10:49:29", "url": "https://files.pythonhosted.org/packages/92/f2/2b4c9f67c12f43e88aa1cebcd3c0e4b477de7ef4730535cffd583b1b474d/coursera-dl-0.11.4.tar.gz" } ] }