API — различия между версиями
TVclub (обсуждение | вклад) |
TVclub (обсуждение | вклад) |
||
Строка 334: | Строка 334: | ||
::::'''CH_PROG_END''' - время окончания передачи | ::::'''CH_PROG_END''' - время окончания передачи | ||
::::'''CH_PROG_DESC''' - описание передачи. Отсутствует, если описание недоступно. | ::::'''CH_PROG_DESC''' - описание передачи. Отсутствует, если описание недоступно. | ||
+ | |||
+ | |||
+ | |||
== [live] Получение ссылки на прямую трансляцию== | == [live] Получение ссылки на прямую трансляцию== | ||
Строка 407: | Строка 410: | ||
:: '''url''' | :: '''url''' | ||
::::'''<LIVE_URL>''' - прямая ссылка на прямую трансляцию | ::::'''<LIVE_URL>''' - прямая ссылка на прямую трансляцию | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | == [rec] Получение ссылки на запись== | ||
+ | |||
+ | ===Описание метода=== | ||
+ | Метод возвращает краткую информацию по каналу и ссылку на поток его прямой трансляции. | ||
+ | *Ссылка на поток должна быть использована в течении 5 минут | ||
+ | *Ссылка на поток привязана к IP клиента полученного в результате его запроса на сервер API. | ||
+ | *Ссылка на поток привязана к серверу вещания для которого она была получена. | ||
+ | |||
+ | |||
+ | ===Формат запроса=== | ||
+ | <pre>http://api.iptv.so/<API_VERSION>/<FORMAT_TYPE>/live?token=<TOKEN_ID>?cid=<CH_ID>&protected=<CODE></pre> | ||
+ | :Обязательные параметры: | ||
+ | ::cid - ID телеканала. | ||
+ | :Необязательные параметры: | ||
+ | ::protected - код родительского контроля, высылается в активационном письме. По умолчанию равен 0000 (четыре ноля). | ||
+ | |||
+ | ===Формат полученных данных=== | ||
+ | {| class="wikitable" style="float:left; margin-right:20px" | ||
+ | |+XML | ||
+ | |- | ||
+ | |<pre> | ||
+ | <response> | ||
+ | <live> | ||
+ | <channel> | ||
+ | <id><CH_ID></id> | ||
+ | <name><CH_NAME></name> | ||
+ | <protected><CH_PROTECTED_FLAG></protected> | ||
+ | <records><CH_REC_HOURS></records> | ||
+ | </channel> | ||
+ | <url><LIVE_URL></url> | ||
+ | </live> | ||
+ | <session> | ||
+ | <token><TOKEN_ID></token> | ||
+ | <expire><TOKEN_EXPIRE></expire> | ||
+ | <now><SERVERTIME></now> | ||
+ | </session> | ||
+ | </response> | ||
+ | </pre> | ||
+ | |} | ||
+ | {| class="wikitable" | ||
+ | |+JSON | ||
+ | |- | ||
+ | |<pre>{ | ||
+ | "live": { | ||
+ | "channel": { | ||
+ | "id": <CH_ID>, | ||
+ | "name": <CH_NAME>, | ||
+ | "protected": <CH_PROTECTED_FLAG>, | ||
+ | "records": <CH_REC_HOURS> | ||
+ | }, | ||
+ | "url": <LIVE_URL> | ||
+ | }, | ||
+ | "session": { | ||
+ | "token": <TOKEN_ID>, | ||
+ | "expire": <TOKEN_EXPIRE>, | ||
+ | "now": <SERVERTIME> | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
+ | |} | ||
+ | <div style="clear:both"></div> | ||
+ | |||
+ | |||
+ | ===Описание полученных данных=== | ||
+ | '''live''' - содержит: | ||
+ | :: '''channel''' - общая информация о канале | ||
+ | ::::'''CH_ID''' - ID канала | ||
+ | ::::'''CH_NAME''' - имя канала | ||
+ | ::::'''CH_PROTECTED_FLAG''' - указывает закрыт ли канал кодом доступа, значение 1 или 0. | ||
+ | ::::'''CH_REC_HOURS''' - наличие архива на канале в часах, 0 - архив отсутствует | ||
+ | :: '''url''' | ||
+ | ::::'''<LIVE_URL>''' - прямая ссылка на прямую трансляцию | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
==[epg] EPG для определенных каналов на заданный период времени== | ==[epg] EPG для определенных каналов на заданный период времени== |
Версия 08:12, 18 сентября 2016
Содержание
- 1 Общие обозначения
- 2 Методы
Общие обозначения
- <FORMAT_TYPE> - формат возврата ответа от сервера. Доступны формат XML и JSON.
- <API_VERSION> - Версия API. Текущая версия 1.0
- <SERVERTIME> - Текущее время на сервере.
- <TOKEN_ID> - Уникальный ключ token полученный в результате авторизации.
- <TOKEN_EXPIRE> - время до которого ключ token будет актуален.
Методы
[auth] Авторизация
Описание метода
Самым первым запросом на сервер API всегда должен быть запрос на авторизацию клиента. В случае успеха, сервер вернет информацию о аккаунте клиента и информации о созданной сессии в которой содержится уникальный ключ - token, для доступа к остальным методам API. Без этого ключа вызов других методов API невозможен.
Формат запроса
http://api.iptv.so/<API_VERSION>/<FORMAT_TYPE>/auth?hash=<HASH>
HASH - это MD5-хеш полученный в результате конкатенации логина пользователя и MD5-хеша пароля пользователя - MD5(<USER_LOGIN> + MD5(<USER_PASSWORD>))
Примеры запроса
PHP
$data=file_get_contents('http://api.iptv.so/1.0/xml/auth?hash='.MD5($login.MD5($password)));
Формат полученных данных
<response> <account> <info> <login><USER_LOGIN></login> <mail><USER_EMAIL></mail> <name><USER_NAME></name> </info> <options> <OPTION_NAME>1|0</OPTION_NAME> ... </options> <services> <item> <id><SERVICE_ID></id> <expire><SERVICE_EXPIRE></expire> <name><SERVICE_NAME></name> <type><SERVICE_TYPE></type> </item> ... </services> <settings> <server_id><SERVER_ID></server_id> <server_name><SERVER_NAME></server_name> <tz_name><TZ_NAME></tz_name> <tz_gmt><TZ_GMT></tz_gmt> </settings> </account> <session> <token><TOKEN_ID></token> <expire><TOKEN_EXPIRE></expire> <now><SERVERTIME></now> </session> </response> |
{ "account": { "info": { "login": <USER_LOGIN>, "mail": <USER_EMAIL>, "name": <USER_NAME> }, "options": { <OPTION_NAME>: 1|0 }, "services": [ { "id": <SERVICE_ID>, "expire": <SERVICE_EXPIRE>, "name": <SERVICE_NAME>, "type": <SERVICE_TYPE> }, ... ], "settings": { "server_id": <SERVER_ID>, "server_name": <SERVER_NAME>, "tz_name": <TZ_NAME>, "tz_gmt": <TZ_GMT> } }, "session": { "token": <TOKEN_ID>, "expire": <TOKEN_EXPIRE>, "now": <SERVERTIME> } } |
Описание полученных данных
account - содержит в себе
- info - информация о аккаунте клиента
- USER_LOGIN - логин клиента
- USER_EMAIL - e-mail клиента
- USER_NAME - имя клиента
- options - список доступных
- OPTION_NAME - имя опции, может принимать значение 1 - доступно или 0 - недоступно для клиента.
- services - список доступных для клиента сервисов, может содержать несколько вложенных элементов item удовлетворяющих следующему описанию:
- SERVICE_ID - уникальный ID сервиса
- SERVICE_EXPIRE - срок истечения подписки на сервис
- SERVICE_NAME - имя сервиса
- SERVICE_TYPE - тип сервиса [пакет каналов, опция, плейлист]
- settings - текущие настройки клиента
- SERVER_ID - ID сервера вещания
- SERVER_NAME - отображаемое имя сервера вещания
- TZ_NAME - имя временной зоны
- TZ_GMT - смещение временной зоны относительно Гринвича
- info - информация о аккаунте клиента
session - описание текущей сессии
- TOKEN_ID - ключ доступа который используется для вызова всех остальных методов API
- TOKEN_EXPIRE - время до которого действителен текущий ключ доступа. При каждом успешном запросе срок жизни ключа продлевается до 24-х часов с текущей даты.
- SERVERTIME - текущее время на сервере
[account] Аккаунт
Описание метода
Возвращает ту же информацию, что и метод auth. Может использоваться для получения информации об аккаунте без повторной авторизации.
Формат запроса
http://api.iptv.so/<API_VERSION>/<FORMAT_TYPE>/account?token=<TOKEN_ID>
[logout] Закрытие сессии
Описание метода
Метод уничтожает текущую сессию и все данные хранящиеся в ней.
Формат запроса
http://api.iptv.so/<API_VERSION>/<FORMAT_TYPE>/logout?token=<TOKEN_ID>
Формат полученных данных
<response> <session> <destroyed>1</destroyed> <now><SERVERTIME></now> </session> </response> |
{ "session": { "destroyed": 1, "now": <SERVERTIME> } } |
[groups] Список ТВ категорий
Описание метода
Возвращает полный список доступных для клиента ТВ категорий.
Формат запроса
http://api.iptv.so/<API_VERSION>/<FORMAT_TYPE>/groups?token=<TOKEN_ID>
Формат полученных данных
<response> <groups> <item> <name_ru><GROUP_ID></name_ru> <name_ru><GROUP_NAME_RU></name_ru> <name_en><GROUP_NAME_EN></name_en> <count><GROUP_CHANNELS_COUNT></count> </item> ... </groups> <session> <token><TOKEN_ID></token> <expire><TOKEN_EXPIRE></expire> <now><SERVERTIME></now> </session> </response> |
{ "groups": [ { "id": <GROUP_ID>, "name_ru": <GROUP_NAME_RU>, "name_en": <GROUP_NAME_EN>, "count": <GROUP_CHANNELS_COUNT> }, ... ], "session": { "token": <TOKEN_ID>, "expire": <TOKEN_EXPIRE>, "now": <SERVERTIME> } } |
Описание полученных данных
groups - содержит в себе
- GROUP_ID - ID группы
- GROUP_NAME_RU - Имя группы на русском языке
- GROUP_NAME_EN - Имя группы на английском языке
- GROUP_CHANNELS_COUNT - Количество каналов доступных для клиента в этой группе
[channels] Список каналов в группе
Описание метода
Возвращает постраничный список доступных для клиента каналов в определенной категории.
Формат запроса
http://api.iptv.so/<API_VERSION>/<FORMAT_TYPE>/channels?token=<TOKEN_ID>?gid=<GROUP_ID>&sort=1&limit=20&page=1
- Обязательные параметры:
- gid - ID группы каналов.
- Необязательные параметры:
- sort - способ сортировки. Доступные значения: 1 - сортировка по умолчанию, 2 - по ID канала, 3 - по имени канала.
Формат полученных данных
<response> <channels> <item> <info> <id><CH_ID></id> <name><CH_NAME></name> <groups><CH_GROUPS></groups> <protected><CH_PROTECTED_FLAG></protected> <records><CH_REC_HOURS></records> </info> <epg> <text><CH_PROG_TEXT></text> <start><CH_PROG_START></start> <end><CH_PROG_END></end> <description><CH_PROG_DESC></description> </epg> </item> ... </channels> <session> <token><TOKEN_ID></token> <expire><TOKEN_EXPIRE></expire> <now><SERVERTIME></now> </session> </response> |
{ "channels": [ { "info": { "id": <CH_ID>, "name": <CH_NAME>, "groups": <CH_GROUPS>, "protected": <CH_PROTECTED_FLAG>, "records": <CH_REC_HOURS>, }, "epg": [ "text": <CH_PROG_TEXT>, "start": <CH_PROG_START>, "end": <CH_PROG_END>, "description": <CH_PROG_DESC> ] }, ... ], "session": { "token": <TOKEN_ID>, "expire": <TOKEN_EXPIRE>, "now": <SERVERTIME> } } |
Описание полученных данных
channels - содержит массив данных
- info - общая информация о канале
- CH_ID - ID канала
- CH_NAME - имя канала
- CH_GROUPS - ID категорий канала перечисленных через запятую
- CH_PROTECTED_FLAG - указывает закрыт ли канал кодом доступа, значение 1 или 0.
- CH_REC_HOURS - наличие архива на канале в часах, 0 - архив отсутствует
- epg - информация о текущей программе передач. Пустой элемент, если телепрограмма не доступна.
- CH_PROG_TEXT - название текущей передачи
- CH_PROG_START - время начала передачи
- CH_PROG_END - время окончания передачи
- CH_PROG_DESC - описание передачи. Отсутствует, если описание недоступно.
- info - общая информация о канале
[live] Получение ссылки на прямую трансляцию
Описание метода
Метод возвращает краткую информацию по каналу и ссылку на поток его прямой трансляции.
- Ссылка на поток должна быть использована в течении 5 минут
- Ссылка на поток привязана к IP клиента полученного в результате его запроса на сервер API.
- Ссылка на поток привязана к серверу вещания для которого она была получена.
Формат запроса
http://api.iptv.so/<API_VERSION>/<FORMAT_TYPE>/live?token=<TOKEN_ID>?cid=<CH_ID>&protected=<CODE>
- Обязательные параметры:
- cid - ID телеканала.
- Необязательные параметры:
- protected - код родительского контроля, высылается в активационном письме. По умолчанию равен 0000 (четыре ноля).
Формат полученных данных
<response> <live> <channel> <id><CH_ID></id> <name><CH_NAME></name> <protected><CH_PROTECTED_FLAG></protected> <records><CH_REC_HOURS></records> </channel> <url><LIVE_URL></url> </live> <session> <token><TOKEN_ID></token> <expire><TOKEN_EXPIRE></expire> <now><SERVERTIME></now> </session> </response> |
{ "live": { "channel": { "id": <CH_ID>, "name": <CH_NAME>, "protected": <CH_PROTECTED_FLAG>, "records": <CH_REC_HOURS> }, "url": <LIVE_URL> }, "session": { "token": <TOKEN_ID>, "expire": <TOKEN_EXPIRE>, "now": <SERVERTIME> } } |
Описание полученных данных
live - содержит:
- channel - общая информация о канале
- CH_ID - ID канала
- CH_NAME - имя канала
- CH_PROTECTED_FLAG - указывает закрыт ли канал кодом доступа, значение 1 или 0.
- CH_REC_HOURS - наличие архива на канале в часах, 0 - архив отсутствует
- url
- <LIVE_URL> - прямая ссылка на прямую трансляцию
- channel - общая информация о канале
[rec] Получение ссылки на запись
Описание метода
Метод возвращает краткую информацию по каналу и ссылку на поток его прямой трансляции.
- Ссылка на поток должна быть использована в течении 5 минут
- Ссылка на поток привязана к IP клиента полученного в результате его запроса на сервер API.
- Ссылка на поток привязана к серверу вещания для которого она была получена.
Формат запроса
http://api.iptv.so/<API_VERSION>/<FORMAT_TYPE>/live?token=<TOKEN_ID>?cid=<CH_ID>&protected=<CODE>
- Обязательные параметры:
- cid - ID телеканала.
- Необязательные параметры:
- protected - код родительского контроля, высылается в активационном письме. По умолчанию равен 0000 (четыре ноля).
Формат полученных данных
<response> <live> <channel> <id><CH_ID></id> <name><CH_NAME></name> <protected><CH_PROTECTED_FLAG></protected> <records><CH_REC_HOURS></records> </channel> <url><LIVE_URL></url> </live> <session> <token><TOKEN_ID></token> <expire><TOKEN_EXPIRE></expire> <now><SERVERTIME></now> </session> </response> |
{ "live": { "channel": { "id": <CH_ID>, "name": <CH_NAME>, "protected": <CH_PROTECTED_FLAG>, "records": <CH_REC_HOURS> }, "url": <LIVE_URL> }, "session": { "token": <TOKEN_ID>, "expire": <TOKEN_EXPIRE>, "now": <SERVERTIME> } } |
Описание полученных данных
live - содержит:
- channel - общая информация о канале
- CH_ID - ID канала
- CH_NAME - имя канала
- CH_PROTECTED_FLAG - указывает закрыт ли канал кодом доступа, значение 1 или 0.
- CH_REC_HOURS - наличие архива на канале в часах, 0 - архив отсутствует
- url
- <LIVE_URL> - прямая ссылка на прямую трансляцию
- channel - общая информация о канале
[epg] EPG для определенных каналов на заданный период времени
time
@time - epg start time, unixtime
@period - epg time to period, hours
@channels - epg for channels ex.: 1,2,3
or @gid - all channels in this group id
@desc_limit - int, 0 - off, 200 - max
@limit
@start
@page
@sort - 1|2|3