Задача
Захотелось смотреть фильмы, скачиваемые через торренты, не дожидаясь окончания загрузки. И всего то надо найти 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/Проводнике всё запускалось автоматически.