Самые выгодные курсы обмена валют

Cheburek FM: как работает AI-радио 24/7 — архитектура и уроки первых месяцев

Мои проекты

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

Поделиться с друзьями
DenisVK
Оцените автора
( Пока оценок нет )
DenisVK
Добавить комментарий

Самые выгодные курсы обмена валют