API работает
v2.1.4

Документация API

REST API для управления видео, плейлистами и аналитикой. Все запросы возвращают JSON. Аутентификация через Bearer-токен.

Базовый URL: https://api.videohub.dev/v2
🔑 Для доступа к защищённым эндпоинтам добавьте заголовок Authorization: Bearer <token>. Публичные эндпоинты доступны без токена.

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

GET /videos Список видео
Запрос
GET /v2/videos?limit=2&sort=trending HTTP/1.1
Host: api.videohub.dev
Accept: application/json
Ответ
{
  "data": [
    {
      "id": "vid_9a8b7c6d5e",
      "title": "Обзор нового фреймворка",
      "duration": 842,
      "views": 124567,
      "author": "TechChannel"
    },
    {
      "id": "vid_1f2e3d4c5b",
      "title": "Музыкальный клип 2025",
      "duration": 215,
      "views": 893421,
      "author": "MusicVibes"
    }
  ],
  "meta": {
    "total": 1547,
    "limit": 2,
    "offset": 0
  }
}
200 OK
GET /videos/{id} Информация о видео
Запрос
GET /v2/videos/vid_9a8b7c6d5e HTTP/1.1
Host: api.videohub.dev
Accept: application/json
Ответ
{
  "id": "vid_9a8b7c6d5e",
  "title": "Обзор нового фреймворка",
  "description": "Подробный разбор...",
  "duration": 842,
  "views": 124567,
  "likes": 8923,
  "dislikes": 142,
  "author": {
    "id": "ch_tech_01",
    "name": "TechChannel",
    "verified": true
  },
  "tags": ["технологии", "обзор", "код"],
  "published_at": "2025-01-15T10:30:00Z"
}
200 OK

Приватные эндпоинты требуется токен

POST /videos Загрузить видео
Запрос
POST /v2/videos HTTP/1.1
Host: api.videohub.dev
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
Content-Type: application/json

{
  "title": "Мой новый влог",
  "description": "Поездка в горы",
  "privacy": "public",
  "tags": ["влог", "путешествие"]
}
Ответ
{
  "id": "vid_new123456",
  "status": "processing",
  "upload_url": "https://upload.videohub.dev/...",
  "created_at": "2025-03-21T14:22:10Z"
}
201 Created
DELETE /videos/{id} Удалить видео
Запрос
DELETE /v2/videos/vid_9a8b7c6d5e HTTP/1.1
Host: api.videohub.dev
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
Ответ
{
  "success": true,
  "message": "Видео удалено",
  "deleted_id": "vid_9a8b7c6d5e"
}
200 OK
PATCH /videos/{id} Обновить метаданные
Запрос
PATCH /v2/videos/vid_9a8b7c6d5e HTTP/1.1
Host: api.videohub.dev
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
Content-Type: application/json

{
  "title": "Обновлённое название",
  "privacy": "unlisted"
}
Ответ
{
  "id": "vid_9a8b7c6d5e",
  "title": "Обновлённое название",
  "privacy": "unlisted",
  "updated_at": "2025-03-21T15:00:00Z"
}
200 OK

Обработка ошибок

GET /videos/{id} Видео не найдено
Запрос
GET /v2/videos/vid_notexist HTTP/1.1
Host: api.videohub.dev
Accept: application/json
Ответ
{
  "error": {
    "code": 404,
    "message": "Видео не найдено",
    "details": "Запрашиваемый идентификатор не существует"
  }
}
404 Not Found
📘 Все временные метки в формате ISO 8601 (UTC). Лимит запросов: 1000 в час для авторизованных, 60 в час для публичных.