Перейти к основному содержимому

Каналы

Канал — это пресет генерации (жанр, стиль, фон, музыка) + ниша, по которой подбираются свежие темы. Через API можно завести канал, подобрать концепцию LLM'кой, управлять расписанием автовыпуска и ставить «ролик сейчас» по пресету канала. Лимит — 20 каналов на пользователя (общий с ботом и веб-студией). Все вызовы — с заголовком X-API-Key: pp_....

Базовый URL: https://api.piratepress.fun/public/v1.

CRUD​

# создать (201)
curl -X POST https://api.piratepress.fun/public/v1/channels \
-H "X-API-Key: pp_..." \
-H "Content-Type: application/json" \
-d '{
"name": "Кибер-йогурт",
"niche": "еда и технологии",
"description": "Смешные обзоры новинок",
"params": {"genre": "обзор", "lang": "ru", "duration": "20-40",
"bg_ai": "illustrations", "resolution": "720x1280"}
}'

curl https://api.piratepress.fun/public/v1/channels -H "X-API-Key: pp_..."

# правка (расписание + поля)
curl -X PATCH https://api.piratepress.fun/public/v1/channels/ch_... \
-H "X-API-Key: pp_..." \
-H "Content-Type: application/json" \
-d '{"schedule_enabled": true, "schedule_hour": 19, "schedule_days": [1, 3, 5]}'

# удалить (204)
curl -X DELETE https://api.piratepress.fun/public/v1/channels/ch_... \
-H "X-API-Key: pp_..."

Ответ — канал:

{
"id": "ch_a1b2c3",
"name": "Кибер-йогурт",
"niche": "еда и технологии",
"description": "Смешные обзоры новинок",
"params": { "genre": "обзор", "lang": "ru", "duration": "20-40" },
"schedule_enabled": true,
"schedule_hour": 19,
"schedule_minute": 0,
"schedule_days": [1, 3, 5],
"tz_offset_min": 180,
"last_fired_at": null,
"is_active": true,
"created_at": "2026-10-19T12:00:00Z"
}

Поля params (все опциональны): genre, style, visual_style, music_mood, lang, duration ("15-45" или число), bg_ai ("illustrations"|"lite"), music ("none"|"ai"), resolution ("720x1280" — вертикаль по умолчанию, "1280x720").

Поля расписания (в PATCH): schedule_enabled, schedule_hour (0–23), schedule_minute (0–59), schedule_days (числа 0–6, Пн–Вс), tz_offset_min (−720…840, смещение от UTC в минутах), is_active. schedule_enabled: true требует schedule_hour и непустой schedule_days, иначе 422 invalid_params.

Чужой/неизвестный канал — 404 not_found (чужие не раскрываем).

Концепция канала — POST /channels/suggest​

Не знаешь, с чего начать — подсказка → готовая концепция от LLM (бесплатно, лимиты: 10/час на пользователя, 1000/сутки глобально):

curl -X POST https://api.piratepress.fun/public/v1/channels/suggest \
-H "X-API-Key: pp_..." \
-H "Content-Type: application/json" \
-d '{"hint": "канал про лайфхаки для котов", "lang": "ru"}'
{
"name": "Кот Протокол",
"niche": "питомцы и лайфхаки",
"genre": "лайфхаки",
"style": "юмор",
"visual_style": "яркие мемные вставки",
"music_mood": "задорная",
"description": "Ежедневные лайфхаки для котов и их людей"
}

«Ролик сейчас» — POST /channels/{id}/roll​

Пресет канала + свежая тема из трендов ниши → заказ генерации. Списание, fair-use и квота 10 активных задач — ровно как у POST /videos:

curl -X POST https://api.piratepress.fun/public/v1/channels/ch_a1b2c3/roll \
-H "X-API-Key: pp_..."
{
"channel": { "id": "ch_a1b2c3", "name": "Кибер-йогурт", "...": "..." },
"video": { "id": "gen_d4e5f6", "status": "queued", "cost": 100, "eta_seconds": 420 }
}

Дальше работай с video.id как с обычным заказом: GET /videos/{id}, вебхуки video.done и т.д.

Куда дальше​