coursera-dl / coursera-dl

Script for downloading Coursera.org videos and naming them.
GNU Lesser General Public License v3.0
9.35k stars 2.21k forks source link

I have started getting SSL errors when attempting to download courses #322

Closed justarb closed 9 years ago

justarb commented 9 years ago

The downloader has been working fine for me for quite some time now and last week it ran successfully for me. However today I keep getting an SSL error no matter which course I try to download. I have tried the --clear-cache option but that doesn't make any difference. I have made sure all the required packages are up to date.

My operating system is Mac OS X 10.10.2

The errors I am getting are:

$ ../coursera/coursera-dl -n --clear-cache --path=~/posaconcurrency-001/ posaconcurrency-001 Downloading class: posaconcurrency-001 Starting new HTTPS connection (1): class.coursera.org /Library/Python/2.7/site-packages/requests/packages/urllib3/util/ssl.py:79: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning. InsecurePlatformWarning Starting new HTTPS connection (1): www.coursera.org /Library/Python/2.7/site-packages/requests/packages/urllib3/util/ssl.py:79: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning. InsecurePlatformWarning Traceback (most recent call last): File "../coursera/coursera-dl", line 6, in coursera_dl.main() File "/Users/arb/Documents/Online Learning/Coursera/zzz_downloader/coursera/coursera/coursera_dl.py", line 921, in main result = download_class(args, class_name) File "/Users/arb/Documents/Online Learning/Coursera/zzz_downloader/coursera/coursera/coursera_dl.py", line 817, in download_class username=args.username, password=args.password File "/Users/arb/Documents/Online Learning/Coursera/zzz_downloader/coursera/coursera/cookies.py", line 336, in get_cookies_for_class get_authentication_cookies(session, class_name, username, password) File "/Users/arb/Documents/Online Learning/Coursera/zzz_downloader/coursera/coursera/cookies.py", line 159, in get_authentication_cookies login(session, username, password, class_name=class_name) File "/Users/arb/Documents/Online Learning/Coursera/zzz_downloader/coursera/coursera/cookies.py", line 114, in login headers=headers, allow_redirects=False) File "/Library/Python/2.7/site-packages/requests/sessions.py", line 507, in post return self.request('POST', url, data=data, json=json, _kwargs) File "/Library/Python/2.7/site-packages/requests/sessions.py", line 464, in request resp = self.send(prep, _send_kwargs) File "/Library/Python/2.7/site-packages/requests/sessions.py", line 576, in send r = adapter.send(request, **kwargs) File "/Library/Python/2.7/site-packages/requests/adapters.py", line 431, in send raise SSLError(e, request=request) requests.exceptions.SSLError: [Errno 1] _ssl.c:507: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure

Any help would be appreciated.

mxamin commented 9 years ago

I think this error is because of recently founded vulnerability in SSL_v3 named POODLE which makes it insecure, and for this reason Apple will block any connection trying to use this version of SSL. Of course there are other alternatives like TLS_v1. Q: Have you updated your OS recently? because there is no such problem in OS X 10.9.4.

mehaase commented 9 years ago

See discussion here: https://github.com/coursera-dl/coursera/issues/324. I have the same bug on Linux as @justarb has on OS X. Coursera recently disabled SSLv3. Nothing to do with Apple.

justarb commented 9 years ago

I was able to get around this error by updating my Python implementation. I was using OS X's default Python (2.7.6) so I updated to python.org's 2.7.9 release and now the downloader works fine.

rbrito commented 9 years ago

Yes, updating Python (along with OpenSSL) is the way to go. Also, the problem should be fixed with the latest commit: https://github.com/coursera-dl/coursera/commit/46320cfec9b5e9e42fe6c7b1ca602347e3ee4420

sourcedelica commented 9 years ago

Yep - using brew to install python did the trick for me.

ghost commented 8 years ago

have you successfully downloaded the course?