javascript

TMH: как создать музыкальный хаб на PHP, Telegram и виртуальном хостинге

  • суббота, 6 сентября 2025 г. в 00:00:05
https://habr.com/ru/articles/944144/
основные возможности скрипта TMH by TCSE
основные возможности скрипта TMH by TCSE

Telegram Music Hub (TMH) — это open-source решение, которое превращает ваш Telegram-канал в единое цифровое пространство для музыки, блога и сообщества.
И всё это — на самом обычном виртуальном хостинге, без баз данных, без сложных зависимостей, без дорогих серверов.

👉 github.com/tcse/php-TMH

Что такое TMH?

TMH by TCSE — это не просто плеер. Это система управления контентом, где:

  • Telegram — источник контента (канал + бот)

  • PHP — движок

  • Веб-сайт — финальная точка потребления

Вы публикуете трек или пост в Telegram — и он автоматически появляется на вашем сайте, как в стриминге.

Возможности

веб-плеер TMH проигрывающий треки напрямую из Telegram
веб-плеер TMH проигрывающий треки напрямую из Telegram

Функция

Описание

🎧 Потоковое прослушивание

Веб-плеер с поддержкой PWA (можно установить как приложение)

📝 Автоматический блог

Посты из Telegram-канала отображаются как красивый мобильный сайт

📁 Плейлисты

M3U, PLS, XSPF — для VLC, Winamp, Foobar и других плееров

🖼️ Галерея фото

Альбомы из Telegram — как слайдер в блоге

🔐 Безопасность

Никаких прямых ссылок с токенами бота — только через прокси

🌐 PWA

Работает как нативное приложение, в том числе на iPhone с выключенным экраном

Автоматический блог из сообщений telegram канала на вашем сайте
Автоматический блог из сообщений telegram канала на вашем сайте

Почему PHP, а не Python или Node.js?

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

  • Node.js — для асинхронности

  • Python — для чистоты кода

  • Docker — для контейнеризации

Но цель была другой: сделать решение, которое может установить любой, даже без технических навыков.

И вот почему я выбрал PHP:

✅ Доступность

  • PHP 7.4+ — стандарт на 99% виртуальных хостингов

  • Никаких npm, pip, node_modules

  • Нет нужды в VPS или выделенном сервере

✅ Простота развёртывания

  • Скачали архив → загрузили по FTP → открыли ссылку → готово

  • Никаких npm install, pip install, docker-compose up

✅ Без баз данных

  • Все данные — в .json файлах: music_db.json, posts.json, user_states.json

  • Нет MySQL, нет PostgreSQL, нет Redis

  • Легко бэкапить, редактировать, переносить

✅ SSL — и всё работает

  • Даже бесплатный Let's Encrypt подойдёт для вебхука

  • Никаких прокси, nginx, certbot — хостинг сам всё настроит

Дешево и эффективно

Сколько стоит запустить TMH?

  • Хостинг: от 100–200 руб/мес (например, Masterhost, Timeweb, Beget и прочие )

  • Домен: опционально (можно использовать поддомен)

  • SSL: бесплатный (всегда включён)

  • Telegram: бесплатно

Итого: от 0 до 200 рублей в месяц.

Вы получаете:

  • 🎶 Музыкальный стриминг

  • 📝 Блог с фото и аудио

  • 📱 PWA-приложение

  • 🔄 Автоматическую синхронизацию с Telegram

Как это работает?

Telegram-бот
     ↓
   bot.php (вебхук)
     ↓
music_db.json, posts.json
     ↓
  Веб-сайт (HTML + JS)
  1. Вы отправляете аудио боту → он сохраняет file_id в music_db.json

  2. Вы публикуете пост в канале → он сохраняется в posts.json

  3. stream.php и blog_cover.php возвращают медиа по file_id (без токена!)

  4. blog.html и player.html показывают всё красиво

Безопасность: никаких токенов в коде

Многие решения показывают токен бота в music_db.json или stream.php — это опасно.

В TMH:

  • stream.php?id=file_id → возвращает аудио через header('Location: ...')

  • blog_cover.php?file_id=... → возвращает фото

  • Токен бота никогда не попадает в браузер

Почему это важно?

Telegram становится новой платформой, как веб в 2000-х.
Но большая часть мира всё ещё живёт в обычном вебе.

TMH — это мост между ними.

Вы не просто делаете плеер.
Вы показываете, что контент в Telegram может быть виден везде — в поиске, в соцсетях, в браузере.

Кому подойдёт?

  • Музыкантам, которые хотят слушать свою музыку как в Spotify

  • Поэтам и писателям, ведущим литературный дневник

  • Продюсерам, собирающим архивы и референсы

  • Блогерам, ведущим визуальные заметки

  • Сообществам, которые хотят быть видны вне Telegram

Установка (5 минут)

  1. Скачайте релиз с GitHub

  2. Загрузите папку /tmh/ на хостинг через FTP

  3. Откройте /tmh/data/config.php и укажите:

    • bot_token

    • base_url

    • channel_username

  4. Запустите /tmh/core/set_webhook.php

  5. Добавьте бота администратором в канал

Готово! Бот начинает слушать.

Итог

TMH by TCSE — это не просто скрипт.
Это демонстрация силы простоты.

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

  • PHP 7.4+

  • SSL

  • Telegram

И вы получаете полноценное цифровое пространство.

Попробуйте: github.com/tcse/php-TMH
Star, Fork, PR — приветствуются.

Ваша музыка заслуживает лучшего способа быть услышанной.

🔍 Хотите посмотреть, как это работает в реальных проектах?

Вот несколько примеров, где php-TMH уже используется:

🔹 Демо-сайт разработчика
Полный функционал: блог с фотоальбомами, веб-плеер с поддержкой PWA, потоковое воспроизведение.

диалог с ботом для гостей, без возможности добавлять свои треки
диалог с ботом для гостей, без возможности добавлять свои треки


Треки загружаются только автором канала — идеально подходит для артистов и личных проектов.
Вы можете послушать, посмотреть галерею и почувствовать, как работает система.

отображение telegram mini app из блога (который на самом деле лента записей в канале)
отображение telegram mini app из блога (который на самом деле лента записей в канале)

🔹 Музыка сообщества «Dongfeng»
Открытый доступ: любой пользователь может загрузить трек через бота @DongfengAeolusRu_Bot.
Отличный пример работы с модерацией, ролями пользователей и Telegram Mini App.
Можно протестировать весь процесс — от загрузки до прослушивания в вебе.

интерфейс диалога с ботом для добавления своих треков
интерфейс диалога с ботом для добавления своих треков

Эти проекты показывают, как один и тот же скрипт может работать и как персональный хаб, и как платформа для сообщества.

👉 Исходный код: github.com/tcse/php-TMH