ДокументацияРуководства
Результаты анализа
Транскрипт с таймкодами, кадры и дубли, сводка, модерация и её категории, субтитры — что возвращает GET /items/{id} и как читать поля.
После приёма объекта ДАРА анализирует его медиа и текст: распознаёт речь, разбирает кадры, пишет сводку и строит векторы. Какие шаги выполняются и какими моделями — задаёт проект (см. Модели). Результаты видны в кабинете, в карточке объекта, и отдаются по API.
Где взять результаты
GET /items/{id} отдаёт объект вместе со сводкой. Транскрипты и кадры тяжёлые, поэтому приходят только по параметру include:
curl "https://core.daratech.ru/api/v1/items/v-1042?include=transcript,frames" \
-H "Authorization: Bearer $DARA_KEY"
| Поле ответа | Когда есть | Что внутри |
|---|---|---|
status, processing |
всегда | статус объекта и состояние шагов — см. Объекты |
summary |
когда сводка готова, иначе null |
описания, темы, теги, сущности, язык, возраст, модерация |
transcript |
include=transcript |
транскрипт каждого медиа со звуком |
frames |
include=frames |
кадры видео и изображения с результатами анализа |
Пока шаг не завершён, его результата нет в ответе. Когда объект получит статус ready или partial, запросите его снова — удобнее всего по сверке GET /items?updated_since=….
Транскрипт
{"transcript": [
{"media_position": 0, "language": "ru", "timestamps": "model",
"text": "Добрый день. Сегодня готовим борщ.",
"segments": [
{"start": 0.0, "end": 2.4, "text": "Добрый день."},
{"start": 2.4, "end": 5.1, "text": "Сегодня готовим борщ."}
]}
]}
| Поле | Описание |
|---|---|
media_position |
позиция медиа в media объекта, с нуля |
language |
язык распознанной речи, код ISO 639-1 |
timestamps |
model — время реплик вернула модель; estimated — модель времени не даёт, оно рассчитано по паузам в звуке с точностью до пары секунд |
text |
весь текст медиа |
segments |
реплики {start, end, text, speaker}: время в секундах от начала медиа; speaker есть, только если модель различает говорящих |
Если в медиа нет слов — например, музыка, — транскрипт пустой, а шаг речи всё равно done. У видео без звуковой дорожки шаг речи получает skipped, транскрипта нет.
В кабинете транскрипт открывается на вкладке «Речь» карточки объекта — по одному медиа, с переключателем медиа по позиции. Длинный транскрипт разбит на страницы по 1000 реплик. Таймкод доказательства из сводки открывает страницу с репликой в этот момент; у объекта из нескольких медиа — в первом медиа, где такая реплика есть.
Кадры
Кадры видео берутся с интервалом из настроек проекта — по умолчанию каждые 10 секунд, начиная с нулевой. Изображение — один кадр с ts: 0.
{"frames": [
{"media_position": 0, "ts": 0, "description": "Повар режет свёклу на деревянной доске.",
"tags": ["кухня", "повар", "нож", "свёкла"], "ocr_text": "БОРЩ ЗА 30 МИНУТ",
"safety": {"adult": 0.01, "violence": 0.0, "weapons": 0.08, "drugs": 0.0, "extremism": 0.0, "hate": 0.0, "self_harm": 0.0, "gore": 0.02},
"image_url": "https://…"},
{"media_position": 0, "ts": 10, "duplicate_of_ts": 0, "description": "Повар режет свёклу на деревянной доске.",
"tags": ["кухня", "повар", "нож", "свёкла"], "ocr_text": "БОРЩ ЗА 30 МИНУТ",
"safety": {"adult": 0.01, "violence": 0.0, "weapons": 0.08, "drugs": 0.0, "extremism": 0.0, "hate": 0.0, "self_harm": 0.0, "gore": 0.02},
"image_url": "https://…"}
]}
| Поле | Описание |
|---|---|
media_position |
позиция медиа, с нуля |
ts |
время кадра в секундах от начала медиа |
duplicate_of_ts |
есть у дубля: время исходного кадра |
description |
описание кадра в 1–2 предложения; null у быстрого локального анализа |
tags |
что в кадре: предметы, сцена, действия — строки по-русски |
ocr_text |
текст в кадре: надписи, слайды, титры; null, если текста нет |
safety |
оценки от 0 до 1 по категориям безопасности; null у категории, которую модель не оценивает |
image_url |
подписанная ссылка на JPEG кадра, действует час; ссылки не храните — запросите объект заново |
Дубли. Кадр считается дублем, если он почти не отличается от предыдущего уникального: статичная сцена, слайд, заставка. Дубль не анализируется повторно и повторяет результат исходного кадра, а duplicate_of_ts показывает, откуда результат взят. Смена субтитров или подписи внизу кадра делает кадр уникальным.
Быстрый режим. Локальная модель кадров распознаёт текст, теги и флаги безопасности, но не пишет описаний: description у её кадров — null, а категории extremism, hate и self_harm — null. В кабинете такие кадры помечены «быстрый режим — без описаний».
Точность времени. Кадры длинных тяжёлых видео могут браться по опорным кадрам потока: тогда ts отличается от точного шага на доли секунды или секунды.
Сводка
{"summary": {
"summary": "Пошаговый рецепт классического борща за 30 минут.",
"description": "Повар показывает, как подготовить овощи, сварить бульон и подать борщ со сметаной…",
"topics": ["кулинария", "рецепты супов"],
"tags": ["борщ", "свёкла", "рецепт", "обед"],
"entities": [{"name": "Москва", "type": "place"}],
"language": "ru",
"age_rating": "0+",
"moderation": {"level": "none",
"categories": {"adult": 0.0, "violence": 0.0, "gore": 0.02, "weapons": 0.08, "drugs": 0.0, "extremism": 0.0, "hate": 0.0, "self_harm": 0.0, "gambling": 0.0, "spam": 0.0},
"evidence": []}
}}
| Поле | Описание |
|---|---|
summary |
кратко, 2–4 предложения |
description |
подробное описание до 1000 знаков |
topics |
3–7 тем |
tags |
5–15 тегов строчными буквами, по-русски |
entities |
{name, type}, type — person, organization, brand, place, product, event, other |
language |
основной язык объекта |
age_rating |
0+, 6+, 12+, 16+ или 18+ |
moderation |
уровень, оценки категорий и доказательства — ниже |
Сводка строится по тексту объекта, транскрипту и уникальным кадрам. Если речь или кадры в проекте не выполняются, сводка обходится текстом и тем, что есть. Если сводка отключена, у объекта нет тегов, возрастной отметки и модерации, а summary — null.
Модерация
moderation.level — общий вывод: none, low, medium или high. categories — оценки от 0 до 1:
| Категория | Что оценивает |
|---|---|
adult |
откровенные сцены и материалы для взрослых |
violence |
насилие, драки, жестокость |
gore |
кровь, раны и увечья |
weapons |
оружие |
drugs |
наркотики и их употребление |
extremism |
экстремистские символы и призывы |
hate |
вражда и оскорбления по признаку группы |
self_harm |
самоповреждение и суицид |
gambling |
азартные игры и ставки |
spam |
спам и навязчивая реклама |
Флаги безопасности кадров входят в модерацию: для каждой категории берётся максимум по кадрам, а такой кадр становится доказательством.
evidence — [{source, ts, quote}]: source — speech (фрагмент речи), frame (кадр) или text (текст объекта); ts — время в секундах, если доказательство в медиа; quote — цитата или описание. В кабинете таймкод доказательства открывает нужное место транскрипта или кадр.
Оценка — подсказка для вашей модерации, а не решение. Порог выбирайте сами: например, скрывать из детской ленты объекты с age_rating 16+ и выше или отправлять на ручную проверку всё с level medium и high.
Субтитры
Субтитры собираются из транскрипта: реплика не длиннее 7 секунд, до двух строк по 42 знака. Файлы VTT и SRT скачиваются в кабинете, в карточке объекта на вкладке «Речь». Метод API для субтитров появится в следующей версии; до тех пор соберите их из transcript.segments у себя.