Закрытая бета · публичный запуск 15 сентября 2026

Видео в вашем продукте — один API

Live-стримы, VOD-хостинг и видеозвонки через WebRTC. Загружайте, доставляйте и масштабируйте видео без собственных CDN и медиасерверов. Все эндпоинты опубликованы — интегрируйтесь уже сегодня.

До публичного запуска
--
дней
--
часов
--
минут
--
секунд
api.vidora.io — v0.9.2
$ curl -s -X POST https://api.vidora.io/v1/live \
    -H "Authorization: Bearer $VIDORA_TOKEN" \
    -d '{ "name": "DevConf 2026", "latency_mode": "low" }'

# ответ
{
  "id": "live_Tm4xPq9wRz",
  "status": "idle",
  "ingest": {
    "rtmp_url": "rtmp://ingest.vidora.io/live",
    "stream_key": "sk_e4c1a97f2b6d"
  },
  "playback": "https://watch.vidora.io/pb_Nw5rYt3uKm"
}
99.99%SLA аптайм
~2 cзадержка HLS-доставки
~200 мсзадержка WebRTC
4K60 HDRмакс. качество
12edge-регионов
// Возможности

Вся видео-инфраструктура из одной точки

Не нужно склеивать инкодировщик, CDN, сигналинг и биллинг. Vidora закрывает весь путь видео: от загрузки до зрителя.

Live-стримы

Приём RTMP и SRT, отдача в HLS/DASH, режим низкой задержки, DVR-перемотка и автоматическая запись эфира.

VOD-хостинг

Прямая загрузка файлов до 500 ГБ, транскодирование в 6 профилей, постеры, субтитры и подписанные ссылки.

Видеозвонки

WebRTC-комнаты до 100 участников: демонстрация экрана, запись, токены с грантами прав и TURN-серверы в комплекте.

Аналитика в реальном времени

Зрители, битрейт, QoE, география и пиковые онлайны — по API и в дашборде, с точностью до секунды.

Webhooks

Мгновенные события о готовности видео, старте эфира и записи звонков. Подпись HMAC SHA-256 из коробки.

Безопасность

JWT-токены, подписанные URL с TTL, шифрование при передаче и хранении, готовность к подключению DRM.

// API

REST API, готовый к интеграции

Предсказуемый ресурс-ориентированный API, JSON везде, понятные ошибки и идемпотентность. Спецификация заморожена и войдёт в v1.0 без изменений.

🌐 Базовый URL и окружения

Продуктовые и тестовые ключи полностью изолированы: тестовый трафик не тарифицируется.

https://api.vidora.io/v1
https://sandbox.vidora.io/v1
  • Версия APIv1 (сейчас v0.9.2)
  • ФорматJSON / UTF-8
  • Idempotency-Keyподдерживается

🔑 Аутентификация и лимиты

Все запросы — с заголовком Authorization: Bearer <token>. Токен получается из API-ключа (vd_live_… / vd_test_…) и живёт 1 час.

  • Rate limit120 запросов / мин, burst 30
  • Заголовки лимитовx-ratelimit-*
  • ОшибкиRFC-стиль, коды + message
  • Webhook-подписьX-Vidora-Signature (HMAC)
Формат ошибки: { "error": { "code": "not_found", "message": "…", "status": 404 } }
// Документация

Все эндпоинты публичны

Полный список методов, доступных уже сейчас участникам закрытой беты. Нажмите на эндпоинт, чтобы увидеть тело запроса и пример ответа.

// Интеграция

От первого запроса до продакшена за один день

Готовые сценарии на cURL, JavaScript и Python. Скопируйте и запустите прямо сейчас — песочница принимает те же запросы.

1. Загрузка видео в три шага

Файл уходит напрямую в хранилище Vidora по подписанному URL — минуя ваш сервер.

# 1. Создаём ассет и получаем подписанный URL для загрузки
curl -s -X POST https://api.vidora.io/v1/videos \
  -H "Authorization: Bearer $VIDORA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Презентация продукта",
    "privacy": "private",
    "callback_url": "https://example.com/hooks/vidora"
  }'

# 2. Загружаем файл напрямую в хранилище (URL живёт 24 часа)
curl -s -X PUT --upload-file ./presentation.mp4 \
  "https://upload.vidora.io/u/eyJhbGciOiJIUzI1NiJ9..."

# 3. Готовность придёт событием video.ready — либо поллинг статуса
curl -s https://api.vidora.io/v1/videos/vid_8Kf3Lm2pQr \
  -H "Authorization: Bearer $VIDORA_TOKEN"
const API = 'https://api.vidora.io/v1';
const token = process.env.VIDORA_TOKEN;

// 1. Создаём ассет
const asset = await fetch(API + '/videos', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer ' + token,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({ title: 'Презентация продукта', privacy: 'private' })
}).then(r => r.json());

// 2. Загружаем файл, не прогоняя его через свой сервер
await fetch(asset.upload.url, {
  method: 'PUT',
  body: fileInput.files[0]
});

// 3. Ждём событие video.ready в webhook — или поллим GET /v1/videos/{id}
import requests

API = "https://api.vidora.io/v1"
headers = {"Authorization": f"Bearer {TOKEN}"}

# 1. Создаём ассет
asset = requests.post(API + "/videos", headers=headers, json={
    "title": "Презентация продукта",
    "privacy": "private",
}).json()

# 2. Прямая загрузка файла в хранилище
with open("presentation.mp4", "rb") as f:
    requests.put(asset["upload"]["url"], data=f)

# 3. Ожидаем событие video.ready в webhook

2. Видеозвонок в браузере

Токен участника выпускается на вашем бэкенде, браузер подключается к сигналингу и обменивается SDP.

// Токен участника выпускает ВАШ сервер: POST /v1/rooms/{room_id}/tokens
const token = await myBackend.getCallToken('room_x7Kp2mWq', 'user_123');

// Подключаемся к сигналингу Vidora
const ws = new WebSocket('wss://rtc.vidora.io/v1/ws?token=' + token);

ws.onopen = () => ws.send(JSON.stringify({
  type: 'join',
  room: 'room_x7Kp2mWq',
  tracks: { cam: true, mic: true, screen: false }
}));

ws.onmessage = (e) => {
  const ev = JSON.parse(e.data);
  if (ev.type === 'offer') startWebRTC(ev.sdp, ev.identity);
  if (ev.type === 'participant.left') removeTile(ev.identity);
};
// Видео-дорожки идут P2P/SFU по WebRTC, TURN-креды: GET /v1/rtc/turn
import requests

def issue_call_token(room_id: str, user_id: str) -> str:
    r = requests.post(
        f"https://api.vidora.io/v1/rooms/{room_id}/tokens",
        headers={"Authorization": f"Bearer {TOKEN}"},
        json={
            "identity": user_id,
            "ttl_s": 7200,
            "grants": {"cam": True, "mic": True, "screen": True, "record": False},
        },
    )
    r.raise_for_status()
    return r.json()["token"]

3. Проверка подписи webhook

Каждое событие подписывается секретом подписки. Всегда проверяйте подпись и таймстемп.

import crypto from 'node:crypto';

// Заголовок: X-Vidora-Signature: t=1754380800,v1=5257a869c4e1...
export function verifyVidora(req, secret) {
  const header = req.headers['x-vidora-signature'] || '';
  const parts = Object.fromEntries(header.split(',').map(s => s.split('=')));
  const expected = crypto
    .createHmac('sha256', secret)
    .update(parts.t + '.' + JSON.stringify(req.body))
    .digest('hex');
  const fresh = Math.abs(Date.now() / 1000 - Number(parts.t)) < 300;
  return fresh && crypto.timingSafeEqual(Buffer.from(parts.v1), Buffer.from(expected));
}
// SDK

Официальные SDK на подходе

JavaScript и Python SDK выйдут одновременно с публичным запуском. Остальные — в дорожной карте Q4 2026.

JavaScript● на запуске
Python● на запуске
Go● Q4 2026
Swift / iOS● Q4 2026
Kotlin / Android● Q4 2026
PHP● 2027
// Тарифы

Прозрачные цены с бесплатным порогом

Считаем только трафик и хранилище. Во время беты все лимиты удвоены.

Навсегда бесплатно

Hobby

0 ₽ / мес
  • 50 ГБ трафика в месяц
  • 10 ГБ VOD-хранилища
  • 3 комнаты звонков одновременно
  • Webhooks и аналитика
  • Поддержка сообщества
Занять место
Популярный

Pro

4 990 ₽ / мес
  • 1 ТБ трафика в месяц
  • 500 ГБ VOD-хранилища
  • 50 комнат × 100 участников
  • Запись звонков и стримов
  • Low-latency режим стримов
  • Приоритетная поддержка 24/7
Занять место
Индивидуально

Enterprise

По запросу
  • Выделенный инджест и CDN-ноды
  • SLA 99.99% с компенсациями
  • DRM и SSO / SCIM
  • On-premise и частные регионы
  • Персональный инженер
Обсудить проект
// Changelog

Что уже сделано

2 августа 2026

SRT-инджест и запись комнат v0.9.2

Добавлен приём SRT-потоков, эндпоинты записи видеозвонков и поле renditions в ответе видео.

18 июля 2026

Третья волна закрытой беты v0.9.1

Выдано ещё 400+ ключей. Открыт sandbox, rate limit поднят до 120 запросов/мин.

30 июня 2026

MVP видеозвонков v0.9.0

Комнаты до 50 участников, TURN-серверы во Франкфурте и Алматы, демонстрация экрана.

5 июня 2026

Первый публичный API v0.8.0

Анонс платформы: HLS/DASH-плейбек, webhooks и загрузка VOD для первых 100 тестировщиков.

  • СейчасЗакрытая бета, API v0.9 — спека заморожена
  • 15.09.2026Публичный запуск: API v1.0, JS/Python SDK, дашборд
  • Q4 2026SDK iOS/Android, Go, DRM, ultra-low-latency ~200 мс для стримов
// FAQ

Частые вопросы

Можно ли использовать Vidora в продакшене уже сейчас?

Да, участникам закрытой беты мы даём SLA 99.9% и канал прямой связи с инженерами. Спецификация API заморожена и не изменится к релизу v1.0.

Какие протоколы поддерживаются?

Инджест: RTMP, SRT, WebRTC (для звонков). Доставка: HLS, DASH, WebRTC. Воспроизведение — в любом стандартном плеере (hls.js, Shaka, ExoPlayer, AVPlayer).

Где хранятся данные?

Регион выбирается при создании проекта: Франкфурт, Москва, Алматы или Сингапур. Данные шифруются при передаче (TLS 1.3) и в состоянии покоя (AES-256).

Сколько это стоит после запуска?

50 ГБ трафика в месяц — бесплатно навсегда. Дальше — по объёму трафика и хранилища, тарифы зафиксированы на этой странице и не изменятся для ранних пользователей в течение года.

Есть ли лимиты в бете?

Во время беты все лимиты удвоены: 100 ГБ трафика, 20 ГБ хранилища, 6 комнат звонков. Ограничений на количество запросов к документации нет.

// Ранний доступ

Получите API-ключ одним из первых

Оставьте почту — вышлем приглашение в закрытую бету, тестовый ключ и доступ к песочнице. Выдача идёт в порядке очереди.

Не терпится попробовать? Сгенерируйте демо-ключ песочницы:

Демо-генерация для знакомства с форматом. Боевые ключи выдаются из дашборда после одобрения заявки.
Отправляя форму, вы соглашаетесь с условиями сервиса и политикой конфиденциальности.
✅ Заявка принята!

Ваш номер в очереди — #—.
Приглашение и ключ песочницы придут на почту в течение 2–3 рабочих дней. Следите за статусом: status.vidora.io