API Reference

Документация REST API для работы с видео-контентом

Введение

Данный API предоставляет программный доступ к управлению видеофайлами, метаданными и статистикой просмотров. Все эндпоинты возвращают данные в формате JSON.

Базовый URL: https://api.videohosting.ru/v1

Для работы с API необходимо передавать API-ключ в заголовке X-API-Key (см. раздел «Аутентификация»).

Аутентификация

Все запросы, кроме публичных, требуют наличия API-ключа.

Заголовок: X-API-Key: ваш_ключ

Получить ключ можно в личном кабинете на сайте videohosting.ru.

Список видео

GET /videos
Возвращает список видео с пагинацией и сортировкой.
ПараметрТипОписание
limitintegerКоличество записей (макс. 100, по умолчанию 20)
offsetintegerСмещение для пагинации (по умолчанию 0)
sortstringПоле сортировки: date, views, likes (по умолчанию date)
Пример ответа
{
  "total": 150,
  "limit": 20,
  "offset": 0,
  "items": [
    {
      "id": 1,
      "title": "Введение в Node.js",
      "description": "Базовый урок для начинающих",
      "author": "Алексей",
      "url": "https://cdn.videohosting.ru/videos/nodejs-intro.mp4",
      "thumbnail": "https://cdn.videohosting.ru/thumbnails/nodejs.jpg",
      "views": 1250,
      "likes": 42,
      "uploadDate": "2026-07-10T12:00:00Z"
    }
  ]
}

Создать видео

POST /videos
Создаёт новую запись о видео. Файл загружается отдельно.
ПараметрТипОписание
titlestringНазвание видео обязательно
descriptionstringОписание обязательно
authorstringИмя автора обязательно
urlstringСсылка на видеофайл (необязательно)
thumbnailstringСсылка на обложку (необязательно)
Пример запроса
{
  "title": "Мой новый ролик",
  "description": "Крутой контент",
  "author": "Иван",
  "url": "https://cdn.videohosting.ru/videos/my-video.mp4"
}
Пример ответа (201 Created)
{
  "id": 3,
  "title": "Мой новый ролик",
  "description": "Крутой контент",
  "author": "Иван",
  "url": "https://cdn.videohosting.ru/videos/my-video.mp4",
  "thumbnail": "https://cdn.videohosting.ru/thumbnails/default.jpg",
  "views": 0,
  "likes": 0,
  "uploadDate": "2026-08-09T10:00:00Z"
}

Получить видео

GET /videos/{id}
Возвращает полную информацию о видео по его идентификатору.
ПараметрТипОписание
idintegerID видео обязательно
Пример ответа (200 OK)
{
  "id": 1,
  "title": "Введение в Node.js",
  "description": "Базовый урок для начинающих",
  "author": "Алексей",
  "url": "https://cdn.videohosting.ru/videos/nodejs-intro.mp4",
  "thumbnail": "https://cdn.videohosting.ru/thumbnails/nodejs.jpg",
  "views": 1250,
  "likes": 42,
  "uploadDate": "2026-07-10T12:00:00Z"
}

Обновить видео

PUT /videos/{id}
Обновляет указанные поля видео. Все поля в теле запроса необязательны.
ПараметрТипОписание
idintegerID видео обязательно
titlestringНовое название
descriptionstringНовое описание
authorstringНовый автор
urlstringНовая ссылка на видео
thumbnailstringНовая ссылка на обложку
Пример запроса
{
  "title": "Новое название для видео",
  "description": "Обновлённое описание"
}
Пример ответа (200 OK)
{
  "id": 1,
  "title": "Новое название для видео",
  "description": "Обновлённое описание",
  "author": "Алексей",
  "url": "https://cdn.videohosting.ru/videos/nodejs-intro.mp4",
  "thumbnail": "https://cdn.videohosting.ru/thumbnails/nodejs.jpg",
  "views": 1250,
  "likes": 42,
  "uploadDate": "2026-07-10T12:00:00Z"
}

Удалить видео

DELETE /videos/{id}
Удаляет видео и все связанные с ним метаданные.
ПараметрТипОписание
idintegerID видео обязательно
Пример ответа (204 No Content)
— тело ответа отсутствует —

Коды ошибок

В случае ошибки сервер возвращает JSON с полями code и message.

Код Описание
400Некорректный запрос (невалидные параметры)
401Отсутствует или недействительный API-ключ
404Ресурс не найден
429Слишком много запросов (rate limiting)
500Внутренняя ошибка сервера
Пример ошибки
{
  "code": 404,
  "message": "Видео с указанным id не найдено"
}
© 2026 Видео-хостинг. Все права защищены. По вопросам обращайтесь в support@videohosting.ru