Как разместить подкаст на Raspberry Pi у себя дома

Зачем размещать подкаст на Raspberry Pi

Подкаст — это аудиосериал, где эпизоды распространяются через RSS. Создать подкаст может почти каждый: достаточно темы, голоса и записи.
Почему стоит рассмотреть Raspberry Pi для хостинга:
- Контроль: вы управляете файлами, метаданными и доступом.
- Приватность: никаких сторонних платформ, которые могут менять правила или удалять контент.
- Экономия: отсутствуют ежемесячные платежи за трафик на сторонних хостингах (за исключением стоимости интернет-канала у провайдера).
Кратко о компромиссе: вы берёте ответственность за доступность и пропускную способность. Если у вас много слушателей, домашний интернет может оказаться узким местом.
Важно: dir2cast — простой PHP-скрипт, который сканирует папку с аудио и генерирует RSS по данным из ID3-тегов. Он работает локально на вашем сервере и публикует XML, который подписчики добавляют в свои плееры.
Подготовьте файлы подкаста

dir2cast использует встроенные в MP3/другие аудиофайлы метаданные (ID3) для заполнения RSS-полей. Перед публикацией:
- Установите заголовок эпизода (Title).
- Укажите дату и время выпуска (Date).
- Добавьте описание эпизода (Description).
- При необходимости вставьте обложку эпизода (Cover Art) и укажите, содержит ли выпуск нецензурную лексику.
Инструменты для редактирования тегов: Puddletag, MusicBrainz Picard, Kid3 — выбирайте тот, который удобен.
Пояснение термина: ID3 — это набор метаданных внутри MP3-файла, содержащий название, исполнителя, обложку и другие данные.
Совет: для удобства поддерживайте единый формат имен файлов и каталоги по сезонам/сериям.
Как установить dir2cast на Raspberry Pi

Перед началом убедитесь, что у вас есть базовый веб-сервер Apache и доступ к командной строке Raspberry Pi. Если сервер ещё не настроен, сначала выполните базовую настройку веб-сервера (установка Apache, PHP и базовая конфигурация).
Шаги установки dir2cast:
- На Raspberry Pi установите PHP XML-расширение:
sudo apt install php-xml- Создайте папку для подкастов и назначьте владельца веб-серверу:
sudo mkdir /var/www/podcasts/
sudo chown www-data:www-data /var/www/podcasts/- Перейдите в каталог конфигураций Apache:
cd /etc/apache2/sites-available/- Создайте новый конфигурационный файл сайта:
sudo nano podcasts.confВставьте в файл минимальную конфигурацию виртуального хоста (замените muo.lol на своё доменное имя):
ServerName muo.lol
DocumentRoot /var/www/podcasts/
Сохраните и выйдите (Ctrl + O, затем Ctrl + X), затем включите сайт и перезапустите Apache:
sudo a2ensite podcasts.conf
sudo service apache2 restart- Настройте HTTPS с помощью Certbot (Let’s Encrypt):
sudo certbotВыберите домен из списка и нажмите Enter. Certbot установит сертификаты и (при возможности) настроит автоматическую переадресацию HTTP→HTTPS.
Перезапустите Apache ещё раз:
sudo service apache2 restartПримечание: в некоторых случаях нужно установить пакет python3-certbot-apache или certbot-auto в зависимости от дистрибутива.
Настройка DNS

Укажите у регистратора домена A-запись, которая указывает на ваш публичный IP. Параметры:
- Тип: A
- Хост: @ (или пустое имя, зависит от регистратора)
- Значение: ваш публичный IP-адрес
- TTL: минимально возможное (чтобы быстрее обновлять запись при смене IP)
Если у вас динамический IP от провайдера, используйте динамический DNS-сервис или настройте скрипт обновления A-записи.
Важно: при использовании домашнего подключения убедитесь, что порт 80/443 проброшен на Raspberry Pi через роутер (настройка NAT/портфорвардинга).
Клонирование и копирование dir2cast
Перейдите в домашнюю папку и клонируйте репозиторий dir2cast:
cd
git clone https://github.com/ben-xo/dir2cast.git && cd dir2castСкопируйте необходимые файлы в рабочую папку веб-сервера:
sudo cp -r dir2cast.* test/ getID3/ /var/www/podcasts/Теперь у вас в /var/www/podcasts/ должны быть файлы скрипта, библиотека getID3 и пример тестового набора.
Использование dir2cast для хостинга подкастов на Raspberry Pi

dir2cast работает из коробки, но вам нужно настроить файл конфигурации dir2cast.ini. Отредактируйте его:
sudo nano /var/www/podcasts/dir2cast.iniПри желании смените имя файла PHP, чтобы сделать URL удобнее (например, index.php):
sudo mv /var/www/podcasts/dir2cast.php /var/www/podcasts/index.phpВ секции INFORMATION ABOUT YOUR PODCAST укажите:
- Авторские права (copyright)
- Имя автора/шоу
- Email (если хотите интеграцию с iTunes)
- Описание шоу
- Параметр mature, если есть возрастные ограничения
- Встраивать ли обложку в RSS
Сохраните изменения (Ctrl + O, Ctrl + X).
Чтобы сгенерировать RSS, просто скопируйте MP3-файл в папку /var/www/podcasts/:
sudo cp podcast-file.mp3 /var/www/podcasts/Если вы хотите организовать папки по сезонам или темам, создавайте субдиректории. Для каждой субдиректории нужна копия файла dir2cast.ini, либо включите рекурсивный обход каталогов в основном конфиге, раскомментировав:
- Откройте dir2cast.ini и найти строку RECURSIVE_DIRECTORY_ITERATOR = true и уберите символы комментирования.
dir2cast следит за папкой и регенерирует RSS после добавления новых файлов. Скрипт делает паузу на несколько минут, чтобы убедиться, что копирование завершено.

Откройте в браузере свой домен. Вы увидите XML-файл с перечислением эпизодов и метаданными. Этот URL можно отправлять слушателям или добавлять в каталоги.

Тестирование самохостингового подкаста
Перед публичной рассылкой:
- Скопируйте URL RSS и подпишитесь на него в любимом подкаст-клиенте (Castbox, Overcast, Pocket Casts, Castero и т. п.).
- Проверьте, проигрывается ли файл полностью.
- Проверьте корректность метаданных: название, описание, обложка, длительность.
- Убедитесь, что HTTPS работает и сертификат не вызывает ошибок.
Если всё в порядке, ваш подкаст готов принимать подписчиков.
Рекомендации по структуре директорий и именованию
Хорошая структура упрощает управление:
- /var/www/podcasts/ — корень шоу
- /season-01/
- /season-02/
- dir2cast.ini (если нужно единое правило)
Именуйте файлы по шаблону: YYYY-MM-DD-episode-title.mp3 — это помогает сортировать по дате.
Безопасность и приватность
Несколько практических рекомендаций по безопасности:
- Ограничьте права: файлы веб-каталога должны принадлежать www-data, но не иметь права на исполнение от посторонних.
- Используйте HTTPS (Certbot) и периодически проверяйте срок действия сертификата.
- Закройте доступ к панели управления Raspberry Pi снаружи, используйте SSH с ключами и отключите вход по паролю.
- Ограничьте показ листинга директорий в Apache (Options -Indexes) в конфиге сайта.
- Настройте файервол: ufw allow 80,443 и блокируйте лишние порты.
- Если вы собираете личные данные слушателей (например, email), подумайте о правилах конфиденциальности и соответствующих уведомлениях.
Важно: если у вас есть требования GDPR/локального законодательства по персональным данным, обеспечьте ясную политику конфиденциальности и хранение данных в соответствии с законом.
Отладка и частые проблемы
Симптом: RSS пустой или отсутствуют эпизоды.
- Проверьте права на файлы и владельца (www-data).
- Убедитесь, что ID3-теги присутствуют и читаются getID3.
- Проверьте, включён ли PHP и php-xml.
Симптом: при подписке плеер не загружает обложку.
- Проверьте, вшита ли обложка в ID3 или доступен внешний URL в конфиге.
- Убедитесь, что URL обложки доступен по HTTPS.
Симптом: сайт недоступен извне.
- Проверьте проброс портов на роутере.
- Удостоверьтесь, что у домена верный A-запись.
- Проверьте локально: curl -I https://ваш-домен
Симптом: Certbot не может получить сертификат.
- Убедитесь, что порт 80 открыт и домен указывает на ваш IP.
- Если у вас динамический IP, сначала обновите DNS-запись.
Критерии приёмки
- RSS-файл доступен по HTTPS и открывается в браузере без ошибок сертификата.
- Как минимум один эпизод появляется в RSS и корректно проигрывается в подкаст-клиенте.
- Метаданные эпизода (название, дата, описание, обложка) отображаются в плеере.
- Права доступа к файлам настроены: владельцем является www-data, лишние права сняты.
Контрольный список по ролям
Создатель контента:
- Подготовить MP3 с корректными ID3-тегами.
- Встроить/загрузить обложку эпизода.
- Проверить аудиокаталог на орфографию и структуру.
Администратор сервера:
- Установить Apache, PHP, php-xml и ufw.
- Настроить виртуальный хост и HTTPS.
- Настроить бэкапы каталога подкастов.
Тестировщик/слушатель:
- Подписаться на RSS в клиенте и проверить воспроизведение.
- Сообщить об ошибках метаданных или о проблемах доступа.
Решение: когда этот подход не подходит
- У вас ожидается большой поток трафика (сотни/тысячи одновременных слушателей) — домашний канал и Raspberry Pi могут не выдержать; лучше использовать специализированный хостинг.
- Вам нужна встроенная аналитика и распространение в каталоги автоматически — коммерческие сервисы часто предлагают дополнительные опции и интеграции.
Альтернативы:
- Платные хостинги подкастов (предоставляют CDN, аналитику и интеграции).
- Бесплатная загрузка на платформы вроде Spotify — удобно, но ограничивает контроль над контентом.
Краткий глоссарий
- RSS — формат XML для подписки на обновления, в том числе подкасты.
- ID3 — метаданные внутри файлов MP3.
- dir2cast — PHP-утилита, генерирующая RSS на основе структуры каталогов и ID3.
- A-запись — DNS-запись, указывающая домен на IP-адрес.
- Certbot — утилита для получения TLS/SSL-сертификатов от Let’s Encrypt.
Краткое резюме
Размещение подкаста на Raspberry Pi — дешевый и контролируемый способ публикации аудиоконтента. Основные шаги: подготовить теги ID3, настроить виртуальный хост Apache и HTTPS, установить dir2cast и разместить файлы в /var/www/podcasts/. Проверьте доступность RSS в плеере и настройте безопасность сервера.
Важно: при росте аудитории подумайте о переходе на CDN или платный хостинг, чтобы обеспечить стабильность и масштабируемость.
Похожие материалы
Пересылка почты Outlook ↔ Gmail: полное руководство
Как узнать, что пора менять батарейку AirTag
Как удалить устройства из Google Home
Вернуть «Open command window here» в Windows 11
Подключение Bluetooth-наушников к Wear OS