]>
jfr.im git - yt-dlp.git/blob - youtube_dlc/extractor/vyborymos.py
2 from __future__
import unicode_literals
4 from .common
import InfoExtractor
5 from ..compat
import compat_str
8 class VyboryMosIE(InfoExtractor
):
9 _VALID_URL
= r
'https?://vybory\.mos\.ru/(?:#precinct/|account/channels\?.*?\bstation_id=)(?P<id>\d+)'
11 'url': 'http://vybory.mos.ru/#precinct/13636',
15 'title': 're:^Участковая избирательная комиссия №2231 [0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}$',
16 'description': 'Россия, Москва, улица Введенского, 32А',
20 'skip_download': True,
23 'url': 'http://vybory.mos.ru/account/channels?station_id=13636',
24 'only_matching': True,
27 def _real_extract(self
, url
):
28 station_id
= self
._match
_id
(url
)
30 channels
= self
._download
_json
(
31 'http://vybory.mos.ru/account/channels?station_id=%s' % station_id
,
32 station_id
, 'Downloading channels JSON')
35 for cam_num
, (sid
, hosts
, name
, _
) in enumerate(channels
, 1):
36 for num
, host
in enumerate(hosts
, 1):
38 'url': 'http://%s/master.m3u8?sid=%s' % (host
, sid
),
40 'format_id': 'camera%d-host%d' % (cam_num
, num
),
41 'format_note': '%s, %s' % (name
, host
),
44 info
= self
._download
_json
(
45 'http://vybory.mos.ru/json/voting_stations/%s/%s.json'
46 % (compat_str(station_id
)[:3], station_id
),
47 station_id
, 'Downloading station JSON', fatal
=False)
51 'title': self
._live
_title
(info
['name'] if info
else station_id
),
52 'description': info
.get('address'),