Управление задачами

1

Создание новой задачи

POST /jobs/

Создает новую задачу обработки видео/аудио файла.

Параметры запроса

Параметры передаются через JSON body:

{
    "actions": ["transcript", "summary", "quiz", "timecodes", "frames", "search"],
    "file_link": "https://example.com/video.mp4",
    "speakers_count": 2,
    "webhook_url": "https://your-site.com/webhook"
}

Обязательные параметры

  • file_link - URL медиа файла для обработки

  • actions - Список действий для выполнения

Опциональные параметры

  • speakers_count - Количество спикеров (по умолчанию: 1, для автоопределения количества спикеров используйте 0)

  • webhook_url - URL для получения уведомлений о статусе

Пример запроса

curl -X POST "https://your-domain.com/jobs/" \
  -H "x-api-key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "actions": ["transcript", "summary"],
    "file_link": "https://example.com/video.mp4",
    "speakers_count": 1,
    "webhook_url": "https://your-site.com/webhook"
  }'

Ответ

{
    "job_id": "123e4567-e89b-12d3-a456-426614174000",
    "video_name": "video.mp4",
    "video_path": "/path/to/video.mp4",
    "job_state": "in_progress",
    "requested_actions": ["transcript", "summary"],
    "speakers_count": 1,
    "webhook_url": "https://your-site.com/webhook",
    "vendor_key": "vendor-uuid",
    "created": "2025-09-08T10:00:00.000Z",
    "modified": "2025-09-08T10:00:00.000Z"
}
2

Получение списка задач

GET /jobs/

Получает список всех задач текущего пользователя.

Параметры запроса

  • job_state (опционально) - Фильтр по статусу задачи (queued, in_progress, done, failed)

Пример запроса

curl -X GET "https://your-domain.com/jobs/?job_state=done" \
  -H "x-api-key: your-api-key"

Ответ

[
    {
        "job_id": "123e4567-e89b-12d3-a456-426614174000",
        "video_name": "video.mp4",
        "job_state": "done",
        "requested_actions": ["transcript", "summary"],
        "created": "2025-09-08T10:00:00.000Z",
        "modified": "2025-09-08T10:30:00.000Z"
    }
]
3

Получение информации о задаче

GET /jobs/{job_id}/

Получает подробную информацию о конкретной задаче.

Параметры пути

  • job_id - UUID задачи

Пример запроса

curl -X GET "https://your-domain.com/jobs/123e4567-e89b-12d3-a456-426614174000/" \
  -H "x-api-key: your-api-key"

Ответ

{
    "job_id": "123e4567-e89b-12d3-a456-426614174000",
    "video_name": "video.mp4",
    "video_path": "/app/media/content/vendor-uuid/job-uuid/job-uuid.mp4",
    "job_state": "done",
    "requested_actions": ["transcript", "summary", "quiz", "timecodes", "frames", "search"],
    "speakers_count": 0,
    "vendor_key": "vendor-uuid-here",
    "webhook_url": "https://your-site.com/webhook",
    "request_id": "external-request-uuid",
    "product_statuses": {
        "transcript": "done",
        "summary": "done", 
        "quiz": "done",
        "timecodes": "done"
    },
    "created": "2025-09-08T10:00:00.000Z",
    "modified": "2025-09-08T10:30:00.000Z"
}

Описание полей ответа

  • job_id - Уникальный UUID задачи

  • video_name - Оригинальное имя файла

  • video_path - Путь к сохраненному файлу на сервере

  • job_state - Текущий статус задачи (queued, in_progress, done, failed)

  • requested_actions - Список запрошенных действий обработки

  • speakers_count - Количество спикеров (0 для автоопределения)

  • vendor_key - UUID пользователя/клиента

  • webhook_url - URL для webhook уведомлений

  • request_id - UUID запроса во внешней системе обработки (появляется после начала обработки)

  • product_statuses - Статусы отдельных продуктов обработки

  • created - Дата и время создания задачи

  • modified - Дата и время последнего изменения

4

Получение транскрипта

GET /jobs/{job_id}/transcript/

Получает расшифровку текста для указанной задачи.

Параметры пути

  • job_id - UUID задачи

Параметры запроса

  • format (опционально) - Формат экспорта: txt, docx

Пример запроса (JSON)

curl -X GET "https://your-domain.com/jobs/123e4567-e89b-12d3-a456-426614174000/transcript/" \
  -H "x-api-key: your-api-key"

Ответ (JSON)

{
    "external_id": "transcript-uuid",
    "cues": [
        {
            "start_time": 0.0,
            "end_time": 5.5,
            "text": "Привет, добро пожаловать на наш канал",
            "speaker": "Спикер 1"
        }
    ],
    "full_text": "Привет, добро пожаловать на наш канал. Сегодня мы расскажем...",
    "job_id": "123e4567-e89b-12d3-a456-426614174000"
}
5

Получение временных меток

GET /jobs/{job_id}/timecodes/

Получает временные метки для указанной задачи.

Параметры пути

  • job_id - UUID задачи

Параметры запроса

  • format (опционально) - Формат экспорта: txt, docx

Пример запроса

curl -X GET "https://your-domain.com/jobs/123e4567-e89b-12d3-a456-426614174000/timecodes/" \
  -H "x-api-key: your-api-key"

Ответ

{
    "external_id": "timecodes-uuid",
    "timecodes": [
        {
            "start_time": 0.0,
            "end_time": 30.0,
            "title": "Введение",
            "description": "Приветствие и обзор темы"
        },
        {
            "start_time": 30.0,
            "end_time": 120.0,
            "title": "Основная часть",
            "description": "Подробное объяснение темы"
        }
    ],
    "job_id": "123e4567-e89b-12d3-a456-426614174000"
}
6

Получение краткого изложения

GET /jobs/{job_id}/summary/

Получает краткое изложение содержимого.

Параметры пути

  • job_id - UUID задачи

Параметры запроса

  • format (опционально) - Формат экспорта: txt, docx

Пример запроса

curl -X GET "https://your-domain.com/jobs/123e4567-e89b-12d3-a456-426614174000/summary/" \
  -H "x-api-key: your-api-key"

Ответ

{
    "external_id": "summary-uuid",
    "html": "<h1>Краткое изложение</h1><p>В данном видео рассматриваются...</p>",
    "job_id": "123e4567-e89b-12d3-a456-426614174000"
}
7

Получение квиза

GET /jobs/{job_id}/quiz/

Получает тест/квиз по содержимому.

Параметры пути

  • job_id - UUID задачи

Параметры запроса

  • format (опционально) - Формат экспорта: txt, docx

Пример запроса

curl -X GET "https://your-domain.com/jobs/123e4567-e89b-12d3-a456-426614174000/quiz/" \
  -H "x-api-key: your-api-key"

Ответ

{
    "external_id": "quiz-uuid",
    "data": [
        {
            "question": "О чем рассказывается в видео?",
            "options": [
                "О программировании",
                "О кулинарии", 
                "О путешествиях"
            ],
            "correct_answer": 0,
            "explanation": "В видео рассматриваются основы программирования"
        }
    ],
    "job_id": "123e4567-e89b-12d3-a456-426614174000"
}
8

Получение кадров

GET /jobs/{job_id}/frames/

Получает извлеченные кадры из видео.

Параметры пути

  • job_id - UUID задачи

Пример запроса

curl -X GET "https://your-domain.com/jobs/123e4567-e89b-12d3-a456-426614174000/frames/" \
  -H "x-api-key: your-api-key"

Ответ

{
    "frames_id": "frames-uuid",
    "frameset": [
        {
            "time": 10.5,
            "frame_url": "https://your-domain.com/frames/frame_001.jpg"
        },
        {
            "time": 30.0,
            "frame_url": "https://your-domain.com/frames/frame_002.jpg"
        }
    ],
    "job_id": "123e4567-e89b-12d3-a456-426614174000"
}
9

Перезаказ материалов

POST /jobs/reorder/

Перезапускает обработку существующей задачи с новыми действиями. Позволяет дозаказать дополнительные материалы (продукты) для уже обработанного файла без повторной загрузки.

Параметры запроса

Параметры передаются через JSON body:

{
    "job_id": "123e4567-e89b-12d3-a456-426614174000",
    "actions": ["quiz", "frames"]
}

Обязательные параметры

  • job_id - UUID существующей задачи

  • actions - Список новых действий для обработки

Доступные действия

  • transcript - Расшифровка текста

  • summary - Краткое изложение

  • quiz - Тест/квиз

  • timecodes - Временные метки

  • frames - Извлечение кадров

  • search - Поиск по содержимому

Пример запроса

curl -X POST "https://your-domain.com/jobs/reorder/" \
  -H "x-api-key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "job_id": "123e4567-e89b-12d3-a456-426614174000",
    "actions": ["quiz", "frames"]
  }'

Ответ

{
    "job_id": "123e4567-e89b-12d3-a456-426614174000",
    "video_name": "video.mp4",
    "video_path": "/path/to/video.mp4",
    "job_state": "in_progress",
    "requested_actions": ["transcript", "summary", "quiz", "frames"],
    "speakers_count": 1,
    "webhook_url": "https://your-site.com/webhook",
    "vendor_key": "vendor-uuid",
    "created": "2025-09-08T10:00:00.000Z",
    "modified": "2025-09-08T10:15:00.000Z"
}

Примечания

  • Задача должна иметь request_id для возможности перезаказа

  • Новые действия добавляются к списку requested_actions

  • Если действие уже было запрошено ранее, оно будет переобработано

  • Файл не загружается повторно, используется уже сохраненная версия

  • Webhook уведомления отправляются по завершении дополнительной обработки

Ошибки

  • 400 Bad Request - Задача не найдена или у задачи отсутствует request_id

  • 401 Unauthorized - Неверный API ключ

  • 404 Not Found - Задача не принадлежит данному пользователю

10

Получение всех продуктов

GET /jobs/{job_id}/products/

Получает все доступные продукты (результаты обработки) для задачи.

Параметры пути

  • job_id - UUID задачи

Пример запроса

curl -X GET "https://your-domain.com/jobs/123e4567-e89b-12d3-a456-426614174000/products/" \
  -H "x-api-key: your-api-key"

Ответ

{
    "job_id": "123e4567-e89b-12d3-a456-426614174000",
    "transcript": {
        "status": "done",
        "external_id": "transcript-uuid",
        "cues": [
            {
                "start_time": 0.0,
                "end_time": 5.5,
                "text": "Привет, добро пожаловать на наш канал",
                "speaker": "Спикер 1"
            }
        ],
        "full_text": "Привет, добро пожаловать на наш канал. Сегодня мы расскажем..."
    },
    "timecodes": {
        "status": "done", 
        "external_id": "timecodes-uuid",
        "timecodes": [
            {
                "start_time": 0.0,
                "end_time": 30.0,
                "title": "Введение",
                "description": "Приветствие и обзор темы"
            }
        ]
    },
    "summary": {
        "status": "done",
        "external_id": "summary-uuid",
        "html": "<h1>Краткое изложение</h1><p>В данном видео рассматриваются...</p>"
    },
    "quiz": {
        "status": "done",
        "external_id": "quiz-uuid",
        "data": [
            {
                "question": "О чем рассказывается в видео?",
                "options": [
                    "О программировании",
                    "О кулинарии", 
                    "О путешествиях"
                ],
                "correct_answer": 0,
                "explanation": "В видео рассматриваются основы программирования"
            }
        ]
    }
}