DevOps, Linux, 2 git`a
  • Обо мне
  • Категории
  • Теги
  • Архив

Потоковое воспроизведение торрентов

Содержание

  • Задача
  • Решение
  • Peerflix

PirateBay

Задача

Захотелось смотреть фильмы, скачиваемые через торренты, не дожидаясь окончания загрузки. И всего то надо найти 1) торрент клиент, который умеет скачивать куски торрента последовательно, и 2) плеер, который умеет играть недокаченный фаил. Ситуация немного усугублялась тем, что всё это нужно было сделать на OS X.

Решение

Поиски привели к нескольким решениям. Распишу их в порядке удобства, по моему мнению.

  • В первых строках выдачи по запросу просмотра торрентов на лету все поисковики выдавали Ace Stream. Продукт только для Windows. Пропатченый vlc плеер + плагин для Хрома. При более детальном изучении вопроса всплыло много жалоб на плагин, который в формы на сайтах начинает бесконтрольно вставлять рекламу. Да и запуск под Мак был через очень большой геморрой.

  • Далее были найдены уже инструменты именно под OS X. Это два торрент клиента с возможностью последовательного скачивания торрентов:

qBittorrent выглядит ужасно, но работает нормально

Tribler выглядит чуть лучше, имеет встроенный плеер, но нестабильно работает

  • Уже хотел остановится в поисках на qBittorrent + свой плеер, но наткнулся на более элегантное решение, хоть и гиковское, но стабильное и простое. Это peerflix командлайновый торрент клиент с возможностью стриминга и последовательным скачиванием торрентов.

Peerflix

Peerflix клиент на Node.js. И устанавливается через npm. Npm на Мак легко поставить через brew. Затем надо установить саму программу npm install -g peerflix Использование очень простое, в командной строке необходимо запустить:

peerflix "magnet:?xt=urn:btih:ef330b39f4801d25b4245212e75a38634bfc856e" --vlc
или
peerflix /path/to/file.torrent --vlc

Начнется скачивание торрента, поднимется стриминговый сервер и запустится проигрывание фильма в vlc (при условии что он уже есть в системе). Можно опустить ключ запуска плеера и тогда можно будет вручную подключиться любым своим проигрывателем к потоку http://ваш.ип.ад.рес:8888/

Настраивается почти всё:

  -c, --connections  max connected peers                            [default: 100]
  -p, --port         change the http port                           [default: 8888]
  -i, --index        changed streamed file (index)
  -l, --list         list available files with corresponding index
  -t, --subtitles    load subtitles file
  -q, --quiet        be quiet
  -v, --vlc          autoplay in vlc*
  -s, --airplay      autoplay via AirPlay
  -m, --mplayer      autoplay in mplayer*
  -k, --mpv          autoplay in mpv*
  -o, --omx          autoplay in omx**
  -j, --jack         autoplay in omx** using the audio jack
  -f, --path         change buffer file path
  -b, --blocklist    use the specified blocklist
  -n, --no-quit      do not quit peerflix on vlc exit
  -a, --all          select all files in the torrent
  -r, --remove       remove files on exit
  -e, --peer         add peer by ip:port
  -x, --peer-port    set peer listening port
  --version          prints current version

Из полезного, ключ -a пригодится когда торрент содержит не один файл, а -f переназначит путь до места скачивания торрента на диске. Из минусов: нет регулировки скорости скачивания, но для меня это не минус. Ко всему прочему решение получилось мультиплатформенным (Mac, Windows, Linux в т.ч. и arm) и отлично подходит для организации домашнего медиасервера.

Можно пойти дальше и внести еще большей автоматизации. Чтоб при клике на magnet ссылку в браузере или торрент файл в Finder`e/Проводнике всё запускалось автоматически.

Комментарии
comments powered by Disqus

Опубликовано

окт 21, 2014

Категория

common

Теги

  • node.js 1
  • os x 1
  • peer 1
  • peerflix 1
  • stream 1
  • torrent 1
  • vlc 1

Контакты

Получать обновления

  • Creative Commons License DevOps, linux, 2 git`a. Дмитрий Леонов
  • Создано с помощью Pelican. Тема Elegant от Talha Mansoor. Перевод темы Дмитрий Леонов