Developers
Получение token
Чтобы работать с большинством методов API требуется получить access_token пользователя.1. Открытие диалога авторизации – https://id.tviply.com/oauth
Параметры:
- client_id – Идентификатор Вашего приложения.
- redirect_uri – Адрес, на который будет переадресован пользователь после прохождения авторизации.
Пример запроса:
https://id.tviply.com/oauth?client_id=1&redirect_uri=https://example.tv/oauth_back
Если пользователь не вошел на Tviply, то в диалоговом окне ему будет предложено выполнить вход.
2. Получение code
После успешной авторизации приложения браузер пользователя будет перенаправлен по адресу redirect_uri, указанному при открытии диалога авторизации.
При этом код для получения ключа доступа code будет передан как GET-параметр:
https://example.tv/oauth_back?code=67c5e3b9f3d2fad016b4cee7c7b9c711
3. Получение access_token
Для получения access_token необходимо выполнить запрос с Вашего сервера на https://id.tviply.com/oauth/access_token, передав следующие параметры:
Параметры:
- client_id – Идентификатор Вашего приложения.
- client_secret – Секретный ключ Вашего приложения.
- redirect_uri – Адрес, который использовался при получении code на первом этапе авторизации.
- code – Временный код, полученный после прохождения авторизации.
Пример запроса:
https://id.tviply.com/oauth/access_token?client_id=1
&client_secret=2a8ccfd229e40c67a013d9024a129c09e5f9402258e427207cab5aaba6829d69
&redirect_uri=https://example.tv/oauth_back
&code=67c5e3b9f3d2fad016b4cee7c7b9c711
Email и ключ доступа access_token к методам API будет передан в ответе запроса.
Далее в документации access_token будет представляться как token
Methods API
abusetoken
Отправка сигнала о злоупотребление.
POST abuse
Параметры:
- reason – id причины
- channel – имя канала
- vodId – id записи
- timer – время
- description – дополнительная информация
Пример запроса:
curl -X POST -H "Authorization: Bearer token" -d '{"reason":1,"channel":"channelName"}' https://kouko.tviply.com/abuse
userstoken
Возвращает информацию о пользователях.
GET users/<var>param</var>
Параметры:
- param – может быть <var>self</var>, <var>id</var> или <var>name</var> пользователя
Пример запроса:
curl -X GET -H "Authorization: Bearer token" https://kouko.tviply.com/users/self
users/trackingtoken
Возвращает подписки на каналы.
GET users/tracking
Параметры:
- limit – сколько записей
- offset – смещение списка
Пример запроса:
curl -X GET -H "Authorization: Bearer token" https://kouko.tviply.com/users/tracking?limit=10
users/settingstoken
Устанавливает настройки пользователя.
PATCH users/settings
Параметры:
- name – проверить новое имя
- nameSave – сохранить новое имя
Пример запроса:
curl -X PATCH -H "Authorization: Bearer token" -d '{"name":"ExampleName"}' https://kouko.tviply.com/users/settings
users/pushTokenstokentrust
Устанавливает токены для отправки push оповещений.
PATCH users/pushTokens
Параметры:
- token_apns – token ios device
- token_droid – token android device
Пример запроса:
curl -X PATCH -H "Authorization: Bearer token" -d '{"token_apns":"59407078da...e3de763c82f"}' https://kouko.tviply.com/users/pushTokens
users/avatartoken
Вернет <var>url</var> на которую нужно отправить POST запрос с изображением.
GET users/avatar
Пример запроса:
curl -X GET -H "Authorization: Bearer token" https://kouko.tviply.com/users/avatar
curl -X POST -H "Authorization: Bearer token" --data-binary "@path/to/photo.jpg" urlusers/blacklisttoken
Работа с чёрным списком.
GET|POST|DELETE users/blacklist
Параметры:
- userId – id пользователя
Пример запроса:
# Получить чёрный список
curl -X GET -H "Authorization: Bearer token" https://kouko.tviply.com/users/blacklist
# Добавить в чёрный список
curl -X POST -H "Authorization: Bearer token" -d '{"userId":1}' https://kouko.tviply.com/users/blacklist
# Убрать из чёрного списка
curl -X DELETE -H "Authorization: Bearer token" -d '{"userId":1}' https://kouko.tviply.com/users/blacklistchannelsfreedom
Возвращает информацию о каналах.
GET channels/<var>id</var>
Параметры:
- id – id канала
- select – on-air = список каналов в прямом эфире
- limit – сколько записей
- offset – смещение списка
Пример запроса:
curl -X GET https://kouko.tviply.com/channels/1
channels/livefreedom
Получить поток стрима.
GET channels/live/<var>id</var>
Параметры:
- id – id канала
Пример запроса:
curl -X GET https://kouko.tviply.com/channels/live/1
channels/rtmpSecrettokentrust
Возвращает хост и ключ канала пользователя или генерирует новый.
PUT channels/rtmpSecret
Параметры:
- channelId – id канала
- replace – генерирует новый ключ
Пример запроса:
curl -X PUT -H "Authorization: Bearer token" -d '{"channelId":1,"replace":false}' https://kouko.tviply.com/channels/rtmpSecret
channels/statusfreedom
Возвращает состояние трансляции.
GET channels/status/<var>id</var>
Параметры:
- id – id канала
Пример запроса:
curl -X GET https://kouko.tviply.com/channels/status/1
channels/liketoken
Подписывает или отписывает от канала.
PUT channels/like
Параметры:
- channelId – id канала
Пример запроса:
curl -X PUT -H "Authorization: Bearer token" -d '{"channelId":1}' https://kouko.tviply.com/channels/like
channels/belltoken
Вкл/выкл оповещения.
PUT channels/bell
Параметры:
- channelId – id канала
Пример запроса:
curl -X PUT -H "Authorization: Bearer token" -d '{"channelId":1}' https://kouko.tviply.com/channels/bell
channels/isFollowingtoken
Возвращает информацию о подписки.
GET channels/isFollowing/<var>channelNameId</var>/<var>checkUserName</var>
Параметры:
- channelNameId – имя или id канала
- checkUserName – имя пользователя
Пример запроса:
curl -X GET -H "Authorization: Bearer token" https://kouko.tviply.com/channels/isFollowing/1/self
channels/settingstoken
Устанавливает настройки канала.
PATCH channels/settings/<var>channelId</var>
Параметры:
- channelId – id канала
- title – заголовок трансляции
- description – описание канала
- broadcast – id раздела трансляции
- restreamHost – рестрим хост
- notification – переключатель on/off
- vod – переключатель on/off
- moments – переключатель on/off
- restream – переключатель on/off
- notifySubscription – переключатель on/off
- forAdults – переключатель on/off
Пример запроса:
curl -X PATCH -H "Authorization: Bearer token" -d '{"title":"Example request"}' https://kouko.tviply.com/channels/settings/1
channels/covertoken
Вернет <var>url</var> на которую нужно отправить POST запрос с изображением.
GET channels/cover/<var>channelId</var>
Параметры:
- channelId – id канала
Пример запроса:
curl -X GET -H "Authorization: Bearer token" https://kouko.tviply.com/channels/cover/1
curl -X POST -H "Authorization: Bearer token" --data-binary "@path/to/cover.jpg" urlchannels/followersfreedom
Список подписчиков канала.
GET channels/followers/<var>channelId</var>/<var>limit</var>/<var>offset</var>
Параметры:
- channelId – id канала
- limit – сколько записей
- offset – смещение списка
Пример запроса:
curl -X GET https://kouko.tviply.com/channels/followers/1/10
channels/streamModtoken
Данные для режима стримера.
GET channels/streamMod/<var>channelId</var>
Параметры:
- channelId – id канала
Пример запроса:
curl -X GET -H "Authorization: Bearer token" https://kouko.tviply.com/channels/streamMod/1
chatfreedomtoken
Последние сообщения, ограничители, роли.
GET chat/<var>channelId</var>
Параметры:
- channelId – id канала
Пример запроса:
curl -X GET https://kouko.tviply.com/chat/1
chat/livefreedomtoken
Подписаться на получение сообщений чата.
WebSocket chat/live
Параметры:
- channelId – id канала
- liveToken – Получить: curl -X GET -H "Authorization: Bearer {{token}}" https://id.tviply.com/check
Пример запроса:
# Подписаться на сообщения чата
wscat -c "https://ws.tviply.com" -w 60 -x {"command":"subscribe","channel":"chat.channelId","data":{}}
# Добавление авторизации
wscat -c "https://ws.tviply.com/liveToken"chat/messagestoken
Работа с сообщениями.
GET|POST|PATCH chat/messages
Параметры:
- channelId – id канала
- message – текст сообщения
- voice – blob base64; type: audio/ogg; max size: 1 MiB
- userId – id пользователя
- limit – сколько записей, максимум 100
- time – время сообщения
Пример запроса:
# Получить свои последние сообщения или пользователя.
curl -X GET -H "Authorization: Bearer token" https://kouko.tviply.com/chat/messages?channelId=1&userId=2&limit=10
# Отправить сообщение в чат
curl -X POST -H "Authorization: Bearer token" -d '{"channelId":1,"message":"Test message by using api and curl"}' https://kouko.tviply.com/chat/messages
# Отправить звуковое сообщение
curl -X POST -H "Authorization: Bearer token" -d '{"channelId":1,"voice":"--blob-in-base64--"}' https://kouko.tviply.com/chat/messages
# Редактировать, только для владельца сообщений за последние 5 мин.
curl -X PATCH -H "Authorization: Bearer token" -d '{"channelId":1,"time":1679589698.6486,"message":"new text"}' https://kouko.tviply.com/chat/messages/1chat/usersfreedomtoken
Получить список пользователей.
GET chat/users/<var>channelId</var>/<var>type</var>
Параметры:
- channelId – id канала
- type – online | moderator | banned
Пример запроса:
curl -X GET https://kouko.tviply.com/chat/users/1/online
chat/emotesfreedomtoken
Получить/Добавить/Изменить/Удалить эмоции канала.
GET | POST | PUT | DELETE chat/emotes/<var>channelId</var>
Параметры:
- channelId – id канала
- id – id эмоции
- name – новое имя
- url – путь для загрузки эмоции
Пример запроса:
# Получить список эмоций канала
curl -X GET https://kouko.tviply.com/chat/emotes/1
# Получить список эмоций канала + пользователя
curl -X GET -H "Authorization: Bearer token" https://kouko.tviply.com/chat/emotes/1
# Изменить уникальное имя
curl -X PUT -H "Authorization: Bearer token" -d '{"id":10,"name":"nameEmote"}' https://kouko.tviply.com/chat/emotes/1
# Удалить эмоцию
curl -X DELETE -H "Authorization: Bearer token" -d '{"id":10}' https://kouko.tviply.com/chat/emotes/1
# Загрузить эмоцию, вернет url на которую нужно отправить POST запрос с изображением.
curl -X GET -H "Authorization: Bearer token" https://kouko.tviply.com/chat/emotes/1/upload
curl -X POST -H "Authorization: Bearer token" --data-binary "@path/to/emote.gif" urlchat/translatetoken
Получить перевод сообщения, язык перевода от сессии пользователя.
POST chat/translate
Параметры:
- text – текст сообщения
Пример запроса:
curl -X POST -H "Authorization: Bearer token" -d '{"text":"Test message by using api and curl"}' https://kouko.tviply.com/chat/translate
recordsfreedom
Список записей.
GET records/<var>vodId</var>
Параметры:
- vodId – id записи
- channelId – id канала
- broadcastId – id категории
- limit – сколько записей
- offset – смещение списка
Пример запроса:
curl -X GET https://kouko.tviply.com/records?channelId=1&limit=10
records/playfreedom
Получить поток записи.
GET records/play/<var>vodId</var>
Параметры:
- vodId – id записи
Пример запроса:
curl -X GET https://kouko.tviply.com/records/play/a1b2c3d4e5
records/chatfreedom
История чата записи.
GET records/chat/<var>vodId</var>/<var>part</var>
Параметры:
- vodId – id записи
- part – каждая часть по 5 * 60 сек.
Пример запроса:
curl -X GET https://kouko.tviply.com/records/chat/a1b2c3d4e5/1
records/playbacktoken
Сохранить позицию воспроизведения.
PUT records/playback
Параметры:
- vodId – id записи
- time – позиция в сек.
Пример запроса:
curl -X PUT -H "Authorization: Bearer token" -d '{"vodId":"a1b2c3d4e5","time":10}' https://kouko.tviply.com/records/playback
records/resumetoken
Получить позицию воспроизведения.
GET records/resume/<var>vodId</var>
Параметры:
- vodId – id записи
Пример запроса:
curl -X GET -H "Authorization: Bearer token" https://kouko.tviply.com/records/resume/a1b2c3d4e5
records/edittoken
Редактирование записи.
PUT records/edit/<var>vodId</var>
Параметры:
- vodId – id записи
- name – title | broadcast
- value – значение для <var>name</var>
Пример запроса:
curl -X PUT -H "Authorization: Bearer token" -d '{"name":"title","value":"New title"}' https://kouko.tviply.com/records/edit/a1b2c3d4e5
records/removetoken
Удалить запись.
DELETE records/remove
Параметры:
- vodId – id записи
Пример запроса:
curl -X DELETE -H "Authorization: Bearer token" -d '{"vodId":"a1b2c3d4e5"}' https://kouko.tviply.com/records/remove
records/covertoken
Генерирует новую обложку.
PUT records/cover
Параметры:
- vodId – id записи
Пример запроса:
curl -X PUT -H "Authorization: Bearer token" -d '{"vodId":"a1b2c3d4e5"}' https://kouko.tviply.com/records/cover
records/mp4token
Запрос на создание исходника в mp4 формате.
GET | POST records/mp4/<var>vodId</var>
Параметры:
- vodId – id записи
Пример запроса:
# Запрос на создание
curl -X POST -H "Authorization: Bearer token" https://kouko.tviply.com/records/mp4/a1b2c3d4e5
# Получить состояние
curl -X GET -H "Authorization: Bearer token" https://kouko.tviply.com/records/mp4/a1b2c3d4e5records/chaptersfreedomtoken
Получить, изменить метки.
GET | PUT records/chapters/<var>vodId</var>
Параметры:
- vodId – id записи
- list – список глав
Пример запроса:
# Получить
curl -X GET https://kouko.tviply.com/records/chapters/a1b2c3d4e5
# Заменить
curl -X PUT -H "Authorization: Bearer token" -d '{"list":[{"position":0,"title":"Test position 0 sec."},{"position":60,"broadcast_id":1234}]}' https://kouko.tviply.com/records/chapters/a1b2c3d4e5records/activityfreedom
Получить активность чата записи.
GET records/activity/<var>vodId</var>
Параметры:
- vodId – id записи
Пример запроса:
curl -X GET https://kouko.tviply.com/records/activity/a1b2c3d4e5
momentsfreedom
Список моментов.
GET moments/<var>momentId</var>
Параметры:
- momentId – id момента
- channelId – id канала
- ownerId – id владельца
- broadcastId – id категории
- select – owner | unpublished
- limit – сколько записей
- offset – смещение списка
- sort – newest | popular | popular-month
Пример запроса:
curl -X GET https://kouko.tviply.com/moments?channelId=1&limit=10
moments/playfreedom
Получить поток записи.
GET moments/play/<var>id</var>
Параметры:
- id – id момента
Пример запроса:
curl -X GET https://kouko.tviply.com/moments/play/a1b2c3d4e5
moments/edittoken
Редактирование момента.
PUT moments/edit/<var>id</var>
Параметры:
- id – id момента
- name – title | broadcast
- value – значение для <var>name</var>
Пример запроса:
curl -X PUT -H "Authorization: Bearer token" -d '{"name":"title","value":"New title"}' https://kouko.tviply.com/moments/edit/a1b2c3d4e5
moments/removetoken
Удалить момент.
DELETE moments/remove
Параметры:
- id – id момента
Пример запроса:
curl -X DELETE -H "Authorization: Bearer token" -d '{"id":"a1b2c3d4e5"}' https://kouko.tviply.com/moments/remove
broadcastsfreedom
Получить информацию о категории вещания.
GET broadcasts/<var>id</var>
Параметры:
- idOrName – id или имя раздела вещания
- limit – сколько записей
- offset – смещение списка
Пример запроса:
curl -X GET https://kouko.tviply.com/broadcasts?limit=10
broadcasts/searchfreedom
Поиск по категориям трансляции.
GET broadcasts/search/<var>query</var>
Параметры:
- query – текст поиска
Пример запроса:
curl -X GET https://kouko.tviply.com/broadcasts/search/over
searchfreedom
Поиск по каналам и категориям трансляции.
GET search/<var>query</var>
Параметры:
- query – текст поиска
Пример запроса:
curl -X GET https://kouko.tviply.com/search/over