Каналы
Канал — это пресет генерации (жанр, стиль, фон, музыка) + ниша, по
которой подбираются свежие темы. Через 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 и т.д.
Куда дальше
- Быстрый старт — флоу заказа и статусов роликов;
- Вебхуки — события вместо поллинга;
- Коды ошибок —
404за чужие каналы,429за suggest.