Best Python code snippet using Airtest
all_cameras.py
Source:all_cameras.py
1import json2import urllib3import pandas as pd4from collections import namedtuple5col_index, col_id, col_name, col_title, col_url, col_image_url = 'index', 'id', 'camera_name', 'title', 'url', 'image_url'6def get_all_cameras() -> pd.DataFrame:7 CameraInfo = namedtuple('CameraInfo', [col_index, col_id, col_name, col_title, col_url, col_image_url])8 try:9 _link = 'http://5c328052cb7f5.streamlock.net/live/'10 _f = urllib.request.urlopen(_link)11 _data_string = _f.read()12 _data = json.loads(_data_string)13 except (urllib.error.HTTPError, urllib.error.URLError):14 _data = [{"id": 140, "name": "SHAARHAGAI", "title": "שער ××××",15 "image_file": r"http://iroads.bvtech.co.il/upfiles/SHAARHAGAI/shaarhagay.png", "details": "1,TRUE",16 "host_ip": None, "global_url": "", "server_ip": "", "app_name": "", "app_instance": "",17 "is_recording": 0,18 "start_recording": "0000-00-00 00:00:00", "server_name": None,19 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/SHAARHAGAI.stream",20 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/SHAARHAGAI.stream/playlist.m3u8"},21 {"id": 141, "name": "HASHOMRIM", "title": "×ש××ר××",22 "image_file": r"http://iroads.bvtech.co.il/upfiles/HASHOMRIM/hashomrim.png", "details": "75",23 "host_ip": None, "global_url": "", "server_ip": "", "app_name": "", "app_instance": "",24 "is_recording": 0,25 "start_recording": "0000-00-00 00:00:00", "server_name": None,26 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/HASHOMRIM.stream",27 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/HASHOMRIM.stream/playlist.m3u8"},28 {"id": 143, "name": "LEHAVIM", "title": "×××××",29 "image_file": r"http://iroads.bvtech.co.il/upfiles/LEHAVIM/lehavim.png", "details": "40,TRUE",30 "host_ip": None, "global_url": "", "server_ip": "", "app_name": "", "app_instance": "",31 "is_recording": 0,32 "start_recording": "0000-00-00 00:00:00", "server_name": None,33 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/LEHAVIM.stream",34 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/LEHAVIM.stream/playlist.m3u8"},35 {"id": 144, "name": "KASTINA", "title": "קס××× ×",36 "image_file": r"http://iroads.bvtech.co.il/upfiles/KASTINA/kastina.png", "details": "40,TRUE",37 "host_ip": None, "global_url": "", "server_ip": "", "app_name": "", "app_instance": "",38 "is_recording": 0,39 "start_recording": "0000-00-00 00:00:00", "server_name": None,40 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/KASTINA.stream",41 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/KASTINA.stream/playlist.m3u8"},42 {"id": 146, "name": "GOLANI", "title": "×××× ×",43 "image_file": r"http://iroads.bvtech.co.il/upfiles/GOLANI/golani.png", "details": "77,TRUE",44 "host_ip": None, "global_url": "", "server_ip": "", "app_name": "", "app_instance": "",45 "is_recording": 0,46 "start_recording": "0000-00-00 00:00:00", "server_name": None,47 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/GOLANI.stream",48 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/GOLANI.stream/playlist.m3u8"},49 {"id": 148, "name": "YAGUR", "title": "×××ר",50 "image_file": r"http://iroads.bvtech.co.il/upfiles/YAGUR/YAGUR.png", "details": "70,TRUE",51 "host_ip": None,52 "global_url": "", "server_ip": "", "app_name": "", "app_instance": "", "is_recording": 0,53 "start_recording": "0000-00-00 00:00:00", "server_name": None,54 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/YAGUR.stream",55 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/YAGUR.stream/playlist.m3u8"},56 {"id": 151, "name": "FARADIS", "title": "פ×ר×××ס",57 "image_file": r"http://iroads.bvtech.co.il/upfiles/FARADIS/faradis.png", "details": "4,TRUE",58 "host_ip": None, "global_url": "", "server_ip": "", "app_name": "", "app_instance": "",59 "is_recording": 0,60 "start_recording": "0000-00-00 00:00:00", "server_name": None,61 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/FARADIS.stream",62 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/FARADIS.stream/playlist.m3u8"},63 {"id": 152, "name": "GANDAROM", "title": "×× ×ר××",64 "image_file": r"http://iroads.bvtech.co.il/upfiles/GANDAROM/gandarom.png", "details": "4,TRUE",65 "host_ip": None, "global_url": "", "server_ip": "", "app_name": "", "app_instance": "",66 "is_recording": 0,67 "start_recording": "0000-00-00 00:00:00", "server_name": None,68 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/GANDAROM.stream",69 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/GANDAROM.stream/playlist.m3u8"},70 {"id": 155, "name": "OMER", "title": "×¢××ר",71 "image_file": r"http://iroads.bvtech.co.il/upfiles/OMER/omer.png", "details": "60", "host_ip": None,72 "global_url": "", "server_ip": "", "app_name": "", "app_instance": "", "is_recording": 0,73 "start_recording": "0000-00-00 00:00:00", "server_name": None,74 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/OMER.stream",75 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/OMER.stream/playlist.m3u8"},76 {"id": 156, "name": "LATRUN", "title": "××ר××",77 "image_file": r"http://iroads.bvtech.co.il/upfiles/LATRUN/latrun.png", "details": "1,TRUE",78 "host_ip": None, "global_url": "", "server_ip": "", "app_name": "", "app_instance": "",79 "is_recording": 0,80 "start_recording": "0000-00-00 00:00:00", "server_name": None,81 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/LATRUN.stream",82 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/LATRUN.stream/playlist.m3u8"},83 {"id": 158, "name": "HAMED", "title": "×××",84 "image_file": r"http://iroads.bvtech.co.il/upfiles/HAMED/hemed.png", "details": "1", "host_ip": None,85 "global_url": "", "server_ip": "", "app_name": "", "app_instance": "", "is_recording": 0,86 "start_recording": "0000-00-00 00:00:00", "server_name": None,87 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/HAMED.stream",88 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/HAMED.stream/playlist.m3u8"},89 {"id": 160, "name": "BEITRIMON", "title": "××ת ר××××",90 "image_file": r"http://iroads.bvtech.co.il/upfiles/BEITRIMON/beitrimon.png", "details": "77",91 "host_ip": None, "global_url": "", "server_ip": "", "app_name": "", "app_instance": "",92 "is_recording": 0,93 "start_recording": "0000-00-00 00:00:00", "server_name": None,94 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/BEITRIMON.stream",95 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/BEITRIMON.stream/playlist.m3u8"},96 {"id": 174, "name": "YOKNEAMILIT", "title": "××§× ×¢× ×¢×××ת",97 "image_file": r"http://iroads.bvtech.co.il/upfiles/YOKNEAMILIT/yokneamilit.png", "details": "70",98 "host_ip": None, "global_url": "", "server_ip": "", "app_name": "", "app_instance": "",99 "is_recording": 0,100 "start_recording": "0000-00-00 00:00:00", "server_name": None,101 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/YOKNEAMILIT.stream",102 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/YOKNEAMILIT.stream/playlist.m3u8"},103 {"id": 176, "name": "ASHQELON", "title": "×שק×××",104 "image_file": r"http://iroads.bvtech.co.il/upfiles/ASHQELON/ashqelon.png", "details": "4",105 "host_ip": None,106 "global_url": "", "server_ip": "", "app_name": "", "app_instance": "", "is_recording": 0,107 "start_recording": "0000-00-00 00:00:00", "server_name": None,108 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/ASHQELON.stream",109 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/ASHQELON.stream/playlist.m3u8"},110 {"id": 177, "name": "PLUGOT", "title": "פ××××ת",111 "image_file": r"http://iroads.bvtech.co.il/upfiles/PLUGOT/plugot.png", "details": "40",112 "host_ip": None,113 "global_url": "", "server_ip": "", "app_name": "", "app_instance": "", "is_recording": 0,114 "start_recording": "0000-00-00 00:00:00", "server_name": None,115 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/PLUGOT.stream",116 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/PLUGOT.stream/playlist.m3u8"},117 {"id": 178, "name": "ALUFSADE", "title": "××××£ ש××",118 "image_file": r"http://iroads.bvtech.co.il/upfiles/ALUFSADE/alufsade.png", "details": "4",119 "host_ip": None,120 "global_url": "", "server_ip": "", "app_name": "", "app_instance": "", "is_recording": 0,121 "start_recording": "0000-00-00 00:00:00", "server_name": None,122 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/ALUFSADE.stream",123 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/ALUFSADE.stream/playlist.m3u8"},124 {"id": 179, "name": "HASIRA", "title": "×ס×ר×",125 "image_file": r"http://iroads.bvtech.co.il/upfiles/HASIRA/hasira.png", "details": "2",126 "host_ip": None,127 "global_url": "", "server_ip": "", "app_name": "", "app_instance": "", "is_recording": 0,128 "start_recording": "0000-00-00 00:00:00", "server_name": None,129 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/HASIRA.stream",130 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/HASIRA.stream/playlist.m3u8"},131 {"id": 180, "name": "GILAT", "title": "×××ת",132 "image_file": r"http://iroads.bvtech.co.il/upfiles/GILAT/gilat.png", "details": "25", "host_ip": None,133 "global_url": "", "server_ip": "", "app_name": "", "app_instance": "", "is_recording": 0,134 "start_recording": "0000-00-00 00:00:00", "server_name": None,135 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/GILAT.stream",136 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/GILAT.stream/playlist.m3u8"},137 {"id": 181, "name": "KARMIELEAST", "title": "×ר×××× ××ר×",138 "image_file": r"http://iroads.bvtech.co.il/upfiles/KARMIELEAST/karmieleast.png", "details": "85",139 "host_ip": None, "global_url": "", "server_ip": "", "app_name": "", "app_instance": "",140 "is_recording": 0,141 "start_recording": "0000-00-00 00:00:00", "server_name": None,142 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/KARMIELEAST.stream",143 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/KARMIELEAST.stream/playlist.m3u8"},144 {"id": 182, "name": "AKOEAST", "title": "×¢×× ××ר×",145 "image_file": r"http://iroads.bvtech.co.il/upfiles/AKOEAST/akoeast.png", "details": "4",146 "host_ip": None,147 "global_url": "", "server_ip": "", "app_name": "", "app_instance": "", "is_recording": 0,148 "start_recording": "0000-00-00 00:00:00", "server_name": None,149 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/AKOEAST.stream",150 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/AKOEAST.stream/playlist.m3u8"},151 {"id": 183, "name": "EVLAIM", "title": "××××××",152 "image_file": r"http://iroads.bvtech.co.il/upfiles/EVLAIM/evlaim.png", "details": "70",153 "host_ip": None,154 "global_url": "", "server_ip": "", "app_name": "", "app_instance": "", "is_recording": 0,155 "start_recording": "0000-00-00 00:00:00", "server_name": None,156 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/EVLAIM.stream",157 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/EVLAIM.stream/playlist.m3u8"},158 {"id": 184, "name": "SHILAT", "title": "ש××ת",159 "image_file": r"http://iroads.bvtech.co.il/upfiles/SHILAT/shilat.png", "details": "443",160 "host_ip": None,161 "global_url": "", "server_ip": "", "app_name": "", "app_instance": "", "is_recording": 0,162 "start_recording": "0000-00-00 00:00:00", "server_name": None,163 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/SHILAT.stream",164 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/SHILAT.stream/playlist.m3u8"},165 {"id": 185, "name": "BALFURIYA", "title": "××פ×ר××",166 "image_file": r"http://iroads.bvtech.co.il/upfiles/BALFURIYA/balfuriya.png", "details": "60",167 "host_ip": None, "global_url": "", "server_ip": "", "app_name": "", "app_instance": "",168 "is_recording": 0,169 "start_recording": "0000-00-00 00:00:00", "server_name": None,170 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/BALFURIYA.stream",171 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/BALFURIYA.stream/playlist.m3u8"},172 {"id": 186, "name": "MEGIDO", "title": "×××××",173 "image_file": r"http://iroads.bvtech.co.il/upfiles/MEGIDO/megido.png", "details": "65",174 "host_ip": None,175 "global_url": "", "server_ip": "", "app_name": "", "app_instance": "", "is_recording": 0,176 "start_recording": "0000-00-00 00:00:00", "server_name": None,177 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/MEGIDO.stream",178 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/MEGIDO.stream/playlist.m3u8"},179 {"id": 187, "name": "OLGA", "title": "×××××",180 "image_file": r"http://iroads.bvtech.co.il/upfiles/OLGA/olga.png", "details": "2", "host_ip": None,181 "global_url": "", "server_ip": "", "app_name": "", "app_instance": "", "is_recording": 0,182 "start_recording": "0000-00-00 00:00:00", "server_name": None,183 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/OLGA.stream",184 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/OLGA.stream/playlist.m3u8"},185 {"id": 188, "name": "RAANANACENTER", "title": "×¨×¢× × × ×ר××",186 "image_file": r"http://iroads.bvtech.co.il/upfiles/RAANANACENTER/raananacenter.png", "details": "4",187 "host_ip": None, "global_url": "", "server_ip": "", "app_name": "", "app_instance": "",188 "is_recording": 0,189 "start_recording": "0000-00-00 00:00:00", "server_name": None,190 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/RAANANACENTER.stream",191 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/RAANANACENTER.stream/playlist.m3u8"},192 {"id": 189, "name": "RISHONLEZION", "title": "ר×ש×× ×צ×××",193 "image_file": r"http://iroads.bvtech.co.il/upfiles/RISHONLEZION/rishonlezion.png", "details": "4",194 "host_ip": None, "global_url": "", "server_ip": "", "app_name": "", "app_instance": "",195 "is_recording": 0,196 "start_recording": "0000-00-00 00:00:00", "server_name": None,197 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/RISHONLEZION.stream",198 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/RISHONLEZION.stream/playlist.m3u8"},199 {"id": 190, "name": "POLEG", "title": "פ×××",200 "image_file": r"http://iroads.bvtech.co.il/upfiles/POLEG/poleg.png", "details": "2", "host_ip": None,201 "global_url": "", "server_ip": "", "app_name": "", "app_instance": "", "is_recording": 0,202 "start_recording": "0000-00-00 00:00:00", "server_name": None,203 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/POLEG.stream",204 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/POLEG.stream/playlist.m3u8"},205 {"id": 193, "name": "BEITOVED", "title": "××ת ×¢×××",206 "image_file": r"http://iroads.bvtech.co.il/upfiles/BEITOVED/beitoved.png", "details": "42",207 "host_ip": None, "global_url": "", "server_ip": "", "app_name": "", "app_instance": "",208 "is_recording": 0,209 "start_recording": "0000-00-00 00:00:00", "server_name": None,210 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/BEITOVED.stream",211 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/BEITOVED.stream/playlist.m3u8"},212 {"id": 194, "name": "BILU", "title": "×××\"×",213 "image_file": r"http://iroads.bvtech.co.il/upfiles/BILU/bilu.png", "details": "40", "host_ip": None,214 "global_url": "", "server_ip": "", "app_name": "", "app_instance": "", "is_recording": 0,215 "start_recording": "0000-00-00 00:00:00", "server_name": None,216 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/BILU.stream",217 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/BILU.stream/playlist.m3u8"},218 {"id": 195, "name": "BNEIDROR", "title": "×× × ×ר×ר",219 "image_file": r"http://iroads.bvtech.co.il/upfiles/BNEIDROR/bneidror.png", "details": "4",220 "host_ip": None,221 "global_url": "", "server_ip": "", "app_name": "", "app_instance": "", "is_recording": 0,222 "start_recording": "0000-00-00 00:00:00", "server_name": None,223 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/BNEIDROR.stream",224 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/BNEIDROR.stream/playlist.m3u8"},225 {"id": 196, "name": "GANOT", "title": "×× ×ת",226 "image_file": r"http://iroads.bvtech.co.il/upfiles/GANOT/ganot.png", "details": "1", "host_ip": None,227 "global_url": "", "server_ip": "", "app_name": "", "app_instance": "", "is_recording": 0,228 "start_recording": "0000-00-00 00:00:00", "server_name": None,229 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/GANOT.stream",230 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/GANOT.stream/playlist.m3u8"},231 {"id": 197, "name": "GEDERA", "title": "××ר×",232 "image_file": r"http://iroads.bvtech.co.il/upfiles/GEDERA/gedera.png", "details": "7",233 "host_ip": None,234 "global_url": "", "server_ip": "", "app_name": "", "app_instance": "", "is_recording": 0,235 "start_recording": "0000-00-00 00:00:00", "server_name": None,236 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/GEDERA.stream",237 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/GEDERA.stream/playlist.m3u8"},238 {"id": 199, "name": "GINATON", "title": "××× ×ª××",239 "image_file": r"http://iroads.bvtech.co.il/upfiles/GINATON/ginaton.png", "details": "40",240 "host_ip": None,241 "global_url": "", "server_ip": "", "app_name": "", "app_instance": "", "is_recording": 0,242 "start_recording": "0000-00-00 00:00:00", "server_name": None,243 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/GINATON.stream",244 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/GINATON.stream/playlist.m3u8"},245 {"id": 201, "name": "NEVEILAN", "title": "× ××× ××××",246 "image_file": r"http://iroads.bvtech.co.il/upfiles/NEVEILAN/neveilan.png", "details": "1",247 "host_ip": None,248 "global_url": "", "server_ip": "", "app_name": "", "app_instance": "", "is_recording": 0,249 "start_recording": "0000-00-00 00:00:00", "server_name": None,250 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/NEVEILAN.stream",251 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/NEVEILAN.stream/playlist.m3u8"},252 {"id": 202, "name": "TAYASIM", "title": "×××ס××",253 "image_file": r"http://iroads.bvtech.co.il/upfiles/TAYASIM/tayasim.png", "details": "40",254 "host_ip": None,255 "global_url": "", "server_ip": "", "app_name": "", "app_instance": "", "is_recording": 0,256 "start_recording": "0000-00-00 00:00:00", "server_name": None,257 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/TAYASIM.stream",258 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/TAYASIM.stream/playlist.m3u8"},259 {"id": 203, "name": "SHORES", "title": "ש×רש",260 "image_file": r"http://iroads.bvtech.co.il/upfiles/SHORES/shoresh.png", "details": "1",261 "host_ip": None,262 "global_url": "", "server_ip": "", "app_name": "", "app_instance": "", "is_recording": 0,263 "start_recording": "0000-00-00 00:00:00", "server_name": None,264 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/SHORES.stream",265 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/SHORES.stream/playlist.m3u8"},266 {"id": 205, "name": "HAKFARHAYAROK", "title": "××פר ××ר×ק",267 "image_file": r"http://iroads.bvtech.co.il/upfiles/HAKFARHAYAROK/hakfarhayarok.png", "details": "5",268 "host_ip": None, "global_url": "", "server_ip": "", "app_name": "", "app_instance": "",269 "is_recording": 0,270 "start_recording": "0000-00-00 00:00:00", "server_name": None,271 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/HAKFARHAYAROK.stream",272 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/HAKFARHAYAROK.stream/playlist.m3u8"},273 {"id": 206, "name": "TIKVA", "title": "תק×××",274 "image_file": r"http://iroads.bvtech.co.il/upfiles/TIKVA/tikva.png", "details": "5", "host_ip": None,275 "global_url": "", "server_ip": "", "app_name": "", "app_instance": "", "is_recording": 0,276 "start_recording": "0000-00-00 00:00:00", "server_name": None,277 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/TIKVA.stream",278 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/TIKVA.stream/playlist.m3u8"},279 {"id": 208, "name": "CEASARIA", "title": "ק×סר××",280 "image_file": r"http://iroads.bvtech.co.il/upfiles/CEASARIA/ceasaria.png", "details": "2",281 "host_ip": None,282 "global_url": "", "server_ip": "", "app_name": "", "app_instance": "", "is_recording": 0,283 "start_recording": "0000-00-00 00:00:00", "server_name": None,284 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/CEASARIA.stream",285 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/CEASARIA.stream/playlist.m3u8"},286 {"id": 209, "name": "TELYOSEF", "title": "×ª× ××סף",287 "image_file": r"http://iroads.bvtech.co.il/upfiles/TELYOSEF/telyosef.png", "details": "71",288 "host_ip": None, "global_url": "", "server_ip": "", "app_name": "", "app_instance": "",289 "is_recording": 0,290 "start_recording": "0000-00-00 00:00:00", "server_name": None,291 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/TELYOSEF.stream",292 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/TELYOSEF.stream/playlist.m3u8"},293 {"id": 210, "name": "MAHANEOFER", "title": "××× × ×¢×פר",294 "image_file": r"http://iroads.bvtech.co.il/upfiles/MAHANEOFER/mahaneofer.png", "details": "443",295 "host_ip": None, "global_url": "", "server_ip": "", "app_name": "", "app_instance": "",296 "is_recording": 0,297 "start_recording": "0000-00-00 00:00:00", "server_name": None,298 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/MAHANEOFER.stream",299 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/MAHANEOFER.stream/playlist.m3u8"},300 {"id": 211, "name": "BEITHORON", "title": "××ת ××ר××",301 "image_file": r"http://iroads.bvtech.co.il/upfiles/BEITHORON/beithoron.png", "details": "443",302 "host_ip": None, "global_url": "", "server_ip": "", "app_name": "", "app_instance": "",303 "is_recording": 0,304 "start_recording": "0000-00-00 00:00:00", "server_name": None,305 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/BEITHORON.stream",306 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/BEITHORON.stream/playlist.m3u8"},307 {"id": 213, "name": "HATISHBI", "title": "×ת×ש××",308 "image_file": r"http://iroads.bvtech.co.il/upfiles/HATISHBI/hatishbi.png", "details": "70",309 "host_ip": None, "global_url": "", "server_ip": "", "app_name": "", "app_instance": "",310 "is_recording": 0,311 "start_recording": "0000-00-00 00:00:00", "server_name": None,312 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/HATISHBI.stream",313 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/HATISHBI.stream/playlist.m3u8"},314 {"id": 218, "name": "HAREL", "title": "×ר××",315 "image_file": r"http://iroads.bvtech.co.il/upfiles/HAREL/harel.png", "details": "1", "host_ip": None,316 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",317 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,318 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/HAREL.stream",319 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/HAREL.stream/playlist.m3u8"},320 {"id": 219, "name": "ATAROT", "title": "×¢×ר×ת",321 "image_file": r"http://iroads.bvtech.co.il/upfiles/ATAROT/atarot.png", "details": "443",322 "host_ip": None,323 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",324 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,325 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/ATAROT.stream",326 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/ATAROT.stream/playlist.m3u8"},327 {"id": 225, "name": "MORASHA", "title": "××רש×",328 "image_file": r"http://iroads.bvtech.co.il/upfiles/MORASHA/morasha.png", "details": "5",329 "host_ip": None,330 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",331 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,332 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/MORASHA.stream",333 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/MORASHA.stream/playlist.m3u8"},334 {"id": 226, "name": "SHAPIRIM", "title": "שפ×ר××",335 "image_file": r"http://iroads.bvtech.co.il/upfiles/SHAPIRIM/shapirim.png", "details": "1",336 "host_ip": None,337 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",338 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,339 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/SHAPIRIM.stream",340 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/SHAPIRIM.stream/playlist.m3u8"},341 {"id": 227, "name": "YAGEL", "title": "×××",342 "image_file": r"http://iroads.bvtech.co.il/upfiles/YAGEL/yagel.png", "details": "1", "host_ip": None,343 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",344 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,345 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/YAGEL.stream",346 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/YAGEL.stream/playlist.m3u8"},347 {"id": 228, "name": "NATBAG", "title": "× ×ª×\"×",348 "image_file": r"http://iroads.bvtech.co.il/upfiles/NATBAG/natbag.png", "details": "1",349 "host_ip": None,350 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",351 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,352 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/NATBAG.stream",353 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/NATBAG.stream/playlist.m3u8"},354 {"id": 229, "name": "LOD", "title": "×××",355 "image_file": r"http://iroads.bvtech.co.il/upfiles/LOD/lod.png",356 "details": "1", "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",357 "app_instance": "_definst_", "is_recording": 0, "start_recording": "0000-00-00 00:00:00",358 "server_name": None,359 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/LOD.stream",360 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/LOD.stream/playlist.m3u8"},361 {"id": 230, "name": "SHAALABIM", "title": "שע××××",362 "image_file": r"http://iroads.bvtech.co.il/upfiles/SHAALABIM/shaalabim.PNG", "details": "1",363 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",364 "app_instance": "_definst_",365 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,366 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/SHAALABIM.stream",367 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/SHAALABIM.stream/playlist.m3u8"},368 {"id": 231, "name": "MITZPEMODIIN", "title": "××¦×¤× ×××××¢××",369 "image_file": r"http://iroads.bvtech.co.il/upfiles/MITZPEMODIIN/mitzpemodiin.png", "details": "443",370 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",371 "app_instance": "_definst_",372 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,373 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/MITZPEMODIIN.stream",374 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/MITZPEMODIIN.stream/playlist.m3u8"},375 {"id": 232, "name": "MITKANADAM", "title": "××ª×§× ×××",376 "image_file": r"http://iroads.bvtech.co.il/upfiles/MITKANADAM/mitkanadam.png", "details": "443",377 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",378 "app_instance": "_definst_",379 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,380 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/MITKANADAM.stream",381 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/MITKANADAM.stream/playlist.m3u8"},382 {"id": 233, "name": "KARMIELWEST", "title": "×ר×××× ×ער×",383 "image_file": r"http://iroads.bvtech.co.il/upfiles/KARMIELWEST/karmielwest.png", "details": "85",384 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",385 "app_instance": "_definst_",386 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,387 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/KARMIELWEST.stream",388 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/KARMIELWEST.stream/playlist.m3u8"},389 {"id": 234, "name": "ZICHRONYAAKOV", "title": "×××ר×× ×עק×",390 "image_file": r"http://iroads.bvtech.co.il/upfiles/ZICHRONYAAKOV/zichronyaakov.PNG", "details": "4",391 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",392 "app_instance": "_definst_",393 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,394 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/ZICHRONYAAKOV.stream",395 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/ZICHRONYAAKOV.stream/playlist.m3u8"},396 {"id": 235, "name": "ORAKIVA", "title": "××ר עק××× (××ר×ת)",397 "image_file": r"http://iroads.bvtech.co.il/upfiles/ORAKIVA/orakiva.PNG", "details": "4",398 "host_ip": None,399 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",400 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,401 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/ORAKIVA.stream",402 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/ORAKIVA.stream/playlist.m3u8"},403 {"id": 236, "name": "MACABIMREUT", "title": "××××× ×¨×¢×ת",404 "image_file": r"http://iroads.bvtech.co.il/upfiles/MACABIMREUT/macabimreut.png", "details": "443",405 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",406 "app_instance": "_definst_",407 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,408 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/MACABIMREUT.stream",409 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/MACABIMREUT.stream/playlist.m3u8"},410 {"id": 238, "name": "BATZRA", "title": "×צר×",411 "image_file": r"http://iroads.bvtech.co.il/upfiles/BATZRA/batzra.png", "details": "4",412 "host_ip": None,413 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",414 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,415 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/BATZRA.stream",416 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/BATZRA.stream/playlist.m3u8"},417 {"id": 240, "name": "BARILAN", "title": "×ר ××××",418 "image_file": r"http://iroads.bvtech.co.il/upfiles/BARILAN/barilan.png", "details": "4",419 "host_ip": None,420 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",421 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,422 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/BARILAN.stream",423 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/BARILAN.stream/playlist.m3u8"},424 {"id": 241, "name": "BEITSHEMESH", "title": "××ת ש×ש",425 "image_file": r"http://iroads.bvtech.co.il/upfiles/BEITSHEMESH/beitshemesh.png", "details": "38",426 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",427 "app_instance": "_definst_",428 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,429 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/BEITSHEMESH.stream",430 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/BEITSHEMESH.stream/playlist.m3u8"},431 {"id": 242, "name": "RAANANANORTH", "title": "×¨×¢× × × ×¦×¤××",432 "image_file": r"http://iroads.bvtech.co.il/upfiles/RAANANANORTH/raanananorth.png", "details": "4",433 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",434 "app_instance": "_definst_",435 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,436 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/RAANANANORTH.stream",437 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/RAANANANORTH.stream/playlist.m3u8"},438 {"id": 243, "name": "ADANIM", "title": "×¢×× ××",439 "image_file": r"http://iroads.bvtech.co.il/upfiles/ADANIM/adanim.png", "details": "40",440 "host_ip": None,441 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",442 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,443 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/ADANIM.stream",444 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/ADANIM.stream/playlist.m3u8"},445 {"id": 244, "name": "ERON", "title": "×¢×ר××",446 "image_file": r"http://iroads.bvtech.co.il/upfiles/ERON/eron.png", "details": "65", "host_ip": None,447 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",448 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,449 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/ERON.stream",450 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/ERON.stream/playlist.m3u8"},451 {"id": 245, "name": "ELAL", "title": "××-×¢×",452 "image_file": r"http://iroads.bvtech.co.il/upfiles/ELAL/elal.png", "details": "40", "host_ip": None,453 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",454 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,455 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/ELAL.stream",456 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/ELAL.stream/playlist.m3u8"},457 {"id": 246, "name": "BEITLID", "title": "××ת ×××",458 "image_file": r"http://iroads.bvtech.co.il/upfiles/BEITLID/beitlid.png", "details": "4",459 "host_ip": None,460 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",461 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,462 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/BEITLID.stream",463 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/BEITLID.stream/playlist.m3u8"},464 {"id": 247, "name": "NIRGALIM", "title": "× ×ר ××××",465 "image_file": r"http://iroads.bvtech.co.il/upfiles/NIRGALIM/nirgalim.PNG", "details": "41",466 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",467 "app_instance": "_definst_",468 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,469 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/NIRGALIM.stream",470 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/NIRGALIM.stream/playlist.m3u8"},471 {"id": 249, "name": "MESUBIM", "title": "×ס××××",472 "image_file": r"http://iroads.bvtech.co.il/upfiles/MESUBIM/mesubim.PNG", "details": "4",473 "host_ip": None,474 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",475 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,476 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/MESUBIM.stream",477 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/MESUBIM.stream/playlist.m3u8"},478 {"id": 250, "name": "ELISHEMA", "title": "×××ש××¢",479 "image_file": r"http://iroads.bvtech.co.il/upfiles/ELISHEMA/elishema.png", "details": "531",480 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",481 "app_instance": "_definst_",482 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,483 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/ELISHEMA.stream",484 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/ELISHEMA.stream/playlist.m3u8"},485 {"id": 251, "name": "KFRASHMARIYAHU", "title": "×פר ש×ר×××",486 "image_file": r"http://iroads.bvtech.co.il/upfiles/KFRASHMARIYAHU/kfarshmaryahu.png", "details": "2",487 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",488 "app_instance": "_definst_",489 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,490 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/KFRASHMARIYAHU.stream",491 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/KFRASHMARIYAHU.stream/playlist.m3u8"},492 {"id": 252, "name": "MIGDALTZEDEK", "title": "×××× ×¦×ק",493 "image_file": r"http://iroads.bvtech.co.il/upfiles/MIGDALTZEDEK/migdaltzedek.PNG", "details": "444",494 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",495 "app_instance": "_definst_",496 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,497 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/MIGDALTZEDEK.stream",498 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/MIGDALTZEDEK.stream/playlist.m3u8"},499 {"id": 254, "name": "NAHSHONIM", "title": "× ×ש×× ××",500 "image_file": r"http://iroads.bvtech.co.il/upfiles/NAHSHONIM/nahshonim.PNG", "details": "444",501 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",502 "app_instance": "_definst_",503 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,504 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/NAHSHONIM.stream",505 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/NAHSHONIM.stream/playlist.m3u8"},506 {"id": 256, "name": "REEM", "title": "ר××",507 "image_file": r"http://iroads.bvtech.co.il/upfiles/REEM/reem.PNG", "details": "40", "host_ip": None,508 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",509 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,510 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/REEM.stream",511 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/REEM.stream/playlist.m3u8"},512 {"id": 257, "name": "SHIMSHON", "title": "ש×ש××",513 "image_file": r"http://iroads.bvtech.co.il/upfiles/SHIMSHON/shimshon.PNG", "details": "38",514 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",515 "app_instance": "_definst_",516 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,517 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/SHIMSHON.stream",518 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/SHIMSHON.stream/playlist.m3u8"},519 {"id": 258, "name": "GORAL", "title": "××ר×",520 "image_file": r"http://iroads.bvtech.co.il/upfiles/GORAL/goral.png", "details": "40", "host_ip": None,521 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",522 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,523 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/GORAL.stream",524 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/GORAL.stream/playlist.m3u8"},525 {"id": 259, "name": "GANYAVNE", "title": "×× ××× ×",526 "image_file": r"http://iroads.bvtech.co.il/upfiles/GANYAVNE/ganyavne.PNG", "details": "4",527 "host_ip": None,528 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",529 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,530 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/GANYAVNE.stream",531 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/GANYAVNE.stream/playlist.m3u8"},532 {"id": 260, "name": "HAOGEN", "title": "××¢×××",533 "image_file": r"http://iroads.bvtech.co.il/upfiles/HAOGEN/haogen.PNG", "details": "4",534 "host_ip": None,535 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",536 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,537 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/HAOGEN.stream",538 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/HAOGEN.stream/playlist.m3u8"},539 {"id": 261, "name": "ZARZIR", "title": "×ר××ר",540 "image_file": r"http://iroads.bvtech.co.il/upfiles/ZARZIR/zarzir.PNG", "details": "77",541 "host_ip": None,542 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",543 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,544 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/ZARZIR.stream",545 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/ZARZIR.stream/playlist.m3u8"},546 {"id": 262, "name": "HORASHIM", "title": "××רש××",547 "image_file": r"http://iroads.bvtech.co.il/upfiles/HORASHIM/horashim.png", "details": "531",548 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",549 "app_instance": "_definst_",550 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,551 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/HORASHIM.stream",552 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/HORASHIM.stream/playlist.m3u8"},553 {"id": 263, "name": "GIVATSHMUEL", "title": "××עת ש××××",554 "image_file": r"http://iroads.bvtech.co.il/upfiles/GIVATSHMUEL/Untitled.png", "details": "4",555 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",556 "app_instance": "_definst_",557 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,558 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/GIVATSHMUEL.stream",559 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/GIVATSHMUEL.stream/playlist.m3u8"},560 {"id": 265, "name": "GEHA", "title": "×××",561 "image_file": r"http://iroads.bvtech.co.il/upfiles/GEHA/geha.png", "details": "4", "host_ip": None,562 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",563 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,564 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/GEHA.stream",565 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/GEHA.stream/playlist.m3u8"},566 {"id": 266, "name": "NITZANIM", "title": "× ××¦× ××",567 "image_file": r"http://iroads.bvtech.co.il/upfiles/NITZANIM/nitzanim.png", "details": "4",568 "host_ip": None,569 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",570 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,571 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/NITZANIM.stream",572 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/NITZANIM.stream/playlist.m3u8"},573 {"id": 268, "name": "MAAHAZKVISH6", "title": "×××× ×××ש 6",574 "image_file": r"http://iroads.bvtech.co.il/upfiles/MAAHAZKVISH6/maahaz.png", "details": "6",575 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",576 "app_instance": "_definst_",577 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,578 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/MAAHAZKVISH6.stream",579 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/MAAHAZKVISH6.stream/playlist.m3u8"},580 {"id": 269, "name": "TZRIFIN", "title": "צר×פ××",581 "image_file": r"http://iroads.bvtech.co.il/upfiles/TZRIFIN/tzrifin.PNG", "details": "44",582 "host_ip": None,583 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",584 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,585 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/TZRIFIN.stream",586 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/TZRIFIN.stream/playlist.m3u8"},587 {"id": 270, "name": "HAMOVIL", "title": "××××××",588 "image_file": r"http://iroads.bvtech.co.il/upfiles/HAMOVIL/hamovil.png", "details": "77",589 "host_ip": None,590 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",591 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,592 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/HAMOVIL.stream",593 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/HAMOVIL.stream/playlist.m3u8"},594 {"id": 275, "name": "ABUGOSH", "title": "××× ××ש",595 "image_file": r"http://iroads.bvtech.co.il/upfiles/ABUGOSH/abugosh.png", "details": "1",596 "host_ip": None,597 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",598 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,599 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/ABUGOSH.stream",600 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/ABUGOSH.stream/playlist.m3u8"},601 {"id": 276, "name": "ACHIHOD", "title": "××××××",602 "image_file": r"http://iroads.bvtech.co.il/upfiles/ACHIHOD/ahihud.png", "details": "85",603 "host_ip": None,604 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",605 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,606 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/ACHIHOD.stream",607 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/ACHIHOD.stream/playlist.m3u8"},608 {"id": 279, "name": "ADHALOM", "title": "×¢× ××××",609 "image_file": r"http://iroads.bvtech.co.il/upfiles/ADHALOM/adhalom.png", "details": "4",610 "host_ip": None,611 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",612 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,613 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/ADHALOM.stream",614 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/ADHALOM.stream/playlist.m3u8"},615 {"id": 281, "name": "AHISEMECH", "title": "×××ס××",616 "image_file": r"http://iroads.bvtech.co.il/upfiles/AHISEMECH/AHISEMECH.PNG", "details": "40",617 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",618 "app_instance": "_definst_",619 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,620 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/AHISEMECH.stream",621 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/AHISEMECH.stream/playlist.m3u8"},622 {"id": 282, "name": "ALON", "title": "××××",623 "image_file": r"http://iroads.bvtech.co.il/upfiles/ALON/ALON.PNG", "details": "65", "host_ip": None,624 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",625 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,626 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/ALON.stream",627 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/ALON.stream/playlist.m3u8"},628 {"id": 283, "name": "AMIAD", "title": "×¢×××¢×",629 "image_file": r"http://iroads.bvtech.co.il/upfiles/AMIAD/AMIAD.PNG", "details": "85", "host_ip": None,630 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",631 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,632 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/AMIAD.stream",633 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/AMIAD.stream/playlist.m3u8"},634 {"id": 284, "name": "ATLIT", "title": "עת××ת",635 "image_file": r"http://iroads.bvtech.co.il/upfiles/ATLIT/ATLIT.PNG", "details": "4", "host_ip": None,636 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",637 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,638 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/ATLIT.stream",639 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/ATLIT.stream/playlist.m3u8"},640 {"id": 286, "name": "BAFTISTIM", "title": "×פ××ס×××",641 "image_file": r"http://iroads.bvtech.co.il/upfiles/BAFTISTIM/BAFTISTIM.PNG", "details": "40",642 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",643 "app_instance": "_definst_",644 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,645 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/BAFTISTIM.stream",646 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/BAFTISTIM.stream/playlist.m3u8"},647 {"id": 287, "name": "BEERGANIMPRIOR", "title": "××ר ×× ×× ×¤×¨× ××ר",648 "image_file": r"http://iroads.bvtech.co.il/upfiles/BEERGANIMPRIOR/BEERGANIMPRIOR.PNG", "details": "4",649 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",650 "app_instance": "_definst_",651 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,652 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/BEERGANIMPRIOR.stream",653 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/BEERGANIMPRIOR.stream/playlist.m3u8"},654 {"id": 288, "name": "BEITDAGAN", "title": "××ת ×××",655 "image_file": r"http://iroads.bvtech.co.il/upfiles/BEITDAGAN/BEITDAGAN.PNG", "details": "44",656 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",657 "app_instance": "_definst_",658 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,659 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/BEITDAGAN.stream",660 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/BEITDAGAN.stream/playlist.m3u8"},661 {"id": 289, "name": "BEITRABAN", "title": "××ת ר××",662 "image_file": r"http://iroads.bvtech.co.il/upfiles/BEITRABAN/BEITRABAN.PNG", "details": "7",663 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",664 "app_instance": "_definst_",665 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,666 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/BEITRABAN.stream",667 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/BEITRABAN.stream/playlist.m3u8"},668 {"id": 290, "name": "BEITYEHOSHUA", "title": "××ת ×××שע",669 "image_file": r"http://iroads.bvtech.co.il/upfiles/BEITYEHOSHUA/BEITYEHOSHUA.PNG", "details": "553",670 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",671 "app_instance": "_definst_",672 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,673 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/BEITYEHOSHUA.stream",674 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/BEITYEHOSHUA.stream/playlist.m3u8"},675 {"id": 291, "name": "BINYAMINA", "title": "×× ×××× ×",676 "image_file": r"http://iroads.bvtech.co.il/upfiles/BINYAMINA/BINYAMINA.PNG", "details": "4",677 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",678 "app_instance": "_definst_",679 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,680 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/BINYAMINA.stream",681 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/BINYAMINA.stream/playlist.m3u8"},682 {"id": 293, "name": "BRACHYA", "title": "×ר×××",683 "image_file": r"http://iroads.bvtech.co.il/upfiles/BRACHYA/BRACHYA.PNG", "details": "4",684 "host_ip": None,685 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",686 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,687 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/BRACHYA.stream",688 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/BRACHYA.stream/playlist.m3u8"},689 {"id": 294, "name": "DGANYAROAD57", "title": "××× ×× ×××ש 57",690 "image_file": r"http://iroads.bvtech.co.il/upfiles/DGANYAROAD57/DGANYAROAD57.PNG", "details": "57",691 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",692 "app_instance": "_definst_",693 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,694 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/DGANYAROAD57.stream",695 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/DGANYAROAD57.stream/playlist.m3u8"},696 {"id": 299, "name": "EMUNIM", "title": "×××× ××",697 "image_file": r"http://iroads.bvtech.co.il/upfiles/EMUNIM/EMUNIM.PNG", "details": "4",698 "host_ip": None,699 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",700 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,701 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/EMUNIM.stream",702 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/EMUNIM.stream/playlist.m3u8"},703 {"id": 300, "name": "ESHELHANASI", "title": "××©× ×× ×©××",704 "image_file": r"http://iroads.bvtech.co.il/upfiles/ESHELHANASI/ESHELHANASI.PNG", "details": "25",705 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",706 "app_instance": "_definst_",707 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,708 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/ESHELHANASI.stream",709 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/ESHELHANASI.stream/playlist.m3u8"},710 {"id": 301, "name": "GANRAVE", "title": "×× ×¨×××",711 "image_file": r"http://iroads.bvtech.co.il/upfiles/GANRAVE/GANRAVE.PNG", "details": "4",712 "host_ip": None,713 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",714 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,715 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/GANRAVE.stream",716 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/GANRAVE.stream/playlist.m3u8"},717 {"id": 302, "name": "GESHERHASHALOM", "title": "×שר ×ש×××",718 "image_file": r"http://iroads.bvtech.co.il/upfiles/GESHERHASHALOM/gesherhashalom.png", "details": "2",719 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",720 "app_instance": "_definst_",721 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,722 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/GESHERHASHALOM.stream",723 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/GESHERHASHALOM.stream/playlist.m3u8"},724 {"id": 303, "name": "GILAM", "title": "×××¢×",725 "image_file": r"http://iroads.bvtech.co.il/upfiles/GILAM/GILAM.PNG", "details": "79", "host_ip": None,726 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",727 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,728 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/GILAM.stream",729 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/GILAM.stream/playlist.m3u8"},730 {"id": 304, "name": "GILOLONG", "title": "×××× ×× ××¨× ×ר×××",731 "image_file": r"http://iroads.bvtech.co.il/upfiles/GILOLONG/GILOLONG.PNG", "details": "60",732 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",733 "app_instance": "_definst_",734 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,735 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/GILOLONG.stream",736 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/GILOLONG.stream/playlist.m3u8"},737 {"id": 305, "name": "GILOSHORT", "title": "×××× ×× ××¨× ×§×¦×¨×",738 "image_file": r"http://iroads.bvtech.co.il/upfiles/GILOSHORT/GILOSHORT.PNG", "details": "60",739 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",740 "app_instance": "_definst_",741 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,742 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/GILOSHORT.stream",743 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/GILOSHORT.stream/playlist.m3u8"},744 {"id": 306, "name": "GIMZO", "title": "×××××",745 "image_file": r"http://iroads.bvtech.co.il/upfiles/GIMZO/GIMZO.PNG", "details": "443",746 "host_ip": None,747 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",748 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,749 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/GIMZO.stream",750 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/GIMZO.stream/playlist.m3u8"},751 {"id": 307, "name": "GIVATI", "title": "××עת×",752 "image_file": r"http://iroads.bvtech.co.il/upfiles/GIVATI/GIVATI.PNG", "details": "35",753 "host_ip": None,754 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",755 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,756 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/GIVATI.stream",757 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/GIVATI.stream/playlist.m3u8"},758 {"id": 309, "name": "GVULUT", "title": "×××××ת",759 "image_file": r"http://iroads.bvtech.co.il/upfiles/GVULUT/GVULOT.PNG", "details": "232",760 "host_ip": None,761 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",762 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,763 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/GVULUT.stream",764 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/GVULUT.stream/playlist.m3u8"},765 {"id": 311, "name": "HADARIM", "title": "××ר××",766 "image_file": r"http://iroads.bvtech.co.il/upfiles/HADARIM/HADARIM.PNG", "details": "4",767 "host_ip": None,768 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",769 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,770 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/HADARIM.stream",771 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/HADARIM.stream/playlist.m3u8"},772 {"id": 312, "name": "HADASIM", "title": "××ס××",773 "image_file": r"http://iroads.bvtech.co.il/upfiles/HADASIM/HADASIM.PNG", "details": "4",774 "host_ip": None,775 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",776 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,777 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/HADASIM.stream",778 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/HADASIM.stream/playlist.m3u8"},779 {"id": 313, "name": "HAKERACH", "title": "×קר×",780 "image_file": r"http://iroads.bvtech.co.il/upfiles/HAKERACH/HAKERAH.PNG", "details": "44",781 "host_ip": None,782 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",783 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,784 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/HAKERACH.stream",785 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/HAKERACH.stream/playlist.m3u8"},786 {"id": 314, "name": "HAMAHTESH", "title": "×××תש",787 "image_file": r"http://iroads.bvtech.co.il/upfiles/HAMAHTESH/HAMAHTESH.PNG", "details": "44",788 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",789 "app_instance": "_definst_",790 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,791 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/HAMAHTESH.stream",792 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/HAMAHTESH.stream/playlist.m3u8"},793 {"id": 315, "name": "HAMELAHA", "title": "××××××",794 "image_file": r"http://iroads.bvtech.co.il/upfiles/HAMELAHA/HAMELAHA.PNG", "details": "44",795 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",796 "app_instance": "_definst_",797 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,798 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/HAMELAHA.stream",799 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/HAMELAHA.stream/playlist.m3u8"},800 {"id": 316, "name": "HASHIVA", "title": "×ש××¢×",801 "image_file": r"http://iroads.bvtech.co.il/upfiles/HASHIVA/HASHIVA.PNG", "details": "4",802 "host_ip": None,803 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",804 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,805 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/HASHIVA.stream",806 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/HASHIVA.stream/playlist.m3u8"},807 {"id": 317, "name": "HATIVA7", "title": "××××× 7",808 "image_file": r"http://iroads.bvtech.co.il/upfiles/HATIVA7/HATIVA7.PNG", "details": "3",809 "host_ip": None,810 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",811 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,812 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/HATIVA7.stream",813 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/HATIVA7.stream/playlist.m3u8"},814 {"id": 318, "name": "HATZAV", "title": "×צ×",815 "image_file": r"http://iroads.bvtech.co.il/upfiles/HATZAV/HATZAV.PNG", "details": "40",816 "host_ip": None,817 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",818 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,819 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/HATZAV.stream",820 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/HATZAV.stream/playlist.m3u8"},821 {"id": 319, "name": "HAVATSHAARHAGY", "title": "×××ת שער ××××",822 "image_file": r"http://iroads.bvtech.co.il/upfiles/HAVATSHAARHAGY/HAVATSHAARHAGY.PNG", "details": "1",823 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",824 "app_instance": "_definst_",825 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,826 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/HAVATSHAARHAGY.stream",827 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/HAVATSHAARHAGY.stream/playlist.m3u8"},828 {"id": 320, "name": "HEFER", "title": "×פר",829 "image_file": r"http://iroads.bvtech.co.il/upfiles/HEFER/HEFER.PNG", "details": "4", "host_ip": None,830 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",831 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,832 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/HEFER.stream",833 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/HEFER.stream/playlist.m3u8"},834 {"id": 321, "name": "HENROAD531", "title": "×× ×××ש 531",835 "image_file": r"http://iroads.bvtech.co.il/upfiles/HENROAD531/HENROAD531.PNG", "details": "531",836 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",837 "app_instance": "_definst_",838 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,839 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/HENROAD531.stream",840 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/HENROAD531.stream/playlist.m3u8"},841 {"id": 322, "name": "HERTZELIAEASTROAD531", "title": "×רצ××× ×××¨× ×××ש 531",842 "image_file": r"http://iroads.bvtech.co.il/upfiles/HERTZELIAEASTROAD531/HERTZELIAEASTROAD531.PNG",843 "details": "531", "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",844 "app_instance": "_definst_", "is_recording": 0, "start_recording": "0000-00-00 00:00:00",845 "server_name": None,846 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/HERTZELIAEASTROAD531.stream",847 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/HERTZELIAEASTROAD531.stream/playlist.m3u8"},848 {"id": 324, "name": "HOLOT", "title": "××××ת",849 "image_file": r"http://iroads.bvtech.co.il/upfiles/HOLOT/holot.png", "details": "×××ש 20",850 "host_ip": None,851 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",852 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,853 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/HOLOT.stream",854 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/HOLOT.stream/playlist.m3u8"},855 {"id": 325, "name": "JISER", "title": "×'סר",856 "image_file": r"http://iroads.bvtech.co.il/upfiles/JISER/JISER.PNG", "details": "2", "host_ip": None,857 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",858 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,859 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/JISER.stream",860 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/JISER.stream/playlist.m3u8"},861 {"id": 326, "name": "KABRI", "title": "××ר×",862 "image_file": r"http://iroads.bvtech.co.il/upfiles/KABRI/KABRI.PNG", "details": "89", "host_ip": None,863 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",864 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,865 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/KABRI.stream",866 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/KABRI.stream/playlist.m3u8"},867 {"id": 327, "name": "KADARIM", "title": "ק×ר××",868 "image_file": r"http://iroads.bvtech.co.il/upfiles/KADARIM/KADARIM.PNG", "details": "85",869 "host_ip": None,870 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",871 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,872 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/KADARIM.stream",873 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/KADARIM.stream/playlist.m3u8"},874 {"id": 330, "name": "KAREYNAAMANSOUTH", "title": "××¨× × ×¢×× ×ר××",875 "image_file": r"http://iroads.bvtech.co.il/upfiles/KAREYNAAMANSOUTH/KAREYNAAMANSOUTH.PNG",876 "details": "22",877 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",878 "app_instance": "_definst_",879 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,880 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/KAREYNAAMANSOUTH.stream",881 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/KAREYNAAMANSOUTH.stream/playlist.m3u8"},882 {"id": 336, "name": "KFARHROE", "title": "×פר ×ר×××",883 "image_file": r"http://iroads.bvtech.co.il/upfiles/KFARHROE/KFARHAROE.PNG", "details": "4",884 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",885 "app_instance": "_definst_",886 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,887 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/KFARHROE.stream",888 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/KFARHROE.stream/playlist.m3u8"},889 {"id": 339, "name": "KFARTAVOR", "title": "×פר ת××ר",890 "image_file": r"http://iroads.bvtech.co.il/upfiles/KFARTAVOR/KFARTAVOR.PNG", "details": "65",891 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",892 "app_instance": "_definst_",893 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,894 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/KFARTAVOR.stream",895 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/KFARTAVOR.stream/playlist.m3u8"},896 {"id": 340, "name": "KIRYATATASOUTH", "title": "קר×ת ××ª× ×ר××",897 "image_file": r"http://iroads.bvtech.co.il/upfiles/KIRYATATASOUTH/KIRYATATASOUTH.PNG",898 "details": "22",899 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",900 "app_instance": "_definst_",901 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,902 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/KIRYATATASOUTH.stream",903 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/KIRYATATASOUTH.stream/playlist.m3u8"},904 {"id": 344, "name": "MAAGANMICHAEL", "title": "××¢×× ×××××",905 "image_file": r"http://iroads.bvtech.co.il/upfiles/MAAGANMICHAEL/MAAGANMICHAEL.PNG", "details": "2",906 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",907 "app_instance": "_definst_",908 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,909 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/MAAGANMICHAEL.stream",910 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/MAAGANMICHAEL.stream/playlist.m3u8"},911 {"id": 345, "name": "MAHANAIM", "title": "××× ×××",912 "image_file": r"http://iroads.bvtech.co.il/upfiles/MAHANAIM/MAHANAIM.PNG", "details": "90",913 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",914 "app_instance": "_definst_",915 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,916 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/MAHANAIM.stream",917 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/MAHANAIM.stream/playlist.m3u8"},918 {"id": 348, "name": "MASRIK", "title": "×סר×ק",919 "image_file": r"http://iroads.bvtech.co.il/upfiles/MASRIK/MASRIK.PNG", "details": "4",920 "host_ip": None,921 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",922 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,923 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/MASRIK.stream",924 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/MASRIK.stream/playlist.m3u8"},925 {"id": 349, "name": "MATZLIH", "title": "×צ×××",926 "image_file": r"http://iroads.bvtech.co.il/upfiles/MATZLIH/MATZLIH.PNG", "details": "40",927 "host_ip": None,928 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",929 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,930 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/MATZLIH.stream",931 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/MATZLIH.stream/playlist.m3u8"},932 {"id": 355, "name": "MODIININDUSTRY", "title": "×.ת. ×××××¢××",933 "image_file": r"http://iroads.bvtech.co.il/upfiles/MODIININDUSTRY/MODIININDUSTRY.PNG",934 "details": "443",935 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",936 "app_instance": "_definst_",937 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,938 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/MODIININDUSTRY.stream",939 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/MODIININDUSTRY.stream/playlist.m3u8"},940 {"id": 356, "name": "MORAN", "title": "××ר×",941 "image_file": r"http://iroads.bvtech.co.il/upfiles/MORAN/MORAN.PNG", "details": "85", "host_ip": None,942 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",943 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,944 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/MORAN.stream",945 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/MORAN.stream/playlist.m3u8"},946 {"id": 358, "name": "NAHALHADERA", "title": "× ×× ××ר×",947 "image_file": r"http://iroads.bvtech.co.il/upfiles/NAHALHADERA/NAHALHADERA.PNG", "details": "4",948 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",949 "app_instance": "_definst_",950 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,951 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/NAHALHADERA.stream",952 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/NAHALHADERA.stream/playlist.m3u8"},953 {"id": 364, "name": "NAMALASHDOD", "title": "× ×× ×ש×××",954 "image_file": r"http://iroads.bvtech.co.il/upfiles/NAMALASHDOD/NAMALASHDOD.PNG", "details": "41",955 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",956 "app_instance": "_definst_",957 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,958 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/NAMALASHDOD.stream",959 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/NAMALASHDOD.stream/playlist.m3u8"},960 {"id": 366, "name": "NatzratGovernmenttCenter", "title": "× ×¦×¨×ª קר×ת ×××ש××",961 "image_file": r"http://iroads.bvtech.co.il/upfiles/NatzratGovernmenttCenter/NatzratGovernmenttCenter.PNG",962 "details": "75", "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",963 "app_instance": "_definst_", "is_recording": 0, "start_recording": "0000-00-00 00:00:00",964 "server_name": None,965 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/NatzratGovernmenttCenter.stream",966 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/NatzratGovernmenttCenter.stream/playlist.m3u8"},967 {"id": 371, "name": "OHALIM", "title": "×××××",968 "image_file": r"http://iroads.bvtech.co.il/upfiles/OHALIM/OHALIM.PNG", "details": "40",969 "host_ip": None,970 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",971 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,972 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/OHALIM.stream",973 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/OHALIM.stream/playlist.m3u8"},974 {"id": 373, "name": "PALYAM", "title": "×¤× ××",975 "image_file": r"http://iroads.bvtech.co.il/upfiles/PALYAM/PALYAM.PNG", "details": "4",976 "host_ip": None,977 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",978 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,979 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/PALYAM.stream",980 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/PALYAM.stream/playlist.m3u8"},981 {"id": 374, "name": "PARDASIA", "title": "פר×ס××",982 "image_file": r"http://iroads.bvtech.co.il/upfiles/PARDASIA/PARDASIA.PNG", "details": "4",983 "host_ip": None,984 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",985 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,986 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/PARDASIA.stream",987 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/PARDASIA.stream/playlist.m3u8"},988 {"id": 375, "name": "PARKAFEK", "title": "פ×רק ×פק",989 "image_file": r"http://iroads.bvtech.co.il/upfiles/PARKAFEK/PARKAFEK.PNG", "details": "5",990 "host_ip": None,991 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",992 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,993 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/PARKAFEK.stream",994 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/PARKAFEK.stream/playlist.m3u8"},995 {"id": 377, "name": "REGBA", "title": "ר×××",996 "image_file": r"http://iroads.bvtech.co.il/upfiles/REGBA/REGBA.PNG", "details": "4", "host_ip": None,997 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",998 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,999 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/REGBA.stream",1000 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/REGBA.stream/playlist.m3u8"},1001 {"id": 378, "name": "REHOVOTWAST", "title": "ר××××ת ×ער×",1002 "image_file": r"http://iroads.bvtech.co.il/upfiles/REHOVOTWAST/REHOVOTWAST.PNG", "details": "42",1003 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",1004 "app_instance": "_definst_",1005 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,1006 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/REHOVOTWAST.stream",1007 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/REHOVOTWAST.stream/playlist.m3u8"},1008 {"id": 379, "name": "RINATYA", "title": "ר×× ×ª××",1009 "image_file": r"http://iroads.bvtech.co.il/upfiles/RINATYA/RINATYA.PNG", "details": "40",1010 "host_ip": None,1011 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",1012 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,1013 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/RINATYA.stream",1014 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/RINATYA.stream/playlist.m3u8"},1015 {"id": 382, "name": "SARA", "title": "שר×",1016 "image_file": r"http://iroads.bvtech.co.il/upfiles/SARA/SARA.PNG", "details": "25", "host_ip": None,1017 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",1018 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,1019 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/SARA.stream",1020 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/SARA.stream/playlist.m3u8"},1021 {"id": 384, "name": "SAVION", "title": "ס××××",1022 "image_file": r"http://iroads.bvtech.co.il/upfiles/SAVION/SAVION.PNG", "details": "461",1023 "host_ip": None,1024 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",1025 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,1026 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/SAVION.stream",1027 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/SAVION.stream/playlist.m3u8"},1028 {"id": 385, "name": "SGULA", "title": "ס××××",1029 "image_file": r"http://iroads.bvtech.co.il/upfiles/SGULA/SGULA.PNG", "details": "40", "host_ip": None,1030 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",1031 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,1032 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/SGULA.stream",1033 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/SGULA.stream/playlist.m3u8"},1034 {"id": 387, "name": "SHAARHANEGEV", "title": "שער ×× ××",1035 "image_file": r"http://iroads.bvtech.co.il/upfiles/SHAARHANEGEV/SHAARHANEGEV.PNG", "details": "34",1036 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",1037 "app_instance": "_definst_",1038 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,1039 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/SHAARHANEGEV.stream",1040 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/SHAARHANEGEV.stream/playlist.m3u8"},1041 {"id": 388, "name": "SHAARIYA", "title": "שער××",1042 "image_file": r"http://iroads.bvtech.co.il/upfiles/SHAARIYA/SHAARIYA.PNG", "details": "40",1043 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",1044 "app_instance": "_definst_",1045 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,1046 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/SHAARIYA.stream",1047 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/SHAARIYA.stream/playlist.m3u8"},1048 {"id": 389, "name": "SHFAIM", "title": "שפ×××",1049 "image_file": r"http://iroads.bvtech.co.il/upfiles/SHFAIM/SHEFAIM.PNG", "details": "2",1050 "host_ip": None,1051 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",1052 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,1053 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/SHFAIM.stream",1054 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/SHFAIM.stream/playlist.m3u8"},1055 {"id": 390, "name": "SHOKET", "title": "ש×קת",1056 "image_file": r"http://iroads.bvtech.co.il/upfiles/SHOKET/SHOKET.PNG", "details": "31",1057 "host_ip": None,1058 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",1059 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,1060 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/SHOKET.stream",1061 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/SHOKET.stream/playlist.m3u8"},1062 {"id": 391, "name": "SILVER", "title": "ס×××ר",1063 "image_file": r"http://iroads.bvtech.co.il/upfiles/SILVER/SILVER.PNG", "details": "3",1064 "host_ip": None,1065 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",1066 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,1067 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/SILVER.stream",1068 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/SILVER.stream/playlist.m3u8"},1069 {"id": 392, "name": "SIRKIN", "title": "ס×רק××",1070 "image_file": r"http://iroads.bvtech.co.il/upfiles/SIRKIN/SIRKIN.PNG", "details": "40",1071 "host_ip": None,1072 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",1073 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,1074 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/SIRKIN.stream",1075 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/SIRKIN.stream/playlist.m3u8"},1076 {"id": 394, "name": "TAABURA", "title": "תע××ר×",1077 "image_file": r"http://iroads.bvtech.co.il/upfiles/TAABURA/TAABURA.PNG", "details": "44",1078 "host_ip": None,1079 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",1080 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,1081 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/TAABURA.stream",1082 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/TAABURA.stream/playlist.m3u8"},1083 {"id": 395, "name": "TCHERNIKHOVSKY", "title": "××©×¨× ×××××¡×§× ×פר ס××",1084 "image_file": r"http://iroads.bvtech.co.il/upfiles/TCHERNIKHOVSKY/TCHERNIKHOVSKY.PNG",1085 "details": "402",1086 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",1087 "app_instance": "_definst_",1088 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,1089 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/TCHERNIKHOVSKY.stream",1090 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/TCHERNIKHOVSKY.stream/playlist.m3u8"},1091 {"id": 396, "name": "TELARAD", "title": "×ª× ×¢×¨×",1092 "image_file": r"http://iroads.bvtech.co.il/upfiles/TELARAD/TELARAD.PNG", "details": "31",1093 "host_ip": None,1094 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",1095 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,1096 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/TELARAD.stream",1097 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/TELARAD.stream/playlist.m3u8"},1098 {"id": 398, "name": "UMELFAHEM", "title": "××× ×× ×¤×××",1099 "image_file": r"http://iroads.bvtech.co.il/upfiles/UMELFAHEM/UMELFAHEM.PNG", "details": "65",1100 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",1101 "app_instance": "_definst_",1102 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,1103 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/UMELFAHEM.stream",1104 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/UMELFAHEM.stream/playlist.m3u8"},1105 {"id": 399, "name": "YAARHEDERA", "title": "×ער ××ר×",1106 "image_file": r"http://iroads.bvtech.co.il/upfiles/YAARHEDERA/yaarhadera.png", "details": "4",1107 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",1108 "app_instance": "_definst_",1109 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,1110 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/YAARHEDERA.stream",1111 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/YAARHEDERA.stream/playlist.m3u8"},1112 {"id": 400, "name": "YADMORDEHI", "title": "×× ×ר×××",1113 "image_file": r"http://iroads.bvtech.co.il/upfiles/YADMORDEHI/YADMORDEHI.PNG", "details": "4",1114 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",1115 "app_instance": "_definst_",1116 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,1117 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/YADMORDEHI.stream",1118 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/YADMORDEHI.stream/playlist.m3u8"},1119 {"id": 402, "name": "YARKON", "title": "×רק××",1120 "image_file": r"http://iroads.bvtech.co.il/upfiles/YARKON/YARKON.PNG", "details": "5",1121 "host_ip": None,1122 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",1123 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,1124 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/YARKON.stream",1125 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/YARKON.stream/playlist.m3u8"},1126 {"id": 403, "name": "YASIF", "title": "××ס××£",1127 "image_file": r"http://iroads.bvtech.co.il/upfiles/YASIF/YASIF.PNG", "details": "70", "host_ip": None,1128 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",1129 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,1130 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/YASIF.stream",1131 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/YASIF.stream/playlist.m3u8"},1132 {"id": 404, "name": "YAVNE", "title": "××× ×",1133 "image_file": r"http://iroads.bvtech.co.il/upfiles/YAVNE/YAVNE.PNG", "details": "4", "host_ip": None,1134 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",1135 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,1136 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/YAVNE.stream",1137 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/YAVNE.stream/playlist.m3u8"},1138 {"id": 406, "name": "ALFEIMENASHE", "title": "×××¤× ×× ×©×",1139 "image_file": r"http://iroads.bvtech.co.il/upfiles/ALFEIMENASHE/ALFEIMENASHE.PNG", "details": "55",1140 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",1141 "app_instance": "_definst_",1142 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,1143 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/ALFEIMENASHE.stream",1144 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/ALFEIMENASHE.stream/playlist.m3u8"},1145 {"id": 407, "name": "KOKHAVYAIR", "title": "×××× ×××ר",1146 "image_file": r"http://iroads.bvtech.co.il/upfiles/KOKHAVYAIR/kokhavyair.png", "details": "444",1147 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",1148 "app_instance": "_definst_",1149 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,1150 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/KOKHAVYAIR.stream",1151 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/KOKHAVYAIR.stream/playlist.m3u8"},1152 {"id": 409, "name": "BIALIKHADERA", "title": "×××××ק ××ר×",1153 "image_file": r"http://iroads.bvtech.co.il/upfiles/BIALIKHADERA/BIALIKHADERA.PNG", "details": "4",1154 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",1155 "app_instance": "_definst_",1156 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,1157 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/BIALIKHADERA.stream",1158 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/BIALIKHADERA.stream/playlist.m3u8"},1159 {"id": 410, "name": "DAVRAT", "title": "××רת",1160 "image_file": r"http://iroads.bvtech.co.il/upfiles/DAVRAT/DAVRAT.PNG", "details": "65",1161 "host_ip": None,1162 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",1163 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,1164 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/DAVRAT.stream",1165 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/DAVRAT.stream/playlist.m3u8"},1166 {"id": 411, "name": "HASARGEL", "title": "×סר××",1167 "image_file": r"http://iroads.bvtech.co.il/upfiles/HASARGEL/HASARGEL.PNG", "details": "65",1168 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",1169 "app_instance": "_definst_",1170 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,1171 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/HASARGEL.stream",1172 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/HASARGEL.stream/playlist.m3u8"},1173 {"id": 412, "name": "KFRAKARA", "title": "×פר קרע",1174 "image_file": r"http://iroads.bvtech.co.il/upfiles/KFRAKARA/KFARKARA.PNG", "details": "65",1175 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",1176 "app_instance": "_definst_",1177 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,1178 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/KFRAKARA.stream",1179 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/KFRAKARA.stream/playlist.m3u8"},1180 {"id": 415, "name": "ARARA", "title": "ערער×",1181 "image_file": r"http://iroads.bvtech.co.il/upfiles/ARARA/ARARA.PNG", "details": "65", "host_ip": None,1182 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",1183 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,1184 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/ARARA.stream",1185 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/ARARA.stream/playlist.m3u8"},1186 {"id": 419, "name": "SHFEYAH", "title": "שפ××",1187 "image_file": r"http://iroads.bvtech.co.il/upfiles/SHFEYAH/SHFEYAH.PNG", "details": "70",1188 "host_ip": None,1189 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",1190 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,1191 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/SHFEYAH.stream",1192 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/SHFEYAH.stream/playlist.m3u8"},1193 {"id": 421, "name": "EMHAMOSHAVOT", "title": "×× ×××ש××ת",1194 "image_file": r"http://iroads.bvtech.co.il/upfiles/EMHAMOSHAVOT/EMHMOSHAVOT.PNG", "details": "4",1195 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",1196 "app_instance": "_definst_",1197 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,1198 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/EMHAMOSHAVOT.stream",1199 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/EMHAMOSHAVOT.stream/playlist.m3u8"},1200 {"id": 422, "name": "EINHAMIFRTZ", "title": "×¢×× ××פרץ",1201 "image_file": r"http://iroads.bvtech.co.il/upfiles/EINHAMIFRTZ/EINHMIFRTZ.PNG", "details": "4",1202 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",1203 "app_instance": "_definst_",1204 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,1205 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/EINHAMIFRTZ.stream",1206 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/EINHAMIFRTZ.stream/playlist.m3u8"},1207 {"id": 425, "name": "LAPID", "title": "×פ××",1208 "image_file": r"http://iroads.bvtech.co.il/upfiles/LAPID/LAPID.PNG", "details": "446",1209 "host_ip": None,1210 "global_url": "", "server_ip": "10.34.151.3", "app_name": "live", "app_instance": "_definst_",1211 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,1212 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/LAPID.stream",1213 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/LAPID.stream/playlist.m3u8"},1214 {"id": 426, "name": "KARMIELCENTER", "title": "×ר×××× ×ר××",1215 "image_file": r"http://iroads.bvtech.co.il/upfiles/KARMIELCENTER/KARMIELTEFEN.PNG", "details": "85",1216 "host_ip": None, "global_url": "", "server_ip": "10.34.151.3", "app_name": "live",1217 "app_instance": "_definst_",1218 "is_recording": 0, "start_recording": "0000-00-00 00:00:00", "server_name": None,1219 "player_url_web": "rtmps://5c328052cb7f5.streamlock.net/live/KARMIELCENTER.stream",1220 "player_url_ios": "https://5c328052cb7f5.streamlock.net/live/KARMIELCENTER.stream/playlist.m3u8"}]1221 _data = sorted(_data, key=lambda d: d['id'])1222 # _all_cameras = [CameraInfo(i, d['id'], d['name'], d['title'], d['player_url_web'], d['image_file']) for i, d in1223 # enumerate(_data)]1224 _all_cameras = [CameraInfo(i, d['id'], d['name'], d['title'], d['player_url_ios'], d['image_file']) for i, d in1225 enumerate(_data)]1226 df_cameras = pd.DataFrame(_all_cameras).sort_values(col_id).reset_index(drop=True).set_index(col_index)...
recorder_test.py
Source:recorder_test.py
...29 self.assertEqual(False, self._recorder.is_recording())30 def test_getRecordingPatternIdAfterInit_returnsNone(self):31 self.assertEqual(None, self._recorder.get_recording_pattern_id())32 def test_isRecordingWhileAfterStopped_returnsFalse(self):33 self._recorder.start_recording('even')34 self._feed_even_pattern(1000)35 self._recorder.stop_recording()36 self.assertEqual(False, self._recorder.is_recording())37 def test_getRecordingPatternIdAfterStopped_returnsNone(self):38 self._recorder.start_recording('even')39 self._feed_even_pattern(1000)40 self._recorder.stop_recording()41 self.assertEqual(None, self._recorder.get_recording_pattern_id())42 def test_isRecordingAfterStart_returnsTrue(self):43 self._recorder.start_recording('even')44 self.assertEqual(True, self._recorder.is_recording())45 def test_getRecordingPatternAfterStart_returnsId(self):46 self._recorder.start_recording('even')47 self.assertEqual('even', self._recorder.get_recording_pattern_id())48 def test_playWithNoRecording_playbackReturnsFalse(self):49 self._feed_even_pattern(1000)50 self.assertFalse(self._recorder.play('non-existent-id'))51 self.assertFalse(self._recorder.play('non-existent-id', loop=True))52 self.assertEqual([], self._data_played)53 def test_recordAndPlayNonexistentPattern_noPlaybackOnDifferentPattern(self):54 self._recorder.start_recording('even')55 self._feed_even_pattern(1000)56 self._recorder.stop_recording()57 self.assertFalse(self._recorder.play('non-existent-id'))58 self.assertFalse(self._recorder.play('non-existent-id', loop=True))59 self.assertEqual([], self._data_played)60 def test_playRecordedPattern_playbackPlaysOnce(self):61 self._recorder.start_recording('even')62 self._feed_even_pattern(1000)63 self._recorder.stop_recording()64 self._feed_odd_pattern(6000)65 result = self._recorder.play('even')66 self.assertEqual(True, result)67 # Make sure notes are played back correctly in time.68 history = []69 self._scheduler.idle()70 history.append(self._data_played[:])71 for _ in range(6):72 # Each step is 1 second73 self._clock.advance(1)74 self._scheduler.idle()75 history.append(self._data_played[:])76 self.assertEqual([77 [0, 10], # Before loop, first idle call78 [0, 10, 2, 12], # Loop 079 [0, 10, 2, 12, 4, 14],80 [0, 10, 2, 12, 4, 14, 6, 16],81 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18], # No new notes expected after.82 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18],83 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18]],84 history)85 def test_playRecordedPatternWithLoop_playbackLoops(self):86 self._recorder.start_recording('even')87 self._feed_even_pattern(1000)88 self._recorder.stop_recording()89 self._feed_odd_pattern(6000)90 result = self._recorder.play('even', loop=True, loop_delay_ms=0)91 self.assertEqual(True, result)92 # Make sure notes are played back correctly in time.93 history = []94 self._scheduler.idle()95 history.append(self._data_played[:])96 for _ in range(6):97 # Each step is 1 second98 self._clock.advance(1)99 self._scheduler.idle()100 history.append(self._data_played[:])101 self.assertEqual([102 [0, 10], # Before loop, first idle call103 [0, 10, 2, 12], # Loop 0104 [0, 10, 2, 12, 4, 14],105 [0, 10, 2, 12, 4, 14, 6, 16],106 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18, 0, 10], # no loop delay107 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18, 0, 10, 2, 12],108 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18, 0, 10, 2, 12, 4, 14]],109 history)110 def test_playRecordedPatternWithLoopAndLoopDelay_playLoopsWithDelay(self):111 self._recorder.start_recording('even')112 self._feed_even_pattern(1000)113 self._recorder.stop_recording()114 self._feed_odd_pattern(6000)115 result = self._recorder.play('even', loop=True, loop_delay_ms=1000)116 self.assertEqual(True, result)117 # Make sure notes are played back correctly in time.118 history = []119 self._scheduler.idle()120 history.append(self._data_played[:])121 for _ in range(6):122 # Each step is 1 second123 self._clock.advance(1)124 self._scheduler.idle()125 history.append(self._data_played[:])126 self.assertEqual([127 [0, 10], # Before loop, first idle call128 [0, 10, 2, 12], # Loop 0129 [0, 10, 2, 12, 4, 14],130 [0, 10, 2, 12, 4, 14, 6, 16],131 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18], # w/ loop delay132 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18, 0, 10],133 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18, 0, 10, 2, 12]],134 history)135 def test_playMultipleRecordedPattern_playbackWorks(self):136 self._recorder.start_recording('even')137 self._feed_even_pattern(1000)138 self._recorder.stop_recording()139 self._recorder.start_recording('odd')140 self._feed_odd_pattern(6000)141 self._recorder.stop_recording()142 result = self._recorder.play('even')143 self.assertEqual(True, result)144 result = self._recorder.play('odd')145 self.assertEqual(True, result)146 # Make sure notes are played back correctly in time.147 history = []148 self._scheduler.idle()149 history.append(self._data_played[:])150 for _ in range(6):151 # Each step is 1 second152 self._clock.advance(1)153 self._scheduler.idle()154 history.append(self._data_played[:])155 # The notes will be jumbled, so we need to filter them out by even and156 # odds and compare157 even_history = [[v for v in data if v % 2 == 0] for data in history]158 odd_history = [[v for v in data if v % 2 == 1] for data in history]159 self.assertEqual([160 [0, 10], # Before loop, first idle call161 [0, 10, 2, 12], # Loop 0162 [0, 10, 2, 12, 4, 14],163 [0, 10, 2, 12, 4, 14, 6, 16],164 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18], # No new notes expected after.165 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18],166 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18]],167 even_history)168 self.assertEqual([169 [1, 11], # Before loop, first idle call170 [1, 11, 3, 13], # Loop 0171 [1, 11, 3, 13, 5, 15],172 [1, 11, 3, 13, 5, 15, 7, 17],173 [1, 11, 3, 13, 5, 15, 7, 17, 9, 19], # No new notes expected after.174 [1, 11, 3, 13, 5, 15, 7, 17, 9, 19],175 [1, 11, 3, 13, 5, 15, 7, 17, 9, 19]],176 odd_history)177 def test_playMultiplePatternsOneLoops_oneLoopsAndOtherDoesnt(self):178 self._recorder.start_recording('even')179 self._feed_even_pattern(1000)180 self._recorder.stop_recording()181 self._recorder.start_recording('odd')182 self._feed_odd_pattern(6000)183 self._recorder.stop_recording()184 result = self._recorder.play('even', loop=True, loop_delay_ms=1000)185 self.assertEqual(True, result)186 result = self._recorder.play('odd')187 self.assertEqual(True, result)188 # Make sure notes are played back correctly in time.189 history = []190 self._scheduler.idle()191 history.append(self._data_played[:])192 for _ in range(6):193 # Each step is 1 second194 self._clock.advance(1)195 self._scheduler.idle()196 history.append(self._data_played[:])197 # The notes will be jumbled, so we need to filter them out by even and198 # odds and compare199 even_history = [[v for v in data if v % 2 == 0] for data in history]200 odd_history = [[v for v in data if v % 2 == 1] for data in history]201 self.assertEqual([202 [0, 10], # Before loop, first idle call203 [0, 10, 2, 12], # Loop 0204 [0, 10, 2, 12, 4, 14],205 [0, 10, 2, 12, 4, 14, 6, 16],206 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18], # w/ loop delay207 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18, 0, 10],208 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18, 0, 10, 2, 12]],209 even_history)210 self.assertEqual([211 [1, 11], # Before loop, first idle call212 [1, 11, 3, 13], # Loop 0213 [1, 11, 3, 13, 5, 15],214 [1, 11, 3, 13, 5, 15, 7, 17],215 [1, 11, 3, 13, 5, 15, 7, 17, 9, 19], # No new notes expected after.216 [1, 11, 3, 13, 5, 15, 7, 17, 9, 19],217 [1, 11, 3, 13, 5, 15, 7, 17, 9, 19]],218 odd_history)219 def test_stopWhilePlayRecordedPattern_successfullyStops(self):220 self._recorder.start_recording('even')221 self._feed_even_pattern(1000)222 self._recorder.stop_recording()223 self._feed_odd_pattern(6000)224 result = self._recorder.play('even')225 self.assertEqual(True, result)226 # Make sure notes are played back correctly in time.227 history = []228 self._scheduler.idle()229 history.append(self._data_played[:])230 for i in range(6):231 if i == 3:232 self._recorder.stop('even')233 # Each step is 1 second234 self._clock.advance(1)235 self._scheduler.idle()236 history.append(self._data_played[:])237 self.assertEqual([238 [0, 10], # Before loop, first idle call239 [0, 10, 2, 12], # Loop 0240 [0, 10, 2, 12, 4, 14],241 [0, 10, 2, 12, 4, 14, 6, 16], # Loop 2. Stops before loop 3242 [0, 10, 2, 12, 4, 14, 6, 16],243 [0, 10, 2, 12, 4, 14, 6, 16],244 [0, 10, 2, 12, 4, 14, 6, 16]],245 history)246 def test_stopWhilePlayingMultipleRecordedPattern_stopsOneOtherPlays(self):247 self._recorder.start_recording('even')248 self._feed_even_pattern(1000)249 self._recorder.stop_recording()250 self._recorder.start_recording('odd')251 self._feed_odd_pattern(6000)252 self._recorder.stop_recording()253 result = self._recorder.play('even')254 self.assertEqual(True, result)255 result = self._recorder.play('odd')256 self.assertEqual(True, result)257 # Make sure notes are played back correctly in time.258 history = []259 self._scheduler.idle()260 history.append(self._data_played[:])261 for i in range(6):262 if i == 3:263 self._recorder.stop('even')264 # Each step is 1 second265 self._clock.advance(1)266 self._scheduler.idle()267 history.append(self._data_played[:])268 # The notes will be jumbled, so we need to filter them out by even and269 # odds and compare270 even_history = [[v for v in data if v % 2 == 0] for data in history]271 odd_history = [[v for v in data if v % 2 == 1] for data in history]272 # Even wil stop after loop 2273 self.assertEqual([274 [0, 10], # Before loop, first idle call275 [0, 10, 2, 12], # Loop 0276 [0, 10, 2, 12, 4, 14],277 [0, 10, 2, 12, 4, 14, 6, 16], # Loop 2. Stopped after this.278 [0, 10, 2, 12, 4, 14, 6, 16],279 [0, 10, 2, 12, 4, 14, 6, 16],280 [0, 10, 2, 12, 4, 14, 6, 16]],281 even_history)282 self.assertEqual([283 [1, 11], # Before loop, first idle call284 [1, 11, 3, 13], # Loop 0285 [1, 11, 3, 13, 5, 15],286 [1, 11, 3, 13, 5, 15, 7, 17],287 [1, 11, 3, 13, 5, 15, 7, 17, 9, 19], # No new notes expected after.288 [1, 11, 3, 13, 5, 15, 7, 17, 9, 19],289 [1, 11, 3, 13, 5, 15, 7, 17, 9, 19]],290 odd_history)291 def test_stopNonExistentPattern_noImpact(self):292 self._recorder.start_recording('even')293 self._feed_even_pattern(1000)294 self._recorder.stop_recording()295 self._recorder.start_recording('odd')296 self._feed_odd_pattern(6000)297 self._recorder.stop_recording()298 result = self._recorder.play('even', loop=True, loop_delay_ms=1000)299 self.assertEqual(True, result)300 result = self._recorder.play('odd')301 self.assertEqual(True, result)302 # Make sure notes are played back correctly in time.303 history = []304 self._scheduler.idle()305 history.append(self._data_played[:])306 for _ in range(6):307 self._recorder.stop('non-existent-pattern')308 # Each step is 1 second309 self._clock.advance(1)310 self._scheduler.idle()311 history.append(self._data_played[:])312 # The notes will be jumbled, so we need to filter them out by even and313 # odds and compare314 even_history = [[v for v in data if v % 2 == 0] for data in history]315 odd_history = [[v for v in data if v % 2 == 1] for data in history]316 self.assertEqual([317 [0, 10], # Before loop, first idle call318 [0, 10, 2, 12], # Loop 0319 [0, 10, 2, 12, 4, 14],320 [0, 10, 2, 12, 4, 14, 6, 16],321 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18], # w/ loop delay322 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18, 0, 10],323 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18, 0, 10, 2, 12]],324 even_history)325 self.assertEqual([326 [1, 11], # Before loop, first idle call327 [1, 11, 3, 13], # Loop 0328 [1, 11, 3, 13, 5, 15],329 [1, 11, 3, 13, 5, 15, 7, 17],330 [1, 11, 3, 13, 5, 15, 7, 17, 9, 19], # No new notes expected after.331 [1, 11, 3, 13, 5, 15, 7, 17, 9, 19],332 [1, 11, 3, 13, 5, 15, 7, 17, 9, 19]],333 odd_history)334 def test_stopAllWhileNotPlaying_noImpact(self):335 self._recorder.start_recording('even')336 self._feed_even_pattern(1000)337 self._recorder.stop_recording()338 self._recorder.stop_all()339 self._clock.advance(1)340 self._scheduler.idle()341 self.assertEqual([], self._data_played)342 def test_stopAllWhilePlayingMultiple_stopsAll(self):343 self._recorder.start_recording('even')344 self._feed_even_pattern(1000)345 self._recorder.stop_recording()346 self._recorder.start_recording('odd')347 self._feed_odd_pattern(6000)348 self._recorder.stop_recording()349 result = self._recorder.play('even', loop=True, loop_delay_ms=1000)350 self.assertEqual(True, result)351 result = self._recorder.play('odd')352 self.assertEqual(True, result)353 # Make sure notes are played back correctly in time.354 history = []355 self._scheduler.idle()356 history.append(self._data_played[:])357 for i in range(6):358 if i == 3:359 self._recorder.stop_all()360 self._clock.advance(1)361 self._scheduler.idle()362 history.append(self._data_played[:])363 # The notes will be jumbled, so we need to filter them out by even and364 # odds and compare365 even_history = [[v for v in data if v % 2 == 0] for data in history]366 odd_history = [[v for v in data if v % 2 == 1] for data in history]367 self.assertEqual([368 [0, 10], # Before loop, first idle call369 [0, 10, 2, 12], # Loop 0370 [0, 10, 2, 12, 4, 14],371 [0, 10, 2, 12, 4, 14, 6, 16], # Loop 2. Stopped after this.372 [0, 10, 2, 12, 4, 14, 6, 16],373 [0, 10, 2, 12, 4, 14, 6, 16],374 [0, 10, 2, 12, 4, 14, 6, 16]],375 even_history)376 self.assertEqual([377 [1, 11], # Before loop, first idle call378 [1, 11, 3, 13], # Loop 0379 [1, 11, 3, 13, 5, 15],380 [1, 11, 3, 13, 5, 15, 7, 17], # Loop 2. Stopped after this.381 [1, 11, 3, 13, 5, 15, 7, 17],382 [1, 11, 3, 13, 5, 15, 7, 17],383 [1, 11, 3, 13, 5, 15, 7, 17]],384 odd_history)385 def test_stopWhilePlayingLoop_stopsLoop(self):386 self._recorder.start_recording('even')387 self._feed_even_pattern(1000)388 self._recorder.stop_recording()389 self._feed_odd_pattern(6000)390 result = self._recorder.play('even', loop=True)391 self.assertEqual(True, result)392 # Make sure notes are played back correctly in time.393 history = []394 self._scheduler.idle()395 history.append(self._data_played[:])396 for i in range(6):397 if i == 3:398 self._recorder.stop('even')399 # Each step is 1 second400 self._clock.advance(1)401 self._scheduler.idle()402 history.append(self._data_played[:])403 self.assertEqual([404 [0, 10], # Before loop, first idle call405 [0, 10, 2, 12], # Loop 0406 [0, 10, 2, 12, 4, 14],407 [0, 10, 2, 12, 4, 14, 6, 16], # Loop 2. Stops before loop 3408 [0, 10, 2, 12, 4, 14, 6, 16],409 [0, 10, 2, 12, 4, 14, 6, 16],410 [0, 10, 2, 12, 4, 14, 6, 16]],411 history)412 def test_cancelLoopWhenNotLooping_finishes(self):413 self._recorder.start_recording('even')414 self._feed_even_pattern(1000)415 self._recorder.stop_recording()416 self._feed_odd_pattern(6000)417 result = self._recorder.play('even')418 self.assertEqual(True, result)419 # Make sure notes are played back correctly in time.420 history = []421 self._scheduler.idle()422 history.append(self._data_played[:])423 for i in range(6):424 if i == 3:425 self._recorder.cancel_loop('even')426 # Each step is 1 second427 self._clock.advance(1)428 self._scheduler.idle()429 history.append(self._data_played[:])430 self.assertEqual([431 [0, 10], # Before loop, first idle call432 [0, 10, 2, 12], # Loop 0433 [0, 10, 2, 12, 4, 14],434 [0, 10, 2, 12, 4, 14, 6, 16], # Loop 2. looping canceled.435 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18],436 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18],437 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18]],438 history)439 def test_cancelLoopWhileLooping_loopStopsButPlaybackFinishes(self):440 self._recorder.start_recording('even')441 self._feed_even_pattern(1000)442 self._recorder.stop_recording()443 self._feed_odd_pattern(6000)444 result = self._recorder.play('even', loop=True)445 self.assertEqual(True, result)446 # Make sure notes are played back correctly in time.447 history = []448 self._scheduler.idle()449 history.append(self._data_played[:])450 for i in range(6):451 if i == 3:452 self._recorder.cancel_loop('even')453 # Each step is 1 second454 self._clock.advance(1)455 self._scheduler.idle()456 history.append(self._data_played[:])457 self.assertEqual([458 [0, 10], # Before loop, first idle call459 [0, 10, 2, 12], # Loop 0460 [0, 10, 2, 12, 4, 14],461 [0, 10, 2, 12, 4, 14, 6, 16], # Loop 2. looping canceled.462 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18],463 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18],464 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18]],465 history)466 def test_cancelNonexistentLoopDuringLoopPlayback_noImpact(self):467 self._recorder.start_recording('even')468 self._feed_even_pattern(1000)469 self._recorder.stop_recording()470 self._feed_odd_pattern(6000)471 result = self._recorder.play('even', loop=True, loop_delay_ms=1000)472 self.assertEqual(True, result)473 # Make sure notes are played back correctly in time.474 history = []475 self._scheduler.idle()476 history.append(self._data_played[:])477 for i in range(6):478 if i == 3:479 self._recorder.cancel_loop('non-existent-id')480 # Each step is 1 second481 self._clock.advance(1)482 self._scheduler.idle()483 history.append(self._data_played[:])484 self.assertEqual([485 [0, 10], # Before loop, first idle call486 [0, 10, 2, 12], # Loop 0487 [0, 10, 2, 12, 4, 14],488 [0, 10, 2, 12, 4, 14, 6, 16], # Loop 2. looping canceled.489 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18],490 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18, 0, 10],491 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18, 0, 10, 2, 12]],492 history)493 def test_cancelLoopWhilePlayingMultiple_stopsOneOtherLoops(self):494 self._recorder.start_recording('even')495 self._feed_even_pattern(1000)496 self._recorder.stop_recording()497 self._recorder.start_recording('odd')498 self._feed_odd_pattern(6000)499 self._recorder.stop_recording()500 result = self._recorder.play('even', loop=True, loop_delay_ms=1000)501 self.assertEqual(True, result)502 result = self._recorder.play('odd', loop=True, loop_delay_ms=1000)503 self.assertEqual(True, result)504 # Make sure notes are played back correctly in time.505 history = []506 self._scheduler.idle()507 history.append(self._data_played[:])508 for i in range(6):509 if i == 3:510 self._recorder.cancel_loop('even')511 # Each step is 1 second512 self._clock.advance(1)513 self._scheduler.idle()514 history.append(self._data_played[:])515 # The notes will be jumbled, so we need to filter them out by even and516 # odds and compare517 even_history = [[v for v in data if v % 2 == 0] for data in history]518 odd_history = [[v for v in data if v % 2 == 1] for data in history]519 # Even wil stop after loop 2520 self.assertEqual([521 [0, 10], # Before loop, first idle call522 [0, 10, 2, 12], # Loop 0523 [0, 10, 2, 12, 4, 14],524 [0, 10, 2, 12, 4, 14, 6, 16], # Loop 2. Stopped after this.525 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18],526 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18],527 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18]],528 even_history)529 self.assertEqual([530 [1, 11], # Before loop, first idle call531 [1, 11, 3, 13], # Loop 0532 [1, 11, 3, 13, 5, 15],533 [1, 11, 3, 13, 5, 15, 7, 17],534 [1, 11, 3, 13, 5, 15, 7, 17, 9, 19],535 [1, 11, 3, 13, 5, 15, 7, 17, 9, 19, 1, 11],536 [1, 11, 3, 13, 5, 15, 7, 17, 9, 19, 1, 11, 3, 13]],537 odd_history)538 def test_updateLoopDelayWhilePlaying_loopDelayUpdated(self):539 self._recorder.start_recording('even')540 self._feed_even_pattern(1000)541 self._recorder.stop_recording()542 self._feed_odd_pattern(6000)543 result = self._recorder.play('even', loop=True, loop_delay_ms=1000)544 self.assertEqual(True, result)545 # Make sure notes are played back correctly in time.546 history = []547 self._scheduler.idle()548 history.append(self._data_played[:])549 for i in range(11):550 # Each step is 1 second551 if i == 4:552 self._recorder.set_loop_delay('even', 2000)553 self._clock.advance(1)554 self._scheduler.idle()555 history.append(self._data_played[:])556 self.assertEqual([557 [0, 10], # Before loop, first idle call558 [0, 10, 2, 12], # Loop 0559 [0, 10, 2, 12, 4, 14],560 [0, 10, 2, 12, 4, 14, 6, 16],561 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18], # w/ loop delay562 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18, 0, 10],563 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18, 0, 10, 2, 12],564 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18, 0, 10, 2, 12, 4, 14],565 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18, 0, 10, 2, 12, 4, 14, 6, 16],566 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18, 0, 10, 2, 12, 4, 14, 6, 16, 8,567 18],568 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18, 0, 10, 2, 12, 4, 14, 6, 16, 8,569 18], # Due to change in delay to 2 seconds570 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18, 0, 10, 2, 12, 4, 14, 6, 16, 8,571 18, 0, 10]],572 history)573 def test_whileLoopingCheckIsPlaying_shouldReturnTrue(self):574 self._recorder.start_recording('even')575 self._feed_even_pattern(1000)576 self._recorder.stop_recording()577 self._feed_odd_pattern(6000)578 self._recorder.play('even', loop=True, loop_delay_ms=1000)579 self.assertEqual(True, self._recorder.is_playing('even'))580 def test_whileLoopingCheckNonPlayingPattern_shouldReturnFalse(self):581 self._recorder.start_recording('even')582 self._feed_even_pattern(1000)583 self._recorder.stop_recording()584 self._feed_odd_pattern(6000)585 self._recorder.play('even', loop=True, loop_delay_ms=1000)586 self.assertEqual(False, self._recorder.is_playing('odd'))587 def test_whileNonLoopPlaybackCheckPlayingPattern_shouldReturnTrue(self):588 self._recorder.start_recording('even')589 self._feed_even_pattern(1000)590 self._recorder.stop_recording()591 self._feed_odd_pattern(6000)592 self._recorder.play('even', loop=False, loop_delay_ms=1000)593 self.assertEqual(True, self._recorder.is_playing('even'))594 def test_whileLoopPlaybackIsLoopingPlayingPattern_shouldReturnTrue(self):595 self._recorder.start_recording('even')596 self._feed_even_pattern(1000)597 self._recorder.stop_recording()598 self._feed_odd_pattern(6000)599 self._recorder.play('even', loop=True, loop_delay_ms=1000)600 self.assertEqual(True, self._recorder.is_looping('even'))601 def test_whileNonLoopPlaybackPlayingPattern_shouldReturnFalse(self):602 self._recorder.start_recording('even')603 self._feed_even_pattern(1000)604 self._recorder.stop_recording()605 self._feed_odd_pattern(6000)606 self._recorder.play('even', loop=False, loop_delay_ms=1000)607 self.assertEqual(False, self._recorder.is_looping('even'))608 def test_afterRecordingCheckValidPattern_shouldReturnTrue(self):609 self._recorder.start_recording('even')610 self._feed_even_pattern(1000)611 self._recorder.stop_recording()612 self.assertEqual(True, self._recorder.has_pattern('even'))613 def test_afterRecordingCheckInvalidPattern_shouldReturnFalse(self):614 self._recorder.start_recording('even')615 self._feed_even_pattern(1000)616 self._recorder.stop_recording()617 self.assertEqual(False, self._recorder.has_pattern('odd'))618 def test_recordingAnEmptyPatternCheckHasPattern_shouldReturnFalse(self):619 self._recorder.start_recording('even')620 self._recorder.stop_recording()621 self.assertEqual(False, self._recorder.has_pattern('even'))622 def test_playNoLoop_lastLoopingShouldBeNone(self):623 self._recorder.start_recording('even')624 self._feed_even_pattern(1000)625 self._recorder.stop_recording()626 self._feed_odd_pattern(6000)627 self._recorder.play('even', loop=False, loop_delay_ms=1000)628 self.assertEqual(None, self._recorder.get_last_looping_pattern_id())629 def test_playLoop_lastLoopingShouldBePattern(self):630 self._recorder.start_recording('even')631 self._feed_even_pattern(1000)632 self._recorder.stop_recording()633 self._feed_odd_pattern(6000)634 self._recorder.play('even', loop=True, loop_delay_ms=1000)635 self.assertEqual('even', self._recorder.get_last_looping_pattern_id())636 def test_playMultipleLoops_lastLoopingShouldBeLastLoopPattern(self):637 self._recorder.start_recording('even')638 self._feed_even_pattern(1000)639 self._recorder.stop_recording()640 self._recorder.start_recording('odd')641 self._feed_odd_pattern(1000)642 self._recorder.stop_recording()643 self._recorder.play('even', loop=True, loop_delay_ms=1000)644 self._recorder.play('odd', loop=True, loop_delay_ms=1000)645 self._recorder.play('adsf', loop=True, loop_delay_ms=1000)646 self.assertEqual('odd', self._recorder.get_last_looping_pattern_id())647 def test_overwritePatternWithEmptyPatternAndPlay_shouldNotPlay(self):648 self._recorder.start_recording('even')649 self._feed_even_pattern(1000)650 self._recorder.stop_recording()651 self._recorder.start_recording('even')652 self._recorder.stop_recording()653 self.assertEqual(False, self._recorder.play('even'))654 def test_updateLoopDelayStopAndRestartPlaying_loopDelayUpdated(self):655 self._recorder.start_recording('even')656 self._feed_even_pattern(1000)657 self._recorder.stop_recording()658 result = self._recorder.play('even', loop=True)659 self._recorder.set_loop_delay('even', 2000)660 self._recorder.stop_all()661 self._clock.advance(1)662 self._scheduler.idle()663 self._data_played = []664 result = self._recorder.play('even', loop=True)665 self.assertEqual(True, result)666 # Make sure notes are played back correctly in time.667 history = []668 self._scheduler.idle()669 history.append(self._data_played[:])670 for i in range(11):671 # Each step is 1 second672 self._clock.advance(1)673 self._scheduler.idle()674 history.append(self._data_played[:])675 self.assertEqual([676 [0, 10], # Before loop, first idle call677 [0, 10, 2, 12], # Loop 0678 [0, 10, 2, 12, 4, 14],679 [0, 10, 2, 12, 4, 14, 6, 16],680 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18], # w/ loop delay681 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18], # w/ loop delay682 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18, 0, 10],683 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18, 0, 10, 2, 12],684 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18, 0, 10, 2, 12, 4, 14],685 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18, 0, 10, 2, 12, 4, 14, 6, 16],686 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18, 0, 10, 2, 12, 4, 14, 6, 16, 8,687 18],688 [0, 10, 2, 12, 4, 14, 6, 16, 8, 18, 0, 10, 2, 12, 4, 14, 6, 16, 8,689 18]],690 history)691 def test_callingPlayWhilePlaying_restartsPattern(self):692 self._recorder.start_recording('even')693 self._feed_even_pattern(1000)694 self._recorder.stop_recording()695 result = self._recorder.play('even', loop=True)696 self._clock.advance(2)697 self._scheduler.idle()698 result = self._recorder.play('even', loop=True, loop_delay_ms=1000)699 self.assertEqual(True, result)700 # Make sure notes are played back correctly in time.701 history = []702 self._scheduler.idle()703 history.append(self._data_played[:])704 for i in range(5):705 # Each step is 1 second706 self._clock.advance(1)...
continuous_record.py
Source:continuous_record.py
1from rostk_plotting.transforms import *2from rostk_plotting.plotting_callbacks import PlottingCallbacks3from rostk_plotting.plotting_manager import PlottingManager, attribute_event, _parse_datatype_path, get_topic_from_msg, convert_topic_to_file_name4import cv25class ContinuousPlotting(PlottingManager, PlottingCallbacks):6 def __init__(self, topic_list, queue_size, slop_time):7 PlottingCallbacks.__init__(self)8 PlottingManager.__init__(self, topic_list, queue_size, slop_time, self)9 self.start_recording = False10 self.fourcc = cv2.VideoWriter_fourcc(*'MJPG')11 # maps a topic to an array of images to be saved later by the video writer12 self._topic_images_map = {}13 for topic_dict in topic_list:14 topics = list(topic_dict.keys())[0]15 self._topic_images_map[topics] = []16 rospy.loginfo("Made video array for {}".format(topics))17 self._video_written = False18 self._image_topic = None #can only set this inside the image callback function19 self._images = []20 def post_callback(self):21 # self.screen_cap_flag = False22 # save all stored data as video file23 pass24 def on_shutdown(self):25 if self._video_written:26 for topic, video_streams in self._topic_images_map.items():27 rospy.loginfo("Writing videos for topic: {}".format(topic))28 #get size of video to set the size of the video writer -> we assume the image sizes stay the same 29 first_image_size = video_streams[0].shape30 video_writer = cv2.VideoWriter(ContinuousPlotting.get_current_record_folder() + convert_topic_to_file_name(topic) + '.avi',31 self.fourcc, 20.0, (first_image_size[1],first_image_size[0]))32 for image in video_streams:33 video_writer.write(image)34 video_writer.release()35 def parse_command(self, command_string):36 if command_string == "start":37 rospy.loginfo("Starting video record")38 self.start_recording = True39 self._video_written = True40 if command_string == "stop":41 rospy.loginfo("Ending video record")42 self.start_recording = False43 @attribute_event("start_recording")44 def camera_info_callback(self, data):45 pass46 @attribute_event("start_recording")47 def image_callback(self, data):48 topic = get_topic_from_msg(data)49 rospy.loginfo("Topic {}".format((topic)))...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!