aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2015-06-20 00:49:28 +0600
committerSergey M․ <dstftw@gmail.com>2015-06-20 00:49:28 +0600
commit16d6973f8a9eb5a70c12d82aa40f57c2b4aa8c6f (patch)
treef13568c3065b52cb81373a454741c0719cf5fdd5
parentedcd2d665bf7fce29a561478549ec4e795c367ce (diff)
[viki] Pass session token around (#6005)
-rw-r--r--youtube_dl/extractor/viki.py10
1 files changed, 9 insertions, 1 deletions
diff --git a/youtube_dl/extractor/viki.py b/youtube_dl/extractor/viki.py
index 52d10d242..51cdc6b65 100644
--- a/youtube_dl/extractor/viki.py
+++ b/youtube_dl/extractor/viki.py
@@ -28,11 +28,15 @@ class VikiBaseIE(InfoExtractor):
_NETRC_MACHINE = 'viki'
+ _token = None
+
def _prepare_call(self, path, timestamp=None, post_data=None):
path += '?' if '?' not in path else '&'
if not timestamp:
timestamp = int(time.time())
query = self._API_QUERY_TEMPLATE % (path, self._APP, timestamp)
+ if self._token:
+ query += '&token=%s' % self._token
sig = hmac.new(
self._APP_SECRET.encode('ascii'),
query.encode('ascii'),
@@ -76,10 +80,14 @@ class VikiBaseIE(InfoExtractor):
'password': password,
}
- self._call_api(
+ login = self._call_api(
'sessions.json', None,
'Logging in as %s' % username, post_data=login_form)
+ self._token = login.get('token')
+ if not self._token:
+ self.report_warning('Unable to get session token, login has probably failed')
+
class VikiIE(VikiBaseIE):
IE_NAME = 'viki'