projects
/
youtube-dl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[compat] Introduce compat_cookiejar_Cookie
[youtube-dl]
/
youtube_dl
/
extractor
/
viki.py
diff --git
a/youtube_dl/extractor/viki.py
b/youtube_dl/extractor/viki.py
index cb8bfb348cbd2d3d74509ddfd86ff2ed20914ea2..b0dcdc0e6baced889541e3307ac8314e73f99522 100644
(file)
--- a/
youtube_dl/extractor/viki.py
+++ b/
youtube_dl/extractor/viki.py
@@
-21,12
+21,13
@@
from ..utils import (
class VikiBaseIE(InfoExtractor):
_VALID_URL_BASE = r'https?://(?:www\.)?viki\.(?:com|net|mx|jp|fr)/'
_API_QUERY_TEMPLATE = '/v4/%sapp=%s&t=%s&site=www.viki.com'
class VikiBaseIE(InfoExtractor):
_VALID_URL_BASE = r'https?://(?:www\.)?viki\.(?:com|net|mx|jp|fr)/'
_API_QUERY_TEMPLATE = '/v4/%sapp=%s&t=%s&site=www.viki.com'
- _API_URL_TEMPLATE = 'http://api.viki.io%s&sig=%s'
+ _API_URL_TEMPLATE = 'http
s
://api.viki.io%s&sig=%s'
- _APP = '
6553
5a'
+ _APP = '
10000
5a'
_APP_VERSION = '2.2.5.1428709186'
_APP_VERSION = '2.2.5.1428709186'
- _APP_SECRET = '
-$iJ}@p7!G@SyU/je1bEyWg}upLu-6V6-Lg9VD(]siH,r.,m-r|ulZ,U4LC/SeR)
'
+ _APP_SECRET = '
MM_d*yP@`&1@]@!AVrXf_o-HVEnoTnm$O-ti4[G~$JDI/Dc-&piU&z&5.;:}95=Iad
'
+ _GEO_BYPASS = False
_NETRC_MACHINE = 'viki'
_token = None
_NETRC_MACHINE = 'viki'
_token = None
@@
-77,14
+78,17
@@
class VikiBaseIE(InfoExtractor):
def _check_errors(self, data):
for reason, status in data.get('blocking', {}).items():
if status and reason in self._ERRORS:
def _check_errors(self, data):
for reason, status in data.get('blocking', {}).items():
if status and reason in self._ERRORS:
+ message = self._ERRORS[reason]
+ if reason == 'geo':
+ self.raise_geo_restricted(msg=message)
raise ExtractorError('%s said: %s' % (
raise ExtractorError('%s said: %s' % (
- self.IE_NAME,
self._ERRORS[reason]
), expected=True)
+ self.IE_NAME,
message
), expected=True)
def _real_initialize(self):
self._login()
def _login(self):
def _real_initialize(self):
self._login()
def _login(self):
-
(username, password)
= self._get_login_info()
+
username, password
= self._get_login_info()
if username is None:
return
if username is None:
return
@@
-95,7
+99,7
@@
class VikiBaseIE(InfoExtractor):
login = self._call_api(
'sessions.json', None,
login = self._call_api(
'sessions.json', None,
- 'Logging in
as %s' % username
, post_data=login_form)
+ 'Logging in
'
, post_data=login_form)
self._token = login.get('token')
if not self._token:
self._token = login.get('token')
if not self._token:
@@
-284,7
+288,7
@@
class VikiIE(VikiBaseIE):
if format_id == 'm3u8':
m3u8_formats = self._extract_m3u8_formats(
format_url, video_id, 'mp4',
if format_id == 'm3u8':
m3u8_formats = self._extract_m3u8_formats(
format_url, video_id, 'mp4',
- entry_protocol='m3u8_native',
preference=-1,
+ entry_protocol='m3u8_native',
m3u8_id='m3u8-%s' % protocol, fatal=False)
# Despite CODECS metadata in m3u8 all video-only formats
# are actually video+audio
m3u8_id='m3u8-%s' % protocol, fatal=False)
# Despite CODECS metadata in m3u8 all video-only formats
# are actually video+audio
@@
-373,7
+377,7
@@
class VikiChannelIE(VikiBaseIE):
for video in page['response']:
video_id = video['id']
entries.append(self.url_result(
for video in page['response']:
video_id = video['id']
entries.append(self.url_result(
- 'http://www.viki.com/videos/%s' % video_id, 'Viki'))
+ 'http
s
://www.viki.com/videos/%s' % video_id, 'Viki'))
if not page['pagination']['next']:
break
if not page['pagination']['next']:
break