Используем Docker, AceStream & AceProxy для просмотра “Торрент ТВ” на смартфонах, телевизорах и etc

В статье будет описана установка, настройка и несколько способов просмотра видеопотока через трансляции p2p телевидения. Результатом выполнения этой инструкции будет “комбайн”, который позволит одновременный просмотр такого ТВ с разных устройств в высоком качестве.


AceStream – это протокол одноранговой мультимедийной потоковой передачи, построенный с использованием технологии BitTorrent, для трансляции и просмотра “тяжелых” видеопотоков.

AceProxy – прокси, который написан на Python + gevent и должен работать как на Linux, так и на Windows. Позволяет просматривать потоки Ace Stream или файлы BitTorrent через HTTP.

Docker — программное обеспечение для автоматизации развёртывания и управления приложениями в среде виртуализации на уровне операционной системы.


Установка Docker

Почему бы не установить весь этот “комбайн” на рабочую систему?

  1. Крайняя версия AceStream выпущена для ubuntu 16 (за окном уже 18.04);
  2. Избавимся от лишних проблем;
  3. С контейнером работать удобнее.

Установка Docker была описана ранеечитать тут.


Cначала получим чистую Ubuntu 16.04

docker pull ubuntu

Запустим контейнер, предварительно открыв нужный для работы AceProxy порт

docker run -d -p 8000:8000 --name tv --restart always ubuntu:16.04 tail -f /dev/null

Проверим, что контейнер успешно запустился

docker ps

Выхлоп

63d3fba11111        ubuntu:16.04                     "tail -f /dev/null"      10 seconds ago      Up 9 seconds        0.0.0.0:8000->8000/tcp   tv

Установка AceStream

Переходим в наш контейнер

docker exec -it tv /bin/bash

Обновим БД пакетов и  установим необходимые нам утилиты

apt update & apt install nano mc wget -y

Скачаем архив с AceStream и распакуем его

wget http://dl.acestream.org/linux/acestream_3.1.16_ubuntu_16.04_x86_64.tar.gz && tar zxvf acestream_3.1.16_ubuntu_16.04_x86_64.tar.gz && rm acestream_3.1.16_ubuntu_16.04_x86_64.tar.gz

Перенесем все в /opt/

mv acestream_3.1.16_ubuntu_16.04_x86_64/ /opt/acestream

Установим зависимости

apt-get install python python-setuptools python-m2crypto python-apsw python-pip -y
pip install greenlet gevent psutil

Готово.


Установка AceProxy

Установим необходимые утилиты

apt-get install python-gevent git python-psutil python-pkg-resources -y

Скопируем свежую версию AceProxy от Pepsik-Kiev.

cd /opt && git clone https://github.com/pepsik-kiev/HTTPAceProxy.git

Поправим конфиг

nano /opt/HTTPAceProxy/aceconfig.py

Нужно изменить две строчки

Было

acespawn = False
acecmd = "acestream/acestreamengine --client-console
 Стало

acespawn = True
acecmd = "/opt/acestream/acestreamengine --client-console

Запустим прокси

python /opt/HTTPAceProxy/acehttp.py

Примерный выхлоп

Ace Stream HTTP Proxy server on Python 2.7.12 starting .....
Ace Stream HTTP Proxy server IP: 172.17.0.8 autodetected
Ace Stream engine spawned with pid 26
Server started at 172.17.0.9:8000 Use <Ctrl-C> to stop

Основная часть уже сделана. Дело за малым – найти плейлист.

Этот момент я описывать не буду. Задача простая, если уметь в гуглпоиск.


Использование AceProxy

Итак плейлист вы нашли, а устройство с docker -ом на борту в вашей домашней сети имеет адрес 192.168.1.15. На устройстве воспроизведения адрес плейлиста будет таким:

http://addrsite.m3u?ip=192.168.1.15:8000

По мимо готовых плейлистов прокси умеет проигрывать acestream id

http://192.168.1.15:8000/pid/acestreamid/stream.mp4

Найти такие адреса можно в интернете например через https://acestreamsearch.com/.  Используя этот сайт можно даже создать свой плейлист, который должен выглядеть примерно так

#EXTM3U
#EXTINF:-1,Название1 (Категория)
http://192.168.1.15:8000/pid/xxxxxxxxxxxxxxxxxxxxxx/stream. mp4
#EXTINF:-1,Название2 (Категория)
http://192.168.1.15:8000/pid/yyyyyyyyyyyyyyyyyyyyyy/stream. mp4
#EXTINF:-1,Название3 (Категория)
http://192.168.1.15:8000/pid/zzzzzzzzzzzzzzzzzzzzzz/stream. mp4

где x,y,z – адреса трансляций формата acestream.
Пробел перед mp4 не нужен.


Постскриптум

Со временем каждый наверняка заметит, что если смотреть ТТВ долго и часто, то в домашней папке пользователя накопится достаточное количество файлов кэша, причем они могут занимать очень много места. Встроенный механизм удаления кэша где-то есть, но искать его я не стал.

Мой велосипед:

  • Открываем список заданий на хосте
crontab -e
  • Добавляем в конец файла
00 10,17,01 * * * docker exec tv bash -c "find /root/.ACEStream/.acestream_cache/live.* -delete"
01 10,17,01 * * * docker exec tv bash -c "find /root/.ACEStream/.acestream_cache/hls.* -delete"

Файлы кэша будут удаляться в 10, 17 и 1 ночи.

(Просмотров 309 )

nordweb

Привет, меня зовут Евгений. Этот сайт задуман в качестве моей записной книжки, к которой я буду время от времени обращаться, чтобы освежить память. Надеюсь, что мои заметки пригодятся и кому-нибудь из Вас.


Поделитесь записью в соц. сетях: