projects
/
youtube-dl
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
6df7179
)
[twitch] Improve authentication
author
Sergey M․
<dstftw@gmail.com>
Sat, 17 Oct 2015 12:28:21 +0000
(18:28 +0600)
committer
Sergey M․
<dstftw@gmail.com>
Sat, 17 Oct 2015 12:28:21 +0000
(18:28 +0600)
youtube_dl/extractor/twitch.py
patch
|
blob
|
history
diff --git
a/youtube_dl/extractor/twitch.py
b/youtube_dl/extractor/twitch.py
index 023911c41f4b05ef0a8137e9cf8fede2cc94cf6d..891499a1f370d6b2484f75db07842afcc83431cc 100644
(file)
--- a/
youtube_dl/extractor/twitch.py
+++ b/
youtube_dl/extractor/twitch.py
@@
-15,6
+15,7
@@
from ..compat import (
compat_urlparse,
)
from ..utils import (
compat_urlparse,
)
from ..utils import (
+ encode_dict,
ExtractorError,
int_or_none,
parse_duration,
ExtractorError,
int_or_none,
parse_duration,
@@
-27,8
+28,7
@@
class TwitchBaseIE(InfoExtractor):
_API_BASE = 'https://api.twitch.tv'
_USHER_BASE = 'http://usher.twitch.tv'
_API_BASE = 'https://api.twitch.tv'
_USHER_BASE = 'http://usher.twitch.tv'
- _LOGIN_URL = 'https://secure.twitch.tv/login'
- _LOGIN_POST_URL = 'https://passport.twitch.tv/authentications/new'
+ _LOGIN_URL = 'http://www.twitch.tv/login'
_NETRC_MACHINE = 'twitch'
def _handle_error(self, response):
_NETRC_MACHINE = 'twitch'
def _handle_error(self, response):
@@
-61,26
+61,28
@@
class TwitchBaseIE(InfoExtractor):
if username is None:
return
if username is None:
return
- login_page
= self._download_webpag
e(
+ login_page
, handle = self._download_webpage_handl
e(
self._LOGIN_URL, None, 'Downloading login page')
login_form = self._hidden_inputs(login_page)
login_form.update({
self._LOGIN_URL, None, 'Downloading login page')
login_form = self._hidden_inputs(login_page)
login_form.update({
- '
login': username.encode('utf-8')
,
- 'password': password
.encode('utf-8')
,
+ '
username': username
,
+ 'password': password,
})
})
+ redirect_url = handle.geturl()
+
post_url = self._search_regex(
r'<form[^>]+action=(["\'])(?P<url>.+?)\1', login_page,
post_url = self._search_regex(
r'<form[^>]+action=(["\'])(?P<url>.+?)\1', login_page,
- 'post url', default=
self._LOGIN_POST_URL
, group='url')
+ 'post url', default=
redirect_url
, group='url')
if not post_url.startswith('http'):
if not post_url.startswith('http'):
- post_url = compat_urlparse.urljoin(
self._LOGIN_URL
, post_url)
+ post_url = compat_urlparse.urljoin(
redirect_url
, post_url)
request = compat_urllib_request.Request(
request = compat_urllib_request.Request(
- post_url, compat_urllib_parse.urlencode(
login_form
).encode('utf-8'))
- request.add_header('Referer',
self._LOGIN_URL
)
+ post_url, compat_urllib_parse.urlencode(
encode_dict(login_form)
).encode('utf-8'))
+ request.add_header('Referer',
redirect_url
)
response = self._download_webpage(
request, None, 'Logging in as %s' % username)
response = self._download_webpage(
request, None, 'Logging in as %s' % username)