API для контент-завода: видео, озвучка и субтитры по одному ключу
Соберите конвейер роликов в своём коде. Расшифровка и субтитры, сценарии, голос за кадром, обложки, музыка и генерация видео — Veo 3.1, Kling, Seedance, Wan — по одному OpenAI-совместимому адресу. Оплата в рублях, без VPN.
Коротко: контент-завод — это код, который сам выпускает ролики: из длинной записи делает нарезки с субтитрами и обложками, из темы — короткие видео со сценарием, голосом и музыкой. Склейку и резку делает ваш скрипт, например на FFmpeg. Всё, где нужна нейросеть, — наш API: /v1/audio/transcriptions (текст и субтитры srt/vtt), /v1/chat/completions (сценарии, выбор фрагментов, описания), /v1/audio/speech (озвучка), /v1/images (обложки), /v1/videos (ролики по тексту) и /v1/music (треки). Ключ и рублёвый баланс — одни на всё. Пополнение картой РФ или по СБП от 50 ₽, юрлицам — по счёту.
Оплата в рублях
Карта РФ, СБП или счёт для юрлиц
OpenAI-совместимый API
Подходят официальные SDK
Сбой — деньги назад
Не получился ролик — списание вернётся само
Без VPN
Запросы к моделям — из России
/ Два конвейера
Что собирают на нашем API
Конвейер — это ваш скрипт, который по очереди вызывает модели. Мы даём модели на каждом шаге, резка и склейка остаются на вашей стороне.
/ Монтаж из отснятого
Длинное видео → шортсы с субтитрами
Интервью, подкаст, вебинар или стрим превращается в нарезку с субтитрами, заголовками и обложками, а при желании — в версию на другом языке.
Субтитры.Gemini 3.5 Transcribe делает srt или vtt с таймкодами по словам — около 0,55 ₽ за минуту записи.
У Veo цена не зависит от длины ролика (4, 6 или 8 секунд), у остальных моделей растёт с каждой секундой. Звук сразу в ролике дают Veo 3.1 и Veo 3.1 Fast, Kling 3.0 и 2.6, Wan 3.0 и 3.0 Prime, PixVerse v6, Seedance 2 Fast и 1.5 Pro; Kling 3.0 Turbo — без звука. Вертикальный кадр 9:16 есть у всех видеомоделей, кроме Hailuo 2. Цена приходит в ответе API, в поле price_rub: оценка списывается при постановке задачи, а если фактический расход меньше — разница возвращается. Все режимы и цены — в каталоге.
/ Сколько стоит
Два примера с ценами
Посчитано по ценам каталога. Генерации стоят ровно по прайсу, токены текстовых моделей — оценка с запасом.
Три шортса из 10-минутного интервью
≈ 20 ₽
субтитры, выбор фрагментов и три обложки
Субтитры srt на Gemini 3.5 Transcribe — ≈ 5,5 ₽
Выбор фрагментов, три заголовка и описания на Gemini 3.8 Flash — ≈ 1,5 ₽
Три обложки Seedream 4.5 — 13,5 ₽
Версия всей записи на английском: перевод субтитров ≈ 2,4 ₽ и озвучка Speech 2.8 HD ≈ 97 ₽
30-секундный ролик с нуля
≈ 178 ₽
на Seedance 2 Mini, с голосом, музыкой и обложкой
Сценарий, текст диктора и промпты планов на Claude Sonnet 5.5 — ≈ 3,7 ₽
Шесть планов Seedance 2 Mini по 5 секунд в 720p — 138 ₽
Голос Speech 2.8 HD, около 450 символов — ≈ 4,9 ₽
Трек Suno — 26,40 ₽
Обложка Seedream 4.5 — 4,5 ₽
То же на Grok Imagine Video, пять планов по 6 секунд в 720p, — ≈ 130 ₽; на Veo 3.1 Fast в 1080p со звуком, четыре плана по 8 секунд, — ≈ 612 ₽
Оценка токенов: выбор фрагментов — 8 тыс. на вход и 2 тыс. на выход, перевод — по 5 тыс., сценарий — 2 тыс. и 3 тыс. Английская озвучка — около 9 000 символов. Музыка Suno доступна только физлицам: для компании ролик дешевле на 26,40 ₽, фон берётся из своей библиотеки.
Субтитры, тексты, озвучка и картинки работают через официальный OpenAI SDK. Видео и музыка — задачей по обычному HTTP: поставили, опросили статус, скачали файл.
/1
Создайте ключ
В кабинете, раздел «API-ключи». Положите его в переменную окружения KOSAREVA_API_KEY. Под каждый канал или клиента можно завести отдельный ключ.
/2
Поменяйте адрес
base_url https://api.kosareva.cloud/v1 — остальной код как для OpenAI. Модель выбирается значением model, имена — в каталоге.
/3
Прогоните на дешёвом
Первый прогон — на Seedance 2 Mini за 23 ₽ или Grok Imagine Video за 10 ₽, субтитры — на коротком фрагменте. Каждая генерация списывает деньги: не запускайте её в тестах и циклах без проверки.
import base64, os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["KOSAREVA_API_KEY"],
base_url="https://api.kosareva.cloud/v1",
)
# 1. Субтитры. Звук из ролика: ffmpeg -i in.mp4 -vn audio.mp3withopen("audio.mp3", "rb") as audio:
srt = client.audio.transcriptions.create(
model="gemini-3-5-transcribe",
file=audio,
response_format="srt", # или vtt, verbose_json
)
open("subs.srt", "w", encoding="utf-8").write(srt)
# 2. Модель выбирает фрагменты для шортсов
plan = client.chat.completions.create(
model="gemini-3-8-flash",
messages=[{"role": "user", "content":
"Вот субтитры интервью. Выбери 3 сильных фрагмента ""по 30–60 секунд и верни JSON: start, end, title, ""description.\n\n" + srt}],
)
print(plan.choices[0].message.content)
# 3. Обложка 16:9 — Seedream 4.5 держит пропорцию
cover = client.images.generate(
model="seedream-4-5",
prompt="Обложка ролика: ведущий подкаста у микрофона, ""тёплый свет, без текста",
size="1920x1080",
)
open("cover.png", "wb").write(base64.b64decode(cover.data[0].b64_json))
# 4. Резку по start/end, кроп 9:16 и субтитры в кадре# делает ffmpeg у вас
import os, time, requests
from openai import OpenAI
KEY = os.environ["KOSAREVA_API_KEY"]
API = "https://api.kosareva.cloud/v1"
H = {"Authorization": f"Bearer {KEY}"}
client = OpenAI(api_key=KEY, base_url=API)
defrun_task(kind, body, path):
"""Видео и музыка: поставить задачу, ждать, скачать файл."""
url = f"{API}/{kind}"
task = requests.post(url, headers=H, json=body, timeout=60).json()
if"error"in task: # нет денег или неверное полеraiseRuntimeError(task["error"]["message"])
while task["status"] in ("queued", "in_progress"):
time.sleep(10) # опрос раз в 10 секунд
task = requests.get(f"{url}/{task['id']}", headers=H,
timeout=60).json()
if task["status"] == "failed": # деньги вернутся самиraiseRuntimeError(task["error"]["message"])
file = requests.get(f"{url}/{task['id']}/content", headers=H,
timeout=300)
open(path, "wb").write(file.content)
return task["price_rub"]
# 1. Текст диктора
voiceover = client.chat.completions.create(
model="claude-sonnet-5-5",
messages=[{"role": "user", "content":
"Текст диктора на 30 секунд для Reels: три совета, ""как хранить кофе. Верни только текст."}],
).choices[0].message.content
# 2. Планы 9:16 по 5 секунд — 23 ₽ за план на Seedance 2 Mini
shots = [
"Зёрна кофе сыплются в стеклянную банку, утренний свет",
"Рука закрывает банку крышкой, тёплая кухня, медленный наезд",
]
for n, prompt inenumerate(shots, 1):
run_task("videos", {"model": "seedance-2-mini", "prompt": prompt,
"seconds": 5, "resolution": "720p",
"aspect_ratio": "9:16"}, f"shot{n}.mp4")
# 3. Голос за кадром
client.audio.speech.create(
model="speech-2-8-hd", voice="Russian_ReliableMan",
input=voiceover,
).write_to_file("voice.mp3")
# 4. Фон без вокала: 26,40 ₽ за два трека (Suno — только физлицам)run_task("music", {"model": "suno-v6", "instrumental": True,
"prompt": "Спокойный лоу-фай для фона"}, "music.mp3")
# 5. Склейку shot*.mp4 + voice.mp3 + music.mp3 делает ffmpeg у вас
# 1. Субтитры srt из звука роликаcurl https://api.kosareva.cloud/v1/audio/transcriptions \
-H "Authorization: Bearer $KOSAREVA_API_KEY" \
-F model=gemini-3-5-transcribe -F response_format=srt \
-F file=@audio.mp3 -o subs.srt
# 2. Поставить задачу на план 9:16 — в ответе id и price_rubcurl https://api.kosareva.cloud/v1/videos \
-H "Authorization: Bearer $KOSAREVA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"seedance-2-mini","prompt":"Руки монтажёра на клавиатуре, на мониторе таймлайн, тёплый свет","seconds":5,"resolution":"720p","aspect_ratio":"9:16"}'# 3. Статус раз в 10 секунд: queued → in_progress → completedcurl https://api.kosareva.cloud/v1/videos/ID_ЗАДАЧИ \
-H "Authorization: Bearer $KOSAREVA_API_KEY"# 4. Скачать готовый роликcurl https://api.kosareva.cloud/v1/videos/ID_ЗАДАЧИ/content \
-H "Authorization: Bearer $KOSAREVA_API_KEY" -o broll.mp4
# 5. Фоновый трек без вокала (Suno — только физлицам)curl https://api.kosareva.cloud/v1/music \
-H "Authorization: Bearer $KOSAREVA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"suno-v6","prompt":"Спокойный лоу-фай для фона","instrumental":true}'# Статус и файл — как у видео: /v1/music/ID_ЗАДАЧИ и /v1/music/ID_ЗАДАЧИ/content
Подключи в мой проект конвейер роликов через API kosareva.cloud.
1. Базовый адрес https://api.kosareva.cloud/v1, ключ бери из переменной окружения KOSAREVA_API_KEY и передавай в заголовке Authorization: Bearer. Сам ключ в код не вписывай. Для субтитров, текстов, озвучки и картинок возьми официальный OpenAI SDK с этим base_url.
2. Субтитры: POST /audio/transcriptions, модель gemini-3-5-transcribe, response_format srt или vtt. Файл — до 25 МБ, с таймкодами — до 30 минут записи: звук вынимай из ролика ffmpeg и длинную запись режь на части.
3. Тексты — выбор фрагментов, заголовки, описания, перевод: POST /chat/completions, модель gemini-3-8-flash; сценарии — claude-sonnet-5-5.
4. Озвучка: POST /audio/speech, модель speech-2-8-hd, voice Russian_ReliableMan, до 10 000 символов за запрос.
5. Обложки: POST /images/generations, модель seedream-4-5, size 1920x1080 или 1080x1920; картинка приходит в data[0].b64_json.
6. Видео — задачей, обычным HTTP-запросом: POST /videos с полями model (seedance-2-mini), prompt, seconds (5 или 10), resolution (480p или 720p), aspect_ratio (16:9, 9:16 или 1:1) возвращает id; GET /videos/{id} отдаёт статус queued, in_progress, completed или failed и цену в price_rub; GET /videos/{id}/content — готовый mp4. Музыка устроена так же: POST /music с полями model (suno-v6), prompt, instrumental, файл — GET /music/{id}/content.
7. Статус проверяй раз в 10 секунд, не чаще. Если задача упала, покажи текст из error.message.
8. Резку по таймкодам, кроп 9:16, наложение субтитров и склейку делай локально через ffmpeg.
9. Каждая генерация списывает деньги с баланса. Не запускай её в тестах и циклах без моего подтверждения.
/ Честно
Чего здесь нет
Мы даём нейросети на каждом шаге конвейера. Монтаж, хранение роликов и публикация остаются в вашем коде.
Нужна модель, которой нет в каталоге, или помощь с подключением?
Резку по таймкодам, наложение субтитров, звука и титров делает ваш код (FFmpeg, MoviePy, Remotion) или видеоредактор. Мы даём нейросети на каждом шаге.
—Видео из фото по API пока нет
→
Ролик делается только по тексту — первый кадр опишите словами. Ремикса и удаления роликов через API тоже нет.
—Нет клонирования голоса и синхронизации губ
→
«Дубляж» — это перевод субтитров и озвучка готовым голосом. Русские голоса есть у Speech 2.8, у ElevenLabs голос выбирается по его id.
—Субтитры не делят речь по говорящим
→
Через API приходит текст без разметки говорящих. Один файл — до 25 МБ и до 60 минут, с таймкодами — до 30: длинную запись режьте на части.
—Музыка Suno — не для компаний
→
Suno не входит в набор моделей для юрлиц, по счёту её не оплатить. Физлицам — 26,40 ₽ за два трека, компаниям — фон из своей библиотеки.
—Не публикуем в соцсети
→
Загрузку в YouTube, VK Видео или Telegram делает ваш скрипт через API площадки.
—Бесплатных генераций нет
→
Каждый ролик провайдер модели считает за деньги. Черновики — от 10 ₽.
/ FAQ
Частые вопросы
Что такое контент-завод на нейросетях?
Программа, которая без ручной работы выпускает контент потоком: режет длинные записи на короткие ролики с субтитрами, пишет сценарии и делает по ним видео, озвучивает, рисует обложки и пишет описания. Нейросети выполняют отдельные шаги, а связывает их ваш код. Наш API даёт эти нейросети по одному ключу и с одного рублёвого баланса.
Можно смонтировать реальное видео через ваш API?
Нейросетевую часть — да. Gemini 3.5 Transcribe делает субтитры srt или vtt с таймкодами по словам, текстовая модель находит фрагменты и пишет заголовки, модели картинок рисуют обложки, озвучка добавляет голос на другом языке. Резать и склеивать файлы будет ваш скрипт, например на FFmpeg: монтажного сервиса у нас нет.
Сколько стоит один ролик?
Один план по тексту — от 10 ₽ (Grok Imagine Video, 6 секунд, 480p) до 561 ₽ (Veo 3.1, 8 секунд, 1080p); длинные планы и 4K дороже — например, Seedance 2.5 на 30 секунд в 720p стоит 1 248 ₽. 30-секундный ролик с голосом и музыкой выходит примерно в 130–612 ₽, в зависимости от видеомодели. Минута субтитров — около 0,55 ₽, обложка — от 1 ₽.
Как устроен API для видео и музыки?
Как видео-API OpenAI. POST /v1/videos с полями model, prompt, seconds, resolution и aspect_ratio возвращает id задачи, GET /v1/videos/{id} — статус queued, in_progress, completed или failed и цену в поле price_rub, GET /v1/videos/{id}/content — готовый mp4. Длительность или разрешение, которых у модели нет, заменяются ближайшими. Статус спрашивайте раз в 10 секунд: ролик считается несколько минут. Музыка устроена так же, через /v1/music. Деньги списываются при постановке задачи и возвращаются, если ролик не получился; если фактический расход ниже оценки, возвращается разница.
Можно оживить фото или задать первый кадр картинкой?
Пока нет: видеомодели в API работают только из текста. Запрос с картинкой (input_reference) вернёт понятную ошибку, и деньги не спишутся. Первый кадр опишите словами в prompt. Ремикса и удаления роликов через API тоже нет.
Можно платить как компания и делить расходы по каналам?
Да. Счёт от 1 000 ₽, договор и закрывающие документы — подробно на странице для бизнеса. На каждый канал или клиента заведите отдельный ключ с лимитом в рублях: расход на субтитры, тексты, озвучку и картинки виден по ключу. Ролики и музыка пока списываются с общего баланса, а не с лимита ключа — их цену API возвращает в поле price_rub, по нему удобно вести учёт в своём коде. Компаниям доступны видео, озвучка, картинки и субтитры, музыка Suno — нет.
Какую озвучку взять для русского?
Для роликов и курсов — Speech 2.8 HD (10,8 ₽ за 1 000 символов, русские голоса, например Russian_ReliableMan) или ElevenLabs Multilingual v2 (27 ₽, самое естественное звучание в каталоге, голос задаётся id голоса ElevenLabs). Для массовой черновой начитки — Grok Voice TTS 1.0 (1,62 ₽, пять голосов). Клонирования своего голоса через API нет.
Регистрация за минуту. Пополнение картой РФ или по СБП от 50 ₽, компаниям — по счёту от 1 000 ₽. Черновой ролик — от 10 ₽, минута субтитров — около 0,55 ₽.