суббота, 25 октября 2014 г.

Просмотр Торрент-ТВ в интерфейсе LiveTV XBMC, под Linux

Видео результата:

Преамбула

Всё время хотелось удобно смотреть ТВ (да, я смотрю ТВ) сразу в xbmc, в красивом интерфейсе с расписанием и пр. плюшками. IPTV мой провайдер не предоставляет, «тарелку» ставить как-то стрёмно, только ремонт сделали, тут опять кабель непонятно как в квартиру заводить. Качество видеопотока с внешнего usb тв тюнера для старого нетбука, выступающего в роли медиацентра, оставляет желать лучшего, да и ловит полтора канала. В общем, со всех сторон облом, долго думал я, пока не узнал о торрент-тв.

Собственно, в статье о том, как его смотреть в нативном интерфейсе xbmc для ТВ.

Коротко


  1. Ставим mono 3.4+, vlc, acestream-engine, xbmc 13+;
  2. Качаем P2pProxy (http://mytalks.ru/index.php?topic=5196);
  3. Запускаем acestream (acestream-engine --client-console);
  4. Запускаем P2pProxy (mono /path/P2pProxy_console.exe -u username@gmail.com -p password);
  5. Ставим плагин к XBMC (https://github.com/const586/xbmc-addon-p2pproxy);
  6. ...
  7. Profit!


Специально для тех, кому не хочется углубляться, я написал скрипт-установщик всего этого добра для ubuntu.

Просто выполните в терминале:

cd /tmp && wget http://alexstep.com/XBMC/p2pproxy/i.sh && chmod +x i.sh && sh i.sh

И следите за усановкой, периодически подтверждая действия. После успешного выполнения скрипта останется только настроить немного xbmc и добавить пару строк в автозагрузку.
Посмотреть код скрипта.

Теперь подробнее


Нам потребуются:
  • XBMC 13 Gotham — версия xbmc начиная с которой нормально работает PVR.
  • Аккаунт на torrent-tv.ru
  • AceStream (бывший Torrent Stream) — о нём уже упоминали на хабре, программкка для потокового просмотра торрентов, т.е. например фильм с рутрекера можно сразу (после небольшой буферизации) начинать смотреть не дожидаясь пока он полностью скачается.
  • VLC — медиаплатформа с открытым исходным кодом, для декодирования полученного видео.
  • Mono — кроссплатформенный .NET framework, нужен для запуска P2pProxy.
  • P2pProxy — сервер, преобразующий поток acestream в формат iptv.


В результате у нас получится следующая схема: XBMC с помощью PVR плагина обращается к серверу P2pProxy, который с помощью acestream берёт p2p видео-поток с torrent-tv и в сконвертированном виде(vlc) отдаёт нам на просмотр как IPTV. 

Установку буду описывать на примере ubuntu 14.04, думаю пользователи других дистрибутивов прекрасно смогут скорректировать под себя, в arch'е всё ставится ещё проще, т.к. все необходимые пакеты есть в AUR.

Видео установки

Кому интересно вот достаточно длинное видео процесса установки всего нижеперечисленного на виртуальной машине.
Содержание видео:


Подготовка

Обновим для начала систему:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

#так же нам пригодятся
sudo apt-get install wget unzip 


Установка xbmc
На момент написания статьи XBMC 13 Gotham недоступна в официальных репозиториях ubuntu 14.04, так что ставим из репозитория xbmc-team:

sudo add-apt-repository ppa:team-xbmc/ppa
sudo apt-get update
sudo apt-get install xbmc


Установка аддона torrent tv
Ставится из xbmc-репозитория seppius для проверки работоспособности связки acestream и xbmc.
Скачиваем архив для установки репозитория xbmc.
Регистриуемся на torrent-tv.ru.
Переходим в xbmc Система->Настройки->Дополнения->Установить из ZIP, выбираем скачанный архив repository.seppius.zip.
После успешной установки включаем Torrent-TV XBMC в разделе видеодополнения, указываем в настройках свой логин и пароль.

Установка acestream (пожалуй, самый сложный этап)
Если в archlinux достаточно набрать yaourt acestream, то в последней ubuntu всё не так просто, многие пакеты не поддерживаются. Я ставил по этой инструкции, привожу её тут с небольшими изменениями.

echo 'deb http://repo.acestream.org/ubuntu/ raring main' | sudo tee /etc/apt/sources.list.d/acestream.list
sudo wget -O - http://repo.acestream.org/keys/acestream.public.key | sudo apt-key add -
sudo apt-get update

Скачиваем архив с acestream-engine и всеми зависимостями (Зеркала 1,
23).
cd /tmp
wget http://alexstep.com/XBMC/AceStreamUbuntu_14.04.zip
unzip AceStreamUbuntu_14.04.zip
cd AceStream Ubuntu 14.04

Для 64-х разрядных систем:
cd 64b/ 
sudo dpkg -i acestream-engine-fix-Ubuntu_14.04.deb

Для 32-х разрядных систем:
cd 32b/ 
sudo dpkg -i acestream.deb

Возможно в терминале появится извещение о невозможности установки acestream-engine ввиду неустановленных пакетов: python-apsw и python-m2crypto, ставим:
sudo apt-get install python-apsw python-m2crypto


Ставим сначала все зависимости:
sudo dpkg -i *.deb 


И acestream-engine:

sudo apt-get install acestream-engine 

Запускаем в другом терминале и оставляем работать:

acestreamengine --client-console


Идём в xbmc Видео->Дополнения->Torrent TV и включаем какой-нибудь канал, ждём.
Ждём.
Ждём «картинку» и очень надеемся что она появится.

Сейчас главное убедиться в том, что acestream корректно работает, если этого не происходит, думаем что не так сделали на предыдущем этапе.

Установка mono
wget http://download.mono-project.com/sources/mono/mono-3.6.0.tar.bz2
tar -xvf mono-3.6.0.tar.bz2
cd mono-3.6.0/
./configure --prefix=/usr/local
make
sudo make install


Установка vlc
Тут всё просто нужная нам версия есть в официальных репозиториях:
sudo apt-get install vlc


Установка и запуск P2pProxy
Скачать программу можно отсюда.
Я положил её в /home/user/p2pproxy/.
Запускаем сервер командой mono /каталог/P2pProxy_console.exe -u email_аккаунта_на_torrent-tv -p пароль:

mono /home/user/p2pproxy/P2pProxy_console.exe -u mel11@mail.ru -p t0rshm0rs1tb0r

Логин и пароль достаточно указать единожды, они будут сохранены в ~/.config/P2pProxy/settings.xml и дальше можно поднимать сервер без параметров.

Идём по адресу http://127.0.0.1/help и видим что сервер работает.
Сейчас в бесплатной версии нужного нам функционала нет, пока активируем демо-режим http://127.0.0.1/demo.
После этого в списке http://127.0.0.1/help должны появится ссылки на модуль xbmc.pvr.

Собираем плагин для xbmc
Cтавим git, необходимые для сборки пакеты и копируем репозиторий
sudo apt-get install git build-essential libtool autotools-dev autoconf automake
git clone https://github.com/const586/xbmc-addon-p2pproxy
# переходим в каталог с исходниками
cd xbmc-addon-p2pproxy
sh autoge,sh
./configure
make dist-zip

Если ошибок не было, готовый к установке плагин лежит в текущем каталоге в zip архиве.

Переходим в xbmc Система->Настройки->Дополнения->Установить из ZIP.

Прописываем в автозагрузку
Тут один момент, — p2pproxy нужно запусть от юзера, не от рута, ну и acestream на всякий случай.
В /etc/rc.local добавляем следующие строки, перед «exit».
su -s /bin/sh - user -c "mono /home/user/p2pproxy/P2pProxy_console.exe -u mail@gmail.com -p my_password" 
sudo -u user --set-home acestreamengine --client-console


F.A.Q.

Ну грузится расписание, — в каталоге plugins программы p2pproxy удали файлы cache_36.xml, epg_36.xml, epg_36.zip — это кэш, скорее всего он «битый» и перезапустите p2pproxy.
Мало каналов, — нужен статус vip на торрент-тв 
Как изменить порт или имя dlna сервера, — в ~/.config/P2pProxy/settings.xml

Источник

Комментариев нет: