Продолжаем говорить о том, как при наличии небольшого количества времени и навыков построить мультимедийный комбайн с дополнительными возможностями домашнего сервера на базе Kubuntu 20.04 и KODI, способного работать 24/7/365.
Первая часть публикации здесь:
KODI: собираем удобный и функциональный медиацентр для дома. Часть 1
Содержание:
Просмотр YouTube
Внешнее управление медиацентром и системой
Управление qBittorrent (веб-интерфейс и мобильное приложение для Android)
Управление KODI Android-устройством (Yatse, Kore)
Веб-интерфейс KODI и Elementum
Учет трафика медиацентра (vnStat + веб-интерфейс)
Резервное копирование KODI
1. Просмотр YouTube
Было бы странно иметь современный медиацентр без возможности просмотра роликов на самом популярном видеохостинге - YouTube. Для этого есть одноименное дополнение из официального репозитория. Дополнение отлично взаимодействует и синхронизирует историю, каналы, подписки и прочее. Все как у всех. Что-то особо описывать и обозревать не вижу смысла.
Единственное, с чем могут возникнуть проблемы с авторизацией на сервисе. Для этого необходимо в консоли приложений Google создать API-проект и получить идентификатор клиента, ключ API и cсекретный код клиента. Только имея эти данные вы сможете авторизовать дополнение. На просторах сети достаточное количество пошаговых инструкций. Например, одна из них на overclockers.ru.
Но есть куда более элегантный, удобный и быстрый способ проигрывания YouTube-роликов на медиацентре KODI – с помощью мобильного телефона и стандартного приложения YouTube в нем. Никаких дополнений и настроек в самом медиацентре, при этом, не требуется. К этому мы вернемся чуть позже, когда будем рассматривать управление медиацентром с помощью мобильного телефона.
Значительное преимущество просмотра YouTube на медиацентре KODI на Linux (в отличии от его коллеги на Android) - из коробки нет никакой рекламы. Это касается и дополнения и трансляции с телефона.
2. Внешнее управление медиацентром и системой
Построив такой «умный» медиацентр, было бы не лишним иметь возможность управлять всеми процессами не только с самого медиацентра и подключенного в него пульта ДУ или клавиатуры/мыши.
Возможность удаленного администрирования Ubuntu по SSH-протоколу реализовали, VNC-подключение есть. Все исправно работает как с Windows, так и c Android-устройств (если пропустили, смотрите разделы 2 и 5 предыдущей публикации).
2.1. Управление qBittorrent (веб-интерфейс и мобильное приложение на Android)
Не забываем, что медиацентр у нас, по совместительству, фоновая и круглосуточная торрент-качалка. И, чтобы не мешать домочадцам смотреть мультики или новости – можно спокойно управлять своими загрузками. Никто этого даже и не заметит.
Для этого в настройках qBittorrent включить использование веб-интерфейса, задав логин/пароль и порт. Я указываю 8081, если помните порт 8080 мы указывали в настройках KODI, он уже занят.
Теперь можем проверить доступность веб-интерфейса. Он полностью повторяет интерфейс самого приложения, работает без нареканий - рекомендую!
Помимо веб-интерфейса, использую и приложение на android-устройствах - qBittorrent Controller. Настроить подключение к вашему серверу не сложно. Вам понадобиться все тот же порт, логин и пароль.
2.2. Управление KODI Android-устройством (Yatse, Kore)
С управлением системой и торрент-качалкой разобрались, осталось самое главное – управление KODI. С этим у вашего медиацентра будет полный порядок.
Для Android-платформ на выбор есть два варианта:
Kore – официальное бесплатное приложение;
Yatse – стороннее платное ($3.56). Большинству будет достаточно и бесплатного функционала.
Оба варианта отлично справляются со своими задачами. Для подключения используется порт 8080 и логин/пароль, заданный при первоначальной настройке KODI. Оба приложения позволяют управлять просмотром IPTV и контента из библиотеки, дополнениями. Библиотека кэшируется и доступна без подключения к медиацентру, просматривать информацию о фильмах и сериалах можно за пределами домашней сети. Хочется отметить, что Yatse с этим справляется немного лучше. Например, моя библиотека, наполненная исключительно онлайн контентом из Elementum, отображается со всеми постерами и изображениями, Kore – отображает только локальные. С логотипами каналов из m3u8-плейлиста IPTV не справляется ни одно приложение, если логотипы локальные – отобразят оба.
Из отличительного функционала обоих приложений, хотелось бы выделить интеграцию с Android. На любом медиафайле из контекстного меню можно выбрать пункт «Воспроизведение на медиацентре KODI». Итого, любую фотографию, видео или аудиофайл, буквально в несколько кликов вы можете отправить на большой экран вашего телевизора. Еще более приятно - из приложения YouTube на своем телефоне/планшете вы можете нажать «Поделиться» и также выбрать «Воспроизведение на медиацентре KODI» - видеоролик мгновенно начнет воспроизведение на вашем телевизоре. По этой причине, кстати, я не использую дополнение YouTube, о котором недавно шла речь, хоть оно установлено и подключено к аккаунту. Гораздо удобнее и быстрее проигрывать ролики с телефона, чем из дополнения.
И ещё один не очевидный лайфхак в эпоху дистанционного обучения. С помощью выше описанной функции Yatse "поделиться", очень удобно транслировать детям разные задания, иллюстрации и прочее, присланные во всевозможные группы на родительский телефон.
Виджеты рабочего стола поддерживает только Yatse. Только он еще, кстати, умеет отправлять текст на медиацентр. Удобно при необходимости набора текста – на телефоне куда быстрее набрать, чем вводить с экранной клавиатуры, даже аэромышью.
Какое выбрать – решать вам. Лично я отдаю предпочтение Yatse. Больше возможностей даже в бесплатной версии, гибкие настройки и более привлекательный интерфейс.
Скриншоты Yatse
Скриншоты Kore
2.3. Веб-интерфейс KODI и Elementum
Также для удаленного управления у медиацентра есть и веб-интерфейс. Для доступа необходим все тот же порт (8080) и логин/пароль. Функционал довольно-таки ограниченный, но его вполне достаточно для просмотра и запуска контента из библиотеки и IPTV. Взаимодействие с дополнениями также поддержано. Внешний вид веб интерфейса можно изменить, доступно несколько вариантов из стандартного официального репозитория KODI.
Свой веб-интерфейс также имеет и дополнение Elementum. Позволяет просматривать текущее состояние торрентов, добавлять новые из файла или magnet-ссылки, а также удалять уже имеющиеся. Из него также можно напрямую запустить воспроизведение торрента на медиацентре.
Скриншоты веб интерфейсов KODI и Elementum
3. Учет трафика медиацентра (vnStat + веб-интерфейс)
Мониторинг объемов входящего/исходящего трафика для медиацентра, конечно, не совсем актуален, но на «длинной дистанции» - любопытная информация. Для реализации этой задачи существует множество программ, в том числе и для Ubuntu. Если оставить в этом списке лишь те, которые имеют в своем составе графический интерфейс (веб, например) и анализ данных – подходящего совсем немного, из-за своей масштабности, так как это будут полноценные приложения администрирования сети с огромным набором возможностей и, как следствие, высокой ресурсоемкостью. Нагружать медиацентр, ненужными в домашних условиях инструментами, не хотелось бы.
Для простого учета и отображения статистики отлично подойдет vnStat - легковесная программа для мониторинга сетевого трафика для операционной системы Linux с использованием интерфейса командной строки. Программа будет «следить» не за нашим KODI, а за сетевым интерфейсом. Это именно то, что нужно, так как помимо KODI, работает еще и qBittorrent.
Из коробки поставляется без веб-интерфейса, но благодаря энтузиастам, в сети есть несколько вариантов, отлично взаимодействующих с vnStat. Мне понравился вариант jsvnstat. На сайте разработчика также есть раздел «Demo», в котором можно пощупать, как это выглядит и работает.
jsvnstat разработан в далеком 2013 году и, к сожалению, с тех пор не обновлялся. В связи с этим, актуальную версию самого vnStat веб-интерфейс не поддерживает. Не проблема – нам будет достаточно возможностей и более старых версий.
Методом перебора нашел последнюю поддерживаемую версию – vnStat 1.14. В репозиториях Ubuntu ее уже нет. Можно скачать из репозитория моего GitHub.
Скачиваем и устанавливаем нужную версию
wget https://github.com/arboozov/kodi/raw/master/vnstat_1.14-1ubuntu2_amd64.deb
sudo dpkg -I vnstat_1.14-1ubuntu2_amd64.deb
Блокируем обновление пакета vnstat, дабы при обновлениях системы не получить самую свежую версию и остаться без работающего веб-интерфейса
sudo apt-mark hold vnstat
Создаем БД для нашего сетевого интерфейса (в моем случае это enp1s0)
vnstat -i -u enp1s0
Устанавливаем и запускаем веб-сервер
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install apache2 php5.6 php5.6-gd wget libapache2-mod-php5.6
sudo service apache2 restart
Теперь необходимо загрузить и разместить сам веб-интерфейс на нашем медиацентре. Можно использовать оригинальный вариант с сайта разработчика, либо немного измененный мой вариант. Глобальных правок я не вносил, но немного подправил внешний вид, цвета, убрал лишнее и скорректировал расчет суммарного объема входящего/исходящего трафика в ТБ.
Загружаем, например, мой вариант
wget https://github.com/arboozov/kodi/raw/master/jsvnstat.zip
Распаковываем архив по пути /var/www/html/stat/
unzip jsvnstat.zip -d /var/www/html/stat/
Задаем параметру $interface наш сетевой интерфейс, с которым будем работать, сохраняем изменения
mcedit /var/www/html/stat/settings.php
Настройка завершена, переходим по адресу http://IP-адрес_вашего_медиацентра/stat/. Если все сделано верно – отобразится наш веб-интерфейс с анализом трафика с момента установки пакета. БД по умолчанию будет обновляться автоматически каждые 5 минут.
4. Резервное копирование KODI
Медиацентр с KODI на борту, обросший дополнительными возможностями на базе Kubuntu 20.04, полностью настроен и готов к работе. На этом этапе стоит задуматься над резервным копированием и сохранением всего, что сделано, в этом первоначальном состоянии. Не будем недооценивать стабильность и надежность работы нашей операционной системы, но на случай выхода из строя аппаратной части, того же SSD-накопителя, например, хотелось бы иметь возможность быстро восстановить работу, причем в том же состоянии, с наименьшими усилиями. С нуля производить установку и настройку снова – сомнительное удовольствие.
Рекомендую иметь хотя бы одну копию (например, первоначального состояния) всей системы. Я сохранил образ диска с помощью Clonezilla. Имея такую копию, без особого труда, можно сказать в пару кликов, меняем накопитель и поднимаем Kubuntu со всеми настройками. Подробно описывать порядок снятия или установки образа не буду. Кто не сталкивался с работой Clonezilla – хорошая инструкция на русском языке со скриншотами на losst.ru.
Что касается резервирования самого KODI, то я выполняю копирование с помощью программного дополнения «Backup» из официального репозитория в автоматическом режиме 1 раз в неделю. Никакого участия от меня в этом не требуется, нужно лишь один раз все правильно настроить.
Так как у меня медиацентр работает и подключен к сети круглосуточно, работу планировщика настроил на еженедельное копирование всех данных KODI в понедельник в 4:00 с хранением двух копий в архиве. То есть, условно, на третей неделе, при резервном копировании будет удалена самая старая копия (с первой недели).
Но где же хранить резервные копии? Хранить «под собой» на том же диске – выстрел себе в ногу, на такой бэкап можно даже не тратить время. Сетевой каталог на другом домашнем хосте в моем случае не вариант, ночью все ПК выключены, днем тоже нет постоянного графика. Включать, например, в ночь каждого понедельника (по моему расписанию) домашний компьютер – сомнительная автоматизация. Хотелось бы не участвовать в этом процессе от слова совсем.
Dropbox
Дополнение поддерживает интеграцию с этим популярным файловым хостингом. Подключение не сложное. Необходимо через консоль в личном кабинете сервиса создать приложение для работы с API, предоставить ему необходимый доступ (чтение, запись и удаление), а полученные ключи указать дополнению и авторизоваться. Для авторизации Backup сгенерирует ссылку, перейдя по которой Dropbox сгенерирует код валидации для подтверждения. Работает все очень хорошо, за одним исключением. Авторизации «хватает» на одну сессию. После перезапуска KODI авторизоваться необходимо повторно. Без авторизации, понятное дело, резервная копия не будет загружена на хостинг. Как итог, процесс опять же требует нашего вмешательства – вариант нам не подходит.
Яндекс.Диск
Дополнение не поддерживает работу с этим облачным сервисом, но ведь никто нам не мешает примонтировать его в систему и указать его в настройках Backup, как локальную директорию, а о том, что она не локальная, знать дополнению не обязательно. Этот вариант нам подходит – приступаем к работе.
В разделе «Управление аккаунтом» Яндекс.Диска создаем пароль приложения по WebDAV API.
Для работы с WebDAV API в Ubuntu, устанавливаем в систему пакет davfs2
sudo apt-get install davfs2
Создаем каталог, куда будем монтировать наш Яндекс.Диск и назначаем права
sudo mkdir /mnt/yandex.disk
sudo chmod -R 0777 /mnt/yandex.disk
Добавляем аккаунт нашего Яндекса в davfs2, где:
логин – имя пользователя в сервисе Яндекс, без @домена
пароль – ID, созданный в паролях приложений аккаунта Яндекс.Диск
echo "https://webdav.yandex.ru логин пароль" >> /etc/davfs2/secrets
Монтируем в директорию /mnt/yandex.disk
sudo mount -t davfs https://webdav.yandex.ru /mnt/yandex.disk
Конфигурируем fstab, чтобы монтирование Яндекс.Диска в наш каталог происходило автоматически, при старте системы
sudo mcedit /etc/fstab
Вставить в конец файла
https://webdav.yandex.ru:443 /mnt/yandex.disk davfs user,rw,_netdev 0 0
Осталось лишь указать наш каталог в настройках дополнения Backup.
Не будем дожидаться ближайшей ночи понедельника и запустим создание резервной копии вручную. После года работы KODI, объем данных для резервирования у меня составляет 1.61 Гб, после архивации – 1.35 Гб. В верхнем правом углу будет выводиться информация о ходе выполнения резервной копии.
Google Drive
По аналогии можно настроить бэкап KODI и на сервис от Google. Отличие будет лишь в монтировании его в систему. Приступаем.
Нам понадобится пакет google-drive-ocamlfuse. Добавляем в систему репозиторий, обновляем список пакетов и устанавливаем
sudo add-apt-repository ppa:alessandro-strada/ppa
sudo apt-get update
sudo apt-get install google-drive-ocamlfuse
Создаем директорию, куда будем монтировать и назначаем права
sudo mkdir /mnt/google.drive
sudo chmod -R 0777 /mnt/google.drive
Теперь необходимо из-под пользователя (не sudo), авторизованного в системе из консоли выполнить команду
google-drive-ocamlfuse /mnt/google.drive
Вы будете перенаправлены в браузер для авторизации. По ее завершении Google у вас спросит разрешить ли KODI управлять вашим диском – подтверждаем.
Готово, можно перейти в директорию /mnt/google.drive и увидеть там свои файлы в облаке.
Как и в случае с Яндекс.Диском, Google Drive после перезапуска системы автоматически не смонтирует ваш диск. Настроим автомонтирование самостоятельно.
Создаем скрипт
mcedit /usr/bin/gdfuse
Вставляем содержимое
#!/bin/bash
google-drive-ocamlfuse -label $1 $*
exit 0
Назначаем права на выполнение и копируем в root
sudo chmod +x /usr/bin/gdfuse
sudo cp -r /home/имя_пользователя/.gdfuse /root/
Осталось лишь сконфигурировать fstab
sudo mcedit /etc/fstab
Вставляем в конец файла
gdfuse#default /mnt/google.drive fuse allow_other 0 0
Теперь ваш облачный диск всегда будет монтироваться в систему автоматически.
В завершении темы о резервном копировании KODI, хочется добавить, что, помимо стандартных данных для резервирования, можно добавить и свой каталог. С единственным ограничением – каталог должен быть по пути /home/имя_пользователя/.kodi/. Например, у меня там находится каталог wiki с какими-то моими заметками, скриптами и настройками. Для этого в настройках дополнения Backup в «Типы файлов» сменить режим с «Simple» на «Advanced» и добавить нужный каталог – он теперь также будет добавлен в архив резервной копии.
Таким образом, при наличии небольшого количества времени и навыков, получаем мультимедийный комбайн с дополнительными возможностями домашнего сервера и множеством комфортных способов управления, способного работать 24/7/365, аналога которому я пока не нашел, возможно лишь по тому, что и не искал – он целиком и полностью устраивает меня и моих домочадцев.
Продолжение:
KODI: собираем удобный и функциональный медиацентр для дома. Часть 3. Ретро-игры
P.S. В планах на втором телевизоре также поднять KODI (вероятно на Raspberry Pi 3/4) и синхронизировать оба устройства с помощью MySQL. Публикация о проделанной работе в этом направлении обязательно будет.
Barabek
В итоге — ваши домашние (жена, девушка, мама, папа, дети...) используют медиацентр?
arboozof Автор
Да, без каких либо проблем. Всем все нравится, удобно, понятно и стабильно. Со SmartTV от Samsung куда больше было претензий :)
Meklon
Два ребенка и жена с удовольствием используют. Родители мои и жены тоже со своими медиатеками и связкой deluge + deluged у них на серверах домашних.