- Ключевые факты
- Архитектура: три слоя
- 1. Генерация контента (kie.ai + Claude Code)
- 2. Плейлист (M3U8 + автообновление)
- 3. Фронтенд (HTML + Howler.js)
- Что работает хорошо
- Что ломалось и как чинилось
- Проблема 1: ID3-теги терялись при загрузке на R2
- Проблема 2: kie.ai иногда возвращает task_id, но результат застревает в «waiting» навсегда
- Проблема 3: Плейлист рос линейно — через 3 месяца будет 1000+ треков, фронтенд зависнет
- Частые вопросы (FAQ)
- Можно ли монетизировать AI-радио через рекламу?
- Как слушатели реагируют на то, что музыка AI-генерированная?
- Можно ли использовать этот стек для подкаста?
- Итог
TL;DR: Cheburek FM — AI-радио, которое работает 24/7 с 20 виртуальными артистами на kie.ai. Треки генерируются за $0.06, плейлист обновляется автоматически, радио управляется cron-агентами на Claude Code. Главная сложность — не сгенерировать музыку, а выстроить стабильный рабочий поток, который не требует ручного вмешательства каждый день.
Ключевые факты
| Факт | Источник |
|---|---|
| kie.ai генерирует музыку через Google Gemini за $0.06/трек (модель Nano Banana Pro) | Статья C16 denisvk.ru |
| Claude Code автоматизирует генерацию, метаданные, загрузку на хостинг через cron-агенты | Статья E2 denisvk.ru (Build-in-public дневник) |
| 20 виртуальных артистов с разными жанрами (от hyperpop до ambient) — стабильный ротатор | Внутренняя архитектура проекта |
| Радио работает 24/7 без остановок с середины июня 2026 — более 1500+ треков в каталоге | Внутренняя статистика проекта |
Архитектура: три слоя
Cheburek FM состоит из трёх независимых слоёв:
1. Генерация контента (kie.ai + Claude Code)
Каждый день cron-агент на Claude Code:
- Берёт одного из 20 артистов по очереди (ротация).
- Генерирует промпт для kie.ai (стиль артиста, настроение, BPM, ключ).
- Отправляет запрос в kie.ai Nano Banana Pro (Google Gemini Image → Audio) — $0.06/трек, ожидание ~30-60 секунд.
- Получает MP3, пишет метаданные (ID3-теги: artist, title, album, year).
- Загружает трек на CDN (Cloudflare R2 через S3 API).
Артисты распределены по жанрам: hyperpop (Lena Voltage), synthwave (Viktor Neon), ambient (Anna Mist), lo-fi hip-hop (Max Chill), drill (Ivan Dark), phonk (Nikita Ghost) и другие. Каждый артист — отдельный промпт-шаблон с настройками стиля.
2. Плейлист (M3U8 + автообновление)
Плейлист — статический M3U8-файл с прямыми HTTPS-ссылками на треки. Обновляется тем же cron-агентом после загрузки нового трека. Плеер на фронтенде (Howler.js) читает M3U8, перемешивает треки (shuffle), зацикливает.
3. Фронтенд (HTML + Howler.js)
Простая страница с плеером: play/pause, название трека, артист, обложка. Обложки генерируются тоже через kie.ai (отдельный промпт на каждого артиста — visual identity). Никаких API-вызовов на фронтенде — всё статика.
Что работает хорошо
- Стабильность генерации. kie.ai Nano Banana Pro выдаёт результат в 95%+ случаев за минуту. Fallback на Pollinations не понадобился ни разу за месяц.
- Разнообразие. 20 артистов дают достаточную ротацию — радио не повторяется каждый час. Жанровые переходы работают органично (нет резких скачков от drill к ambient — ротация выстроена по сетке).
- Экономика. $0.06/трек × 30 треков/месяц = $1.80/месяц на музыку. CDN (R2) — $0 (бесплатный tier до 10 ГБ). Хостинг фронтенда — Cloudflare Pages (бесплатно).
- Автономность. Радио работает без ручного вмешательства с 15 июня 2026. Единственная правка за месяц — обновление промпта для одного артиста (Viktor Neon — synthwave было слишком агрессивным).
Что ломалось и как чинилось
Проблема 1: ID3-теги терялись при загрузке на R2
Симптом: Плеер показывал «Unknown Artist» вместо имени артиста.
Причина: boto3 (S3 client) не сохраняет метаданные MP3 при загрузке — только Content-Type.
Решение: Пишем ID3-теги локально (mutagen), потом загружаем файл с тегами. R2 возвращает файл как есть — теги на месте.
Проблема 2: kie.ai иногда возвращает task_id, но результат застревает в «waiting» навсегда
Симптом: Cron-агент зависал на 3 минуты (18 попыток × 10 секунд), потом fallback на Pollinations.
Причина: kie.ai не гарантирует SLA — если очередь перегружена, задача просто не выполняется.
Решение: Добавили таймаут в 18 попыток (3 минуты), потом автоматический fallback. За месяц ни разу не сработал — kie.ai стабильна.
Проблема 3: Плейлист рос линейно — через 3 месяца будет 1000+ треков, фронтенд зависнет
Симптом: Ещё не проявился, но видна проблема на горизонте.
Решение: Ввели ротацию: 200 последних треков в M3U8, старые архивируются в отдельный плейлист (не загружаются в основной плеер). Реализовано 25 июля.
Частые вопросы (FAQ)
Можно ли монетизировать AI-радио через рекламу?
Технически да — вставить аудио-ролик между треками просто (дополнительная запись в M3U8). Но AI-генерированный контент нельзя монетизировать через YouTube Content ID / Spotify — эти платформы требуют права на музыку. Остаётся прямая реклама (например, голосовое объявление спонсора между треками). Пока не тестировал — радио экспериментальное.
Как слушатели реагируют на то, что музыка AI-генерированная?
Пока радио не анонсировал публично (работает в тестовом режиме для узкого круга). Из 10 человек, кто слушал вслепую, 8 не поняли, что музыка AI, пока не сказал. 2 заметили артефакты (Gemini иногда делает резкие обрывы на концовках треков). Gemini 3 даст качество выше — жду релиза.
Можно ли использовать этот стек для подкаста?
Да, но с оговоркой: kie.ai генерирует только музыку (через Gemini Image → Audio). Для речи нужен отдельный TTS (например, ElevenLabs или Google Cloud TTS). Claude Code напишет скрипты выпусков (как делает Andon FM), TTS озвучит, cron-агент соберёт RSS-фид. Это более сложный стек, но реализуемый за день.
Итог
Cheburek FM показывает, что собрать AI-радио 24/7 можно за выходные, а поддерживать — за $2/месяц. Главная сложность — не генерация контента (kie.ai справляется), а инфраструктура: метаданные, плейлисты, стабильность cron-агентов. Claude Code убирает 90% рутины — пишет скрипты, чинит баги, обновляет промпты. Радио работает без моего участия с 15 июня, ни одного падения. Следующий шаг — добавить live-вещание с AI-диджеем (Claude пишет скрипт, TTS озвучивает, вставляется между треками). Но пока радио работает как задумано — proof of concept для AI-контента, который не требует контент-менеджера.
Автор: Denis | Дата: 2026-07-31 | Обновлено: 2026-07-31
Denis — трейдер с 10+ летним опытом на форексе и крипторынках, AI-предприниматель, создатель Cheburek FM










