X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=youtube_dl%2Fextractor%2Fivideon.py;h=3ca824f7984f3cac8615644c5babbcacb4e5c4a3;hb=84213ea8d41d5fe1608333a16ac578dccdf9a915;hp=aa05f5413e6c459138055f27029a907a013931b8;hpb=2e02ecbccc9751af54ae2aab9ce973712c78af74;p=youtube-dl diff --git a/youtube_dl/extractor/ivideon.py b/youtube_dl/extractor/ivideon.py index aa05f5413..3ca824f79 100644 --- a/youtube_dl/extractor/ivideon.py +++ b/youtube_dl/extractor/ivideon.py @@ -4,14 +4,17 @@ from __future__ import unicode_literals import re from .common import InfoExtractor -from ..compat import compat_urllib_parse +from ..compat import ( + compat_urllib_parse_urlencode, + compat_urlparse, +) from ..utils import qualities class IvideonIE(InfoExtractor): IE_NAME = 'ivideon' IE_DESC = 'Ivideon TV' - _VALID_URL = r'https?://(?:www\.)?ivideon\.com/tv/camera/(?P\d+-[\da-f]+)/(?P\d+)' + _VALID_URL = r'https?://(?:www\.)?ivideon\.com/tv/(?:[^/]+/)*camera/(?P\d+-[\da-f]+)/(?P\d+)' _TESTS = [{ 'url': 'https://www.ivideon.com/tv/camera/100-916ca13b5c4ad9f564266424a026386d/0/', 'info_dict': { @@ -27,6 +30,9 @@ class IvideonIE(InfoExtractor): }, { 'url': 'https://www.ivideon.com/tv/camera/100-c4ee4cb9ede885cf62dfbe93d7b53783/589824/?lang=ru', 'only_matching': True, + }, { + 'url': 'https://www.ivideon.com/tv/map/22.917923/-31.816406/16/camera/100-e7bc16c7d4b5bbd633fd5350b66dfa9a/0', + 'only_matching': True, }] _QUALITIES = ('low', 'mid', 'hi') @@ -35,8 +41,10 @@ class IvideonIE(InfoExtractor): mobj = re.match(self._VALID_URL, url) server_id, camera_id = mobj.group('id'), mobj.group('camera_id') camera_name, description = None, None + camera_url = compat_urlparse.urljoin( + url, '/tv/camera/%s/%s/' % (server_id, camera_id)) - webpage = self._download_webpage(url, server_id, fatal=False) + webpage = self._download_webpage(camera_url, server_id, fatal=False) if webpage: config_string = self._search_regex( r'var\s+config\s*=\s*({.+?});', webpage, 'config', default=None) @@ -54,7 +62,7 @@ class IvideonIE(InfoExtractor): quality = qualities(self._QUALITIES) formats = [{ - 'url': 'https://streaming.ivideon.com/flv/live?%s' % compat_urllib_parse.urlencode({ + 'url': 'https://streaming.ivideon.com/flv/live?%s' % compat_urllib_parse_urlencode({ 'server': server_id, 'camera': camera_id, 'sessionId': 'demo',