115 lines
5.3 KiB
Markdown
115 lines
5.3 KiB
Markdown
# Результаты в формате JSON
|
||
|
||
Результаты проверки могут быть выведены в формате JSON.
|
||
Для этого необходимо указать аргумент `-j` перед вызовом программы.
|
||
|
||
Структуры описаны файлах:
|
||
- [Канал](../app/playlist/channel.go)
|
||
- [Группа](../app/playlist/group.go)
|
||
- [Плейлист](../app/playlist/playlist.go)
|
||
|
||
Ниже описан пример результата проверки плейлиста с четырьмя каналами:
|
||
1. `01df21bb720e46fa8b3a1c064effa41f` доступен для просмотра, сервер отдаёт m3u с разными потоками;
|
||
2. `36a32a9741e869d182c21beb38dce0c9` доступен для просмотра, сервер отдаёт сразу один поток с бинарными данными, в ответе они скрыты строкой `"binary"`;
|
||
3. `2dab47162d78814e2a55b65c292d91e7` не доступен для просмотра, сервер отдаёт ошибку 403 и html страницы-заглушки;
|
||
4. `d5e815a6cb24221b317afc3eb436b537` не доступен для просмотра, произошла ошибка при проверке.
|
||
|
||
```json
|
||
[
|
||
{
|
||
"code": "ru",
|
||
"name": "[iptv-org] Российские",
|
||
"description": "",
|
||
"url": "https://raw.githubusercontent.com/iptv-org/iptv/master/streams/ru.m3u",
|
||
"source": "https://github.com/iptv-org/iptv",
|
||
"content": "#EXTM3U\n#EXTINF:-1 tvg-id=\"vijuPlusComedy.ru\",viju+ Comedy (1080p)\nhttp://77.235.1.17/vip_comedy/index.m3u8\n#EXTINF:-1 tvg-id=\"NanoHD.ru\",Нано ТВ HD\nhttp://s1.tv-nano.com/Nano_rec/index.m3u8\n#EXTINF:-1 tvg-id=\"\",TRK 555 (720p)\nhttp://trk555.tv:8888/live\n#EXTINF:-1 tvg-id=\"NizhniyNovgorod24.ru\",Нижний Новгород 24 (720p) [Not 24/7]\nhttps://live-vestinn.cdnvideo.ru/vestinn/nn24-khl/playlist.m3u8\n",
|
||
"isOnline": true,
|
||
"attributes": null,
|
||
"groups": {},
|
||
"channels": {
|
||
"01df21bb720e46fa8b3a1c064effa41f": {
|
||
"id": "01df21bb720e46fa8b3a1c064effa41f",
|
||
"title": "Нано ТВ HD",
|
||
"url": "http://s1.tv-nano.com/Nano_rec/index.m3u8",
|
||
"groupId": "",
|
||
"attributes": {
|
||
"tvg-id": "NanoHD.ru"
|
||
},
|
||
"status": 200,
|
||
"isOnline": true,
|
||
"error": "",
|
||
"content": "#EXTM3U\n#EXT-X-STREAM-INF:AVERAGE-BANDWIDTH=670000,BANDWIDTH=840000,RESOLUTION=480x270,FRAME-RATE=25.000,CODECS=\"avc1.4d400d,mp4a.40.2\",CLOSED-CAPTIONS=NONE\ntracks-v3a1/mono.ts.m3u8\n#EXT-X-STREAM-INF:AVERAGE-BANDWIDTH=1320000,BANDWIDTH=1650000,RESOLUTION=640x360,FRAME-RATE=25.000,CODECS=\"avc1.4d4015,mp4a.40.2\",CLOSED-CAPTIONS=NONE\ntracks-v2a1/mono.ts.m3u8\n#EXT-X-STREAM-INF:AVERAGE-BANDWIDTH=2380000,BANDWIDTH=2980000,RESOLUTION=1024x576,FRAME-RATE=25.000,CODECS=\"avc1.4d401e,mp4a.40.2\",CLOSED-CAPTIONS=NONE\ntracks-v1a1/mono.ts.m3u8\n",
|
||
"contentType": "application/vnd.apple.mpegurl",
|
||
"tags": [
|
||
"untagged"
|
||
],
|
||
"checkedAt": 1234567890
|
||
},
|
||
"36a32a9741e869d182c21beb38dce0c9": {
|
||
"id": "36a32a9741e869d182c21beb38dce0c9",
|
||
"title": "TRK 555 (720p)",
|
||
"url": "http://trk555.tv:8888/live",
|
||
"groupId": "",
|
||
"attributes": {
|
||
"tvg-id": ""
|
||
},
|
||
"status": 200,
|
||
"isOnline": true,
|
||
"error": "",
|
||
"content": "\u003cbinary\u003e",
|
||
"contentType": "application/octet-stream",
|
||
"tags": [
|
||
"untagged"
|
||
],
|
||
"checkedAt": 1234567890
|
||
},
|
||
"2dab47162d78814e2a55b65c292d91e7": {
|
||
"id": "2dab47162d78814e2a55b65c292d91e7",
|
||
"title": "Нижний Новгород 24 (720p) [Not 24/7]",
|
||
"url": "https://live-vestinn.cdnvideo.ru/vestinn/nn24-khl/playlist.m3u8",
|
||
"groupId": "",
|
||
"attributes": {
|
||
"tvg-id": "NizhniyNovgorod24.ru"
|
||
},
|
||
"status": 403,
|
||
"isOnline": false,
|
||
"error": "\u003chtml\u003e\r\n\u003chead\u003e\u003ctitle\u003e403 Forbidden\u003c/title\u003e\u003c/head\u003e\r\n\u003cbody\u003e\r\n\u003ccenter\u003e\u003ch1\u003e403 Forbidden\u003c/h1\u003e\u003c/center\u003e\r\n\u003chr\u003e\u003ccenter\u003enginx\u003c/center\u003e\r\n\u003c/body\u003e\r\n\u003c/html\u003e\r\n",
|
||
"content": "",
|
||
"contentType": "text/html",
|
||
"tags": [
|
||
"RU",
|
||
"local",
|
||
"news"
|
||
],
|
||
"checkedAt": 1234567890
|
||
},
|
||
"d5e815a6cb24221b317afc3eb436b537": {
|
||
"id": "d5e815a6cb24221b317afc3eb436b537",
|
||
"title": "viju+ Comedy (1080p)",
|
||
"url": "http://77.235.1.17/vip_comedy/index.m3u8",
|
||
"groupId": "",
|
||
"attributes": {
|
||
"tvg-id": "vijuPlusComedy.ru"
|
||
},
|
||
"status": 0,
|
||
"isOnline": false,
|
||
"error": "",
|
||
"content": "",
|
||
"contentType": "",
|
||
"tags": [
|
||
"untagged"
|
||
],
|
||
"checkedAt": 1234567890
|
||
}
|
||
},
|
||
"onlineCount": 2,
|
||
"offlineCount": 2,
|
||
"checkedAt": 1234567890
|
||
}
|
||
]
|
||
```
|
||
|
||
На этом примере видно, что:
|
||
- `channels` не массив, а объект, в котором ключи равны идентификаторам каналов `id`;
|
||
- `attributes` не массив, а объект, в котором ключи есть названия атрибутов.
|