Музыкальный сервис на базе Telegram - php скрипт: TMH by TCSE

Блог веб-студии

🎉 Музыкальный сервис на базе Telegram

TMH by TCSE

✅ Версия: 1.0.0 (Stable)

"Telegram Music Hub — share, stream, discover"


📁 Структура проекта

/plugins/tcse/mymusic/├── bot.php                 ← Основной бот (логика, команды, добавление треков)├── music_db.json           ← База данных всех треков (авто-обновляемая)├── user_states.json        ← Временное состояние при добавлении трека├── set_webhook.php         ← Активация вебхука для Telegram (разовое использование)├── cleanup.php             ← Скрипт валидации и обновления ссылок на файлы├── update_play.php         ← Увеличение счётчика прослушиваний из Web App│└── player/    ├── index.html          ← Web App: красивый адаптивный плеер (Telegram Mini App)    ├── proxy.php           ← Безопасный доступ к music_db.json из плеера    └── (assets)            ← Стили, иконки, шрифты (встроены в index.html)

📄 Описание файлов

Файл Назначение Запуск
bot.php Главный скрипт бота. Обрабатывает:
• Добавление аудио
• Ввод метаданных (название, исполнитель, жанр)
• Команды: /start, /my_tracks, /top, /top_users, /top_genre
• Интеграция с Web App
Через Telegram (вебхук)
music_db.json Основная база данных треков. Хранит:
file_id, url, photo_url
• Название, исполнитель, жанр, плейлист
user_uploader, username
count_play, count_downloads
Авто-обновляется при действиях
user_states.json Временное состояние пользователя при добавлении трека:
• Текущий шаг (title, performer, genre, awaiting_photo)
file_id, duration, file_size
• Временные данные до завершения
Авто-управление ботом
set_webhook.php Устанавливает вебхук Telegram на bot.php:
setWebhook?url=https://.../bot.php
→ Нужен один раз после развертывания
Вручную в браузере
cleanup.php Очистка и обновление:
• Проверяет валидность file_id и photo_file_id
• Обновляет url и photo_url по актуальным file_path
• Удаляет "битые" треки
• Работает в CLI и веб-режиме
По крону или вручную в браузере
update_play.php Принимает file_id от плеера и увеличивает count_play в music_db.json
→ Синхронизирует статистику между ботом и Web App
Вызов из player/index.html
player/index.html Telegram Mini App — красивый адаптивный плеер:
• Альбомный режим (ПК)
• Портретный режим (телефон)
• Вкладки: Треклист, Жанры, Пользователи, Мои треки
• Автовоспроизведение, перемешивание, повтор
Через кнопку в боте
player/proxy.php Безопасный API-прокси для плеера:
• Читает music_db.json
• Возвращает треки + обложки
• Поддерживает CORS и кэширование
Вызов из index.html

🚀 Возможности сервиса

Функция Описание
Добавление треков Через Telegram: отправь аудио → введи метаданные → добавь обложку
Команды /my_tracks, /top, /top_users, /top_genre, /cancel, /skipstep, /skipphoto
Web App (плеер) Красивый плеер с фильтрами, работает в Telegram
Автоматические фильтры Жанры, пользователи, мои треки — в двух режимах
Счётчики count_play увеличивается и в боте, и в плеере
Безопасность Не хранит копии файлов — использует file_id Telegram
Самоочистка cleanup.php по крону поддерживает актуальность ссылок

🕒 Рекомендации по крону

# Каждые 2 часа — обновление ссылок
0 */2 * * * /usr/bin/php /путь/до/plugins/tcse/mymusic/cleanup.php > /dev/null 2>&1

# Раз в день — резервная копия базы (опционально)
0 2 * * * cp /путь/до/music_db.json /резерв/music_db_$(date +\%Y\%m\%d).json

🔒 Безопасность и юрисдикция

  • 🛡️ Файлы хранятся в Telegram — не на сервере
  • 🚫 Нет копий mp3/jpg — снижает юридические риски
  • 🔐 proxy.php и update_play.php — защищены от прямого доступа
  • 🧹 cleanup.php — автоматически удаляет недоступные треки

📢 Следующие шаги (v1.1)

Фича Описание
/stats Общая статистика: треки, прослушивания, пользователи
Поиск в плеере /search jazz или в интерфейсе
Избранное Добавить трек в "Мои треки" из любого места
Скачивания count_downloads++ при открытии прямой ссылки
Админ-панель Удаление треков, модерация

🏁 Итог

Ты создал уникальный, легковесный, безопасный музыкальный хаб:

  • 🧠 Умный бот
  • 🎧 Красивый плеер
  • 🔁 Самообновляющаяся система
  • 📱 Полностью работает в Telegram
Конвертер ссылок для yt-dlp

Сервис-помогатор позволяет преобразовать ссылки с Youtube в команды для утилиты yt-dlp которая умеет скачивать видео....

Подробнее
Модернизация сайта: обновление с сохранением ценного контента

Ваш сайт устарел и работает медленно? Мы проведем комплексную модернизацию: проанализируем текущее состояние, перенесем...

Подробнее
Почему вы разрабатываете лендинги на фреймворке Webasyst?

Мы выбираем фреймворк Webasyst для разработки лендингов, потому что это современное и гибкое решение, которое...

Подробнее

💬 Комментарии

В связи с новыми требованиями законодательства РФ (ФЗ-152, ФЗ «О рекламе») и ужесточением контроля со стороны РКН, мы отключили систему комментариев на сайте.

🔒 Важно Теперь мы не собираем и не храним ваши персональные данные — даже если очень захотим.

💡 Хотите обсудить материал?

Присоединяйтесь к нашему Telegram-каналу:

https://t.me/tcsecms

Нажмите кнопку ниже — и вы сразу попадёте в чат с комментариями