Как стать автором
Обновить

KODI: собираем удобный и функциональный медиацентр для дома. Часть 2

Время на прочтение12 мин
Количество просмотров63K

Продолжаем говорить о том, как при наличии небольшого количества времени и навыков построить мультимедийный комбайн с дополнительными возможностями домашнего сервера на базе Kubuntu 20.04 и KODI, способного работать 24/7/365.

Первая часть публикации

В публикации детально рассмотрена аппаратная платформа, какое использовано железо и периферия. Установлена ОС, проведены основные настройки сервера и медиацентра Kodi. Читать дальше →

Содержание:

  1. Просмотр YouTube

  2. Внешнее управление медиацентром и системой

    1. Управление qBittorrent (веб-интерфейс и мобильное приложение для Android)

    2. Управление KODI Android-устройством (Yatse, Kore)

    3. Веб-интерфейс KODI и Elementum

  3. Учет трафика медиацентра (vnStat + веб-интерфейс)

  4. Резервное копирование 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

Лучший пульт Kodi, удобное управление, потоковая передача и не только с 2011!

Yatse - это единственное приложение для управления Kodi, необходимое Вам для полного контроля над всеми Вашими устройствами. Оно не только простое, красивое и быстрое, оно также предоставляет Вам всё, что Вы всегда хотели для совершенствования использования Kodi, включая многие функции, о возможности применения которых Вы даже не думали.

Ежемесячные обновления, быстрая и эффективная поддержка предлагают больше функций и обеспечивают более высокий рейтинг, чем у многих конкурентов с 2011 года.

Уникальные фкн• Потоковая передача медиа Kodi, Plex и Emby на устройство Андроид, UPnP, AirPlay, Chromecast, Roku и Smart TV*
• Трансляция медиафайлов с телефона на Kodi, UPnP, AirPlay, Chromecast, Roku и Smart TV*
• Поддержка серверов Plex™ и Emby™ *
• Голосовые команды
• Поддержка Android Wear и Auto
• Оффлайн-медиа* для синхронизации медиафайлов Kodi, Plex и Emby с Вашим устройством для воспроизведения оффлайн или трансляций
• Проигрыватель аудио* с поддержкой воспроизведения «gapless»
• Виджеты для быстрого доступа к управлению, подробностям воспроизведения и др.
• Облачное хранилище* для резервного копирования и восстановления всех Ваших настроек, хостов и команд
• Неограниченные пользовательские команды для доступа к различным функциям Kodi
• Плагины AV-ресивера* для управления громкостью поддерживаемых ресиверов из Yatse

Другие функции:
• Современный и понятный интерфейс, оптимизированный для телефонов и планшетов
• Возможность настройки в соответствии с Вашими предпочтениями
• Расширения DashClock / Muzei
• Уведомления и управление на экране блокировки
• Быстрый поиск медиа с помощью сортировки, фильтрации и глобального поиска
• Детализация воспроизведения с выбором субтитров (включая загрузку и синхронизацию) видео и аудио
• Поддержка Wake on Lan (WOL) и опции управления питанием
• Плагины для СМС, вызовов, уведомлений, дистанционного запуска Kodi
• Отправка медиа из YouTube или браузера на Kodi
• Оптимизация скорости и энергопотребления даже на старых телефонах
• Поддержка тем*
• API управления Kodi и Yatse из других приложений Андроид
• Плагин Tasker

Помощь и поддержка:
• Официальный сайт: https://yatse.tv
• Установка и использование: https://yatse.tv/wiki
• FAQ: https://yatse.tv/faq

Бесплатная версия полностью функциональна и не содержит рекламы. Но некоторые дополнительные функции (помеченные *) требуют ключа разблокировки.

Примечание:
• Многие плагины и PVR не могут использоваться для потоковой передачи из-за ограничений Kodi
• Kodi не поддерживает перекодировку, поэтому медиафайлы должны быть совместимы с Вашим проигрывателем
• Это приложение позволяет управлять всеми версиями Kodi, включая последнюю альфа Leia | https://kodi.tv/
• Такие форки, как SPMC, OSMC, MrMC, Librelec, Openelec, полностью поддерживаются

Скриншоты Yatse
Таким не хитрым способом можно проиграть любой медиа-файл с вашего телефона на телевизоре. Это же работает и в приложении YouTube
Таким не хитрым способом можно проиграть любой медиа-файл с вашего телефона на телевизоре. Это же работает и в приложении YouTube
Скриншоты Kore

2.3. Веб-интерфейс KODI и Elementum

Также для удаленного управления у медиацентра есть и веб-интерфейс. Для доступа необходим все тот же порт (8080) и логин/пароль. Функционал довольно-таки ограниченный, но его вполне достаточно для просмотра и запуска контента из библиотеки и IPTV. Взаимодействие с дополнениями также поддержано. Внешний вид веб интерфейса можно изменить, доступно несколько вариантов из стандартного официального репозитория KODI. Из сторонних интерфейс очень нравится TeX - ссылка на GitHub и скриншоты.

Свой веб-интерфейс также имеет и дополнение 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, аналога которому я пока не нашел, возможно лишь по тому, что и не искал – он целиком и полностью устраивает меня и моих домочадцев.

Продолжение и дополнительные возможности – в других публикациях

К сожалению, объем одной публикации на хабре ограничен, потому всё, чем хотел бы поделиться никак не уместить в один пост. Разделил на несколько частей...
Часть 1. Аппаратная часть, подготовка ОС, базовая настройка сервера и Kodi
Часть 2. YouTube, qBittorrent, управление Yatse и Kore, учет трафика VnStat
Часть 3. Ретро-игры
Часть 4. Архив IPTV
Часть 5. Яндекс.Музыка
Часть 6. MariaDB и синхронизация медиатеки
Часть 7. Управление iOS-устройством
Часть 8. Telegram-бот для qBittorrent
Часть 9. Spotify
Часть 10. IVI и Netflix
Часть 11. Kodi+Plex

Теги:
Хабы:
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
Всего голосов 13: ↑13 и ↓0+13
Комментарии45

Публикации

Истории

Ближайшие события

One day offer от ВСК
Дата16 – 17 мая
Время09:00 – 18:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург