Как хостить подкасты на Raspberry Pi дома
TL;DR
Самохостинг подкастов на Raspberry Pi — недорогой способ полностью контролировать контент и RSS-канал. Установите LAMP (Apache + PHP), поставьте расширение php-xml, разверните dir2cast, настройте DNS и HTTPS через Certbot, поместите MP3 с корректными ID3-тегами в каталог — и ваш RSS-канал будет генерироваться автоматически.
Почему стоит хостить подкасты на собственном Raspberry Pi

Подкасты позволяют делиться мнениями, знаниями и хобби. Хостинг у провайдера удобен, но ограничивает свободу: вы зависите от условий сервиса, политик контента и возможных плат. Самохостинг на Raspberry Pi даёт вам полный контроль над файлами, RSS и метаданными, а также над тем, кто и как получает доступ к вашему контенту.
Краткое сравнение вариантов:
- Платный хостинг: просто, но платно и зависит от третьей стороны.
- Бесплатная публикация в Spotify: удобно, но в закрытом экосистеме.
- Собственный сервер на Raspberry Pi: полный контроль, низкие постоянные расходы, требует минимальных навыков администрирования.
dir2cast — простая PHP-утилита, которая сканирует папку с аудиофайлами, читает встроенные метаданные (ID3) и формирует корректный RSS-фид для подписки в подкаст-клиентах (Apple Podcasts, Pocket Casts, Android-клиенты и т.д.).
Что нужно подготовить перед началом
Минимальные требования:
- Raspberry Pi с установленной ОС (рекомендуется Raspberry Pi OS или Debian-подобная система).
- Подключение к интернету с публичным IP или маршрутизацией через ваш роутер (порт 80/443). Если у вас динамический IP, используйте динамический DNS.
- Доменное имя (рекомендуется) для удобной подписки и настройки HTTPS.
- Установленный Apache (или другой веб-сервер) и PHP. dir2cast написан на PHP и требует php-xml.
- Немного свободного места на диске под MP3/аудио.
Дополнительно:
- Микрофон и ПО для записи/редактирования аудио.
- Редактор ID3-тегов (Windows/Mac/Linux/Android) для корректного заполнения метаданных.
Подготовка файлов подкаста и ID3-тегов
dir2cast строит RSS на основе информации, встроенной в аудиофайлы. Убедитесь, что в MP3-файлах прописаны как минимум:
- Title — заголовок эпизода.
- Artist/Author — автор/ведущий.
- Date — дата выпуска (год-месяц-день предпочтительно).
- Comment/Description — краткое описание выпуска.
- Embedded cover art — обложка эпизода (по желанию).
Пошагово:
- Используйте редактор тегов: Mp3tag (Windows), Kid3 (Linux/Windows/Mac), puddletag (Linux), TagScanner (Windows) или приложения на Android/iOS.
- Вставьте обложку (JPEG/PNG) в тег APIC.
- Сохраните изменения и проверьте файл в медиаплеере и/или с помощью getID3 (инструмент, который идёт с dir2cast).
Важно: если теги отсутствуют или содержат ошибки, RSS-канал может показывать неверную информацию.
Установка dir2cast на Raspberry Pi
Шаги ниже предполагают, что у вас уже есть работающий веб-сервер Apache и доступ по SSH или локально к командной строке Raspberry Pi.
- Настройка DNS и домена
- В панели регистратора домена создайте A‑запись: хост — @, значение — ваш публичный IP. TTL поставьте минимальным.
- Если у вас динамический IP — используйте сервис динамического DNS или клиент на роутере.
- Установите php-xml
Откройте терминал и выполните:
sudo apt update
sudo apt install php-xml- Создайте каталог для подкастов и настройте права
sudo mkdir -p /var/www/podcasts/
sudo chown www-data:www-data /var/www/podcasts/
sudo chmod 755 /var/www/podcasts/- Создайте конфигурацию Apache для вашего домена
cd /etc/apache2/sites-available/
sudo nano podcasts.confВставьте (замените muo.lol на ваш домен):
ServerName muo.lol
DocumentRoot /var/www/podcasts/
Сохраните (Ctrl+O, Enter) и выйдите (Ctrl+X).
Активируйте сайт и перезапустите Apache:
sudo a2ensite podcasts.conf
sudo service apache2 restart- Настройка HTTPS (рекомендуется)
Установите Certbot и получите сертификат Let’s Encrypt:
sudo apt install certbot python3-certbot-apache
sudo certbotВыберите ваш домен в списке, подтвердите, и Certbot автоматически настроит редирект с HTTP на HTTPS. После этого перезапустите Apache:
sudo service apache2 restart- Клонирование dir2cast и копирование файлов
Вернитесь в домашний каталог и клонируйте репозиторий:
cd
git clone https://github.com/ben-xo/dir2cast.git && cd dir2castСкопируйте необходимые файлы в /var/www/podcasts/:
sudo cp -r dir2cast.* test/ getID3/ /var/www/podcasts/Если файлы имеют другие имена в репозитории, проверьте структуру и скопируйте соответствующие каталоги (особенно getID3 и сам скрипт dir2cast.php).
Настройка dir2cast и структура каталогов
- Отредактируйте конфигурацию:
sudo nano /var/www/podcasts/dir2cast.iniВ блоке INFORMATION ABOUT YOUR PODCAST укажите:
- Название шоу (title).
- Copyright (если нужно).
- Контактный email (для iTunes/Apple Podcasts).
- Описание шоу.
- Маркировку для mature content (если применимо).
- Сделайте вывод dir2cast более удобным URL (опционально):
sudo mv /var/www/podcasts/dir2cast.php /var/www/podcasts/index.phpТеперь при обращении к корню сайта будет возвращаться RSS.
- Поддержка вложенных директорий
Если вы хотите организовать эпизоды по папкам (например, /var/www/podcasts/show1/episode1.mp3), скопируйте файл php2cast.ini в каждую подпапку и включите рекурсивный итератор в dir2cast.ini:
RECURSIVE_DIRECTORY_ITERATOR = true- Добавление новых эпизодов
Просто скопируйте MP3 в каталог подкаста:
sudo cp /path/to/podcast-file.mp3 /var/www/podcasts/dir2cast автоматически регенерирует XML-фид через несколько минут (ждёт завершения копирования больших файлов).
Проверка и тестирование
- Откройте https://ваш-домен/ в браузере — вы увидите XML-фид с элементами
- для каждого эпизода.
- Скопируйте URL фида и добавьте его в любой подкаст-клиент (Castro, Pocket Casts, Apple Podcasts, Overcast и т.д.).
- Проверьте воспроизведение эпизода и метаданные (название, описание, обложка).
Советы по валидации:
- Используйте валидатор RSS (например, feedvalidator.org) для проверки структуры XML.
- Если обложка не отображается, проверьте MIME-типы в Apache и наличие тега APIC в ID3.
Пошаговый плейбук: публикация нового эпизода
- Запишите и отредактируйте аудио в предпочитаемом DAW.
- Экспортируйте в MP3 с разумным битрейтом (например, 128–192 kbps для речевого контента).
- Заполните ID3-теги: Title, Artist, Date, Description; вставьте обложку (JPEG).
- Скопируйте файл на Raspberry Pi в /var/www/podcasts/ (scp или rsync).
- Подождите несколько минут и проверьте RSS-фид в браузере.
- Подпишитесь на фид в подкаст-клиенте для финальной проверки.
Критерии приёмки:
- Эпизод появился как
- в RSS.
- Метаданные соответствуют заполненным тегам.
- Обложка загружается и отображается в клиенке.
- Воспроизведение проходит без ошибок.
Частые проблемы и их решения
- RSS пустой или отсутствуют эпизоды
- Проверьте права доступа в /var/www/podcasts/ (www-data должен иметь доступ).
- Убедитесь, что MP3 действительно присутствует и теги корректны.
- Включите логирование PHP/Apache и посмотрите ошибки.
- Обложка не отображается
- Убедитесь, что обложка встроена в MP3 (APIC), а не просто лежит рядом как файл.
- Проверьте MIME-типы и заголовки (image/jpeg, image/png).
- Клиент не воспроизводит длинные файлы
- Некоторые клиенты плохо работают с очень большими файлами; попробуйте другой контейнер или битрейт.
- Проблемы с HTTPS
- Certbot может не выпустить сертификат, если домен не указывает на ваш сервер или порт 80 блокируется.
- Проверьте проброс портов на роутере и правила firewall (ufw/iptables).
Альтернативные подходы и масштабирование
Когда самохостинг перестаёт справляться с трафиком, рассмотрите:
- Загрузка медиаконтента на CDN (например, Cloudflare R2, S3 + CloudFront) и хранение только RSS на Raspberry Pi.
- Использование платного подкаст-хостинга с CDN для больших аудиторий.
- Настройка Nginx вместо Apache для лучшей производительности при высоких нагрузках.
Ментальная модель: держите контроль над метаданными и RSS, а сами большие двоичные файлы (MP3) можно масштабировать через CDN.
Контроль доступа и безопасность
- Настройте автоматическое обновление системы и PHP.
- Ограничьте права файлов: только www-data должен иметь права на чтение/запись каталога подкастов.
- Если нужно ограничить доступ к некоторым эпизодам — используйте защищённые URL или базовую аутентификацию Apache.
Важно: публичные подкасты лучше держать открытыми, а приватные эпизоды — за защитой.
Чек-листы по ролям
Роль: Ведущий/Создатель
- Записать и отредактировать эпизод
- Заполнить ID3-теги (Title, Description, Date)
- Вставить обложку
- Передать файл на сервер
Роль: Сисадмин
- Настроить Apache/HTTPS
- Установить php-xml
- Проверить права на каталоги
- Настроить бэкапы каталога /var/www/podcasts/
Решающее дерево: выбирать ли самохостинг
flowchart TD
A[Хочу хостить подкаст] --> B{У вас есть технические навыки?}
B -- Да --> C{Нужен полный контроль?}
B -- Нет --> D[Используйте платный хостинг]
C -- Да --> E[Самохостинг на Raspberry Pi]
C -- Нет --> F[Беру платный хостинг с возможностью экспорта]
E --> G{Ожидаемый трафик высокий?}
G -- Да --> H[Храните MP3 на CDN, RSS на Pi]
G -- Нет --> I[Полностью на Raspberry Pi]Часто задаваемые вопросы
Какой битрейт лучше для подкаста?
Для речевого контента подходит 64–128 kbps mono для экономии трафика и 128–192 kbps stereo для лучшего качества музыки.
Можно ли использовать другой веб-сервер вместо Apache?
Да. Nginx отлично подходит для высоких нагрузок и прост в конфигурации. Важно только, чтобы PHP и php-xml были установлены и настроены.
Как ускорить доставку эпизодов слушателям?
Разместите MP3 на CDN или облачном хранилище и оставьте RSS на вашем сервере. Это разгружает Raspberry Pi и улучшает скорость загрузки.
Что делать при динамическом IP у провайдера?
Используйте сервис динамического DNS или клиент обновления у регистратора, чтобы домен всегда указывал на текущий IP.
Нужно ли регистрироваться в Apple Podcasts?
Чтобы ваш подкаст появился в каталоге Apple Podcasts, нужно зарегистрировать RSS-фид в Apple Podcasts Connect. Для этого RSS должен содержать корректные теги, контактный email и изображение.
Итог и рекомендации
- Самохостинг подкастов на Raspberry Pi — экономичное и гибкое решение для авторов, желающих контролировать контент.
- dir2cast упрощает генерацию RSS на основе ID3-тегов; важна тщательная подготовка метаданных.
- Для масштабирования комбинируйте RSS на Pi и хранение MP3 через CDN.
Важно: следите за безопасностью сервера, регулярно создавайте резервные копии и проверьте работу фида в нескольких клиентах перед анонсом эпизода.
Ресурсы и инструменты
- dir2cast — https://github.com/ben-xo/dir2cast
- getID3 — библиотека для чтения метаданных аудиофайлов (в комплекте с dir2cast)
- Certbot — автоматизация получения сертификатов Let’s Encrypt
- Mp3tag, Kid3, puddletag — редакторы ID3
Краткое резюме ниже.
Похожие материалы
Как выйти из других учётных записей в Windows 11
Скрыть или показать расширения в Edge
Удалить аккаунт Twitter — навсегда и быстро
Быстрое переключение пользователей в Windows 11
Исправить WebDriver cannot be resolved to a type