Skip to content

Простая CRM для хостинга .mp3 файлов подкастов и генерации RSS ленты

License

Notifications You must be signed in to change notification settings

idoziru/rockradio

Repository files navigation

rockradio v 1.1.1

Простая CRM для хостинга .mp3 файлов подкастов и генерации RSS ленты.

Что уже умеет

  • Генерация rss ленты для iTunes Podcast
  • Генерация rss ленты для Google Podcast
  • Можно добавлять подкасты и выпуски к ним, редактировать информацию
  • Хостинг .mp3 на прямую через nginx
  • Быстрый переезд с https://podster.fm/. В том числе, перенос всех предыдущих выпусков на новый хостинг.
  • Собирает информацию о заходах краулеров iTunes и Google
  • Собирает воронку прослушиваний (1, 5, 10, 20 минут)
  • Собирает статистику прослушиваний с возможностью фильтровать по датам и эпизодам
  • Виртуальные rss

demo доступ

Это доступ с правами на просмотр к моему настоящеум подкасту.

Интерфейс

Используется стандартная Django admin.

В планах на следующие версии

  • Генерация статического RSS, сейчас он динамический
  • Возможность автоматических сообщений в Twitter, Telegram и тд. о новых выпусках.
  • установочный sh файл "в 1 клик"

Собственные команды manage.py

downloadspodcast

Выкачивает все выпуски вашего подкаста с https://podster.fm и создает новый подкаст. Быстрый и простой способ переехать на собственный хостинг.

Пример

$ python manage.py downloadspodcast 2capitals https://podster.fm/rss.xml?pid=36066
  • 2capitals - это slug вашего подкаста на rockradio. Он используется для ссылки

scanmp3log

Парсит лог запросов mp3 файлов подкастов nginx и собирает статистику прослушиваний. Использует nginx log параметр bytes_out, для определения примерного времени прослушивания эпизода. Считает прослушивания больше 1, 5, 10 и 20 минут. Это позволяет понимать примерную воронку и качество эпизода. Для работы необходимо

  • настроить log_format и log для папки uploads в конфиге nginx. Пример настройки лежит в /cofigs/nginx_example. Строка 1 и 26.
  • настроить выполнение команды scanmp3log по крону. У меня стоит каждые 50 минут.
  • убедиться, что у юзера, владельца cron, достаточно прав для работы с log
  • команда поддерживает указание пути и имени до лога, по умолчанию использует logs/mp3_access.log

Виртуальные rss

Предположим, у вас есть всего два шаблона rss - itunes.rss и google.rss. itunes RSS - это самый популярный формат и требования к RSS подкастов. В проекте itunes.rss - это базовый RSS. Если человек обратится по адресу podcast-yandex.rss, то ему все равно откроется RSS feed, хотя такого шаблона yandex.rss нет. Вместо несуществующего шаблона, будет использован базовый itunes.rss, при этом, сбор статистики обращений краулеров все равно засчитает запрос к yandex.rss.

На чем работает

  • Ubuntu 16.04
  • Python 3.8 и выделенное окружение .pyenv
  • Python батарейки из req.txt
  • Django 2
  • NGINX, uWSGI, PostgreSQL 9.5, supervisor

Development и Production окружение

Settings

Для каждого окружения существует свой набор настроек. По-умолчанию проект запускается с production настройками. Чтобы перейти на локальный настройки, необходимо установить переменную окружения.

$ export ROCKRADIO_ENV=local

.env

В корне проекта вам необходимо создать файл .env, в котором хранятся секьрне настройки проекта (пароли, секретные ключи т д.). Пример файла можно взять с файла .env_example.

Поддержка и помощь

По всем вопросам, за помощью в установке\использовании пишите на idoziru@gmail.com. Другие мои контакты тут - http://dimafilatov.ru

About

Простая CRM для хостинга .mp3 файлов подкастов и генерации RSS ленты

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages