June 12, 2023

💿 Как сделать виниловую пластинку в Телеграм? (бот Винилизатор)

Для тех, кому просто нужен бот — вот ссылка 👉 @VinylizeBot

А теперь подробнее, что за виниловые пластинки и зачем они нужны...


Зарождение идеи 🤔

Боты в Телеграме умеют работать с «кружочками», однако, сам формат не так активно используется ботами и интересных проектов, которые используют кружочки нет. Виниловый проигрыватель — моя давняя мечта. Отсюда и пошла идея рендерить виниловые пластинки прямо в Телеграм-кружочки. Если не в реальности, то хоть в цифровом виде у меня будет коллекция пластинок 🤡

Начинаем проектировать 👨‍💻

Итак, что нам нужно:

  1. Какой-то движок для рисования
  2. ffmpeg
  3. Скрипт, который будет покадрово рисовать видео
Первое упоминание о боте в лайв-канале

Первая версия Винилизатора была готова уже через два дня. Она была довольно простой, без каких либо настроек, а сами пластинки выглядели совсем не эстетично:

Первая версия пластинки

Нехитрым образом удалось добавить блики, а попотев над ffmpeg командами удалось добиться плавности и добавить виниловый шум:

Вторая версия. Уже получше.

А так выглядит финальная версия:

Финал_очка

Интересные факты 💡

Изначально бот рендерил каждый кадр в .jpg изображения и далее собирал видос из этой секвенции. Мои супер гениальные коллеги из соседних каналов подсказали, что кадры можно проксировать напрямую в ffmpeg. Это значительно ускорило процесс.

Еще из прикольных идей для оптимизации — рендерить только один оборот пластинки, а дальше делать «репит». Очевидно, что так скрипт тратит на вычисления гораздо меньше времени.


Публикуем 🚀

О релизе бота я написал на своем канале. После публикации очередь резко возросла до 50 пластинок и не уменьшалась несколько часов. Затем парочка крупных каналов репостнули бота к себе и... очередь возросла до 500 пластинок... Сейчас нагрузка уже спала, но активных пользователей становится все больше и больше.


Премиум 🌟

Спустя примерно 2 месяца вышла премиум версия бота. В ней можно:

- Записывать CD-диски;
- Присылать аудио через ссылку на YouTube‑видео;
- Добавлять плавное затухание в начале и в конце трека;
- Вручную выбирать длительность пластинки через таймкод;
- Генерировать обложки к трекам через нейросеть Stable Diffusion;
- Разделять длинные треки на отдельные пластинки;
- Доступна отдельная приоритетная очередь;
- Запускать запись новой пластинки не дожидаясь завершения предыдущей;
- Возможно еще что-то, о чем я забыл...

Зачем нужны такие пластинки? 📈

Многие крупные каналы радиостанций, подкастов, лейблов, музыкальных групп и пр. начали публиковать отрывки своего контента в виде виниловых кружочков. Такие посты набирают в десятки раз больше репостов и комментариев, чем рядовые посты. А еще – привлекают внимание. Никому не интересно слушать простое аудио, а прикольные виниловые кружочки все слушают до конца.

Ссылка на бота еще раз

Вам сюда 👉 @VinylizeBot