Pull to refresh

Comments 91

Плюсанул со всей силы :)
Я некоторое время уже подумываю над реализацией подобного, но только для iOS и на Objective-C. По форматам торрент файлов, протоколам информации набрал, глянул, но очень скудная. Спасибо Вам за ссылки дополнительные.

Теперь вот задумался, есть ли смысл нечто подобное, но в виде либы реализовывать для iOS или нет.
В Cydia есть приложение TorPlayer, оно умеет фильмы с торрентов проигрывать, но со скудным функционалом.
А есть ли под винду? или аналоги под винду?
Есть многократно упомянутый LiveDC.

Если только для фильмов, то, как пишут в комментариях это:
TorrentStream

И, вероятно, uTorrent и Vuze.
Вообще я о консольных приложениях говорил…
Плюсую. Впервые просмотр недокаченых фильмов увидел в VLC 7 лет назад — очень крутая фича. Нравилось то что можно окрыть недокачеый файл, тогда как другие плееры говорили что вай битый и просто отказывались его проигрывать. Но чтобы достать фйл из архива не скачевая весь архив — это просто счастье! Спасибо за такую хорошую прогу!
Спасибо)

Да, я тоже пользовался VLC для этих целей. Проблема была [есть] в том, что когда происходит небольшая аномалия и скорость скачивания падает, а VLC доходит до части, которую еще не скачал, он падает. А при повторном запуске — перемотка практически не работает.
Хотел бы поддержать ваше начинание на MacOSX простенькой гуйкой =)
Всегда рад, пишите в личку :-)
А бинарник консольного варианта сможете выложить?
Ух ты! Прямо то, что нужно для собственного «дропбокса»
Не планируете отдельную ветку в этом ключе?
Битторрент протокол не предназначен для подобных финтов. То, что на нем получилось подобное сделать — не иначе, как чудо. Спасибо Erty_Hackward за веру в то, что оно может работать и за идею. Я бы сказал, что для этого стоит создать свой протокол.
Вообще говоря utorrent на виндовозе некоторое время такое вытворяет. И, если не ошибаюсь, vuse.
В uTorrent я такого не нашел. Vuze, насколько я понял, не умеет при этом проматывать на произвольный участок. И опять же архивы)

А вообще под виндами есть прекрасная программа
Неужели где то ещё есть такие дохлы интернет каналы что фильмы надо качать часами? А если ваш интернет канал позволяет смотреть фильм во время скачивания — зачем его вообще скачивать? он-лайн ресурсов фильмовых навалом, в том числе и легальных. Объясните мне пожалуйста — в упор не понимаю цели.
а если вы хотите посмотреть с 30 минуты? И да, такие каналы есть… у меня сейчас около мегабита.
Т.е. у вас тонкий канал и он-лайн видео-сайты с выбором качества, исходя из толщины канала вам не подходят, а тянуть с торрента и постоянно ждать догрузки — вас устраивает?
Нередко бывает достаточно развитая домашняя сеть с тонким каналом.
Например, 10 тыс. пользователей на 100мбит («домашние») и интернет, скажем, 4мбита.
И здесь торрент просто рулит! Переключение с «внешних» (интернет) сидов на локальных (а из 10 тыс. юзеров, как показывает практика, всегда найдётся по крайней мере два-три локальных сида) просто волшебно ускоряет загрузку.
Вы пишите отличную ахинею! Какое в пень «переключение с внешних на локальных»????? Естественно сиды ы вашей сети отдают быстрее, чем через интернет, только как это относится к сабжу?
Именно в точности к вопросу и относятся!
«онлайн вилдеосайты» с тонким каналом не тянут. А ждать догрузки с торрента — не в падлу, покуда эта самая догрузка идёт с весьма толстого канала. К тому же децентрализованного.
Ну да, а атк же быстро скачать с тех же локальных сидов и спокойно потом смотреть вам конечно не судьба, вы слишком сильно торопитесь и/или столь нетерпеливы?
у меня даже ещё вопрос есть, то, что тут многие за плюс приводят: несколько аудиодорог и сабы: а если они в виде отдельных файлов и лежат рядом в папочке — вы уже хрен их попереключаете — плеер их просто не увидит?
да и на сколько я понял — вы только качаете, ничего при этом не раздавая, что негативно влияет на рейтинг, да и вообще «не хорошо»
и ещё одно — если торрент только что был выложен и сидов пока мало — фиг вы что посмотрите на лету, а быстрее его будет нормально скачать, отсюда #1 в списке «фич»
если торрент только что был выложен и сидов пока мало — фиг вы что посмотрите на лету, а быстрее его будет нормально скачать
Зависит от того, что качаешь. Когда на thepiratebay выложили Декстера новую серию недавно, вполне можно уже было смотреть через несколько минут, ибо там пиров образовалось сразу около 20000.
Видите ли, тут вся разница между жамкнуть сразу «play» (причём, согласно объяснению автора, ЛЮБЫМ плейером, ибо нужная папка/файл уже смонтированы), либо тыкать какой-то левый клиент и ждать загрузки. И все альтернативные «аудиодороги» и прочее плейер увидит, ибо файлы такие есть! Только доступ чуть медленнее. Лично мне это огромный плюс (не я один сижу и смотрю за новинками. Супруга далеко не гуру в разных «монтированиях» и «плейерах». Потому здесь отдача нужного куска контента on-demand — просто must-have.
А потом уже — пусть висит, другие скачивают. Я УЖЕ посмотрел, и мне не жалко (у меня средний уровень раздачи в клиенте — 80 и выше. Т.е. отдал в 80 раз больше, чем скаяал).
Насчёт «торрент только что выложен» — тут да. Но до сих пор никогда не возникало проблемы по поводу «посмотреть сегодня что-нибудь другое».
Читаю вас и пазл не сходится:
1. Откуда «файлы такие есть» клиент будет знать — какие файлы надо сразу загрузить, а какие нет? Если допустим речь идёт о BD?
2. Супруге проще в линуховой консоле что то делать, недели в гуёвом торрент-клиенте добавить закачку?
3. Самое главное на мой взгляд: если вам «никогда не возникало проблемы по поводу «посмотреть сегодня что-нибудь другое»» — зачем тогда эти извращения, почему нельзя просто качать как все?

пс «отдал в 80 раз больше, чем скаяал» не верю. Я, вставая на раздачу в первом десятке, имея крайне неплохой канал на отдачу и реальную статику, редко вижу цифру выше 30, а чем больше раздача, тем ниже этот показатель.
Возможно, вам не очень много лет, и вы привыкли всё чётко делить на чёрное и белое. Но тут не так, есть и «серое».
1. Речь всё же о фильмах. С БД пока не сталкивались. Столкнёмся — будем решать персонально (хотя что-то мне подсказывает, что тот же myhomelib при тычке на конретный файл тоже «вздрочнёт» лежащего под FUSE torrent-клиента, и тот тоже возьмётся по-скорее скачать тыкнутый файл.
2. Супруге всяко проще в гуе. Но порой фантазия не срабатывает и мне проще «тыкнуть» (уже неважно где, в con, tui или gui самому. И начать смотреть. Чем скорее, тем лучше!)
3. То, что до сих пор не возникало — вовсе не говорит о том, что такой режим «комфортен». Каждый раз оказывалось в запасе что-то на посмотреть из серии «про запас». Но это «что-то» каждый раз одно. Гораздо комфортнее сразу ткнуть и начать смотреть желаемое, чем лезть «в загажник».
1. Да с базами данных тоже можно так работать. Клиент будет знать, что нужно скачать. У меня своя файловая система. Любой запрос к ней проходит через мою программу. Получив запрос на какой-либо блок, программа по-быстрому его качает, а затем говорит файловой системе, то что можно ответить на запрос.
2. Например, команда для встраивания в систему для открытия торрент файлов/магнет ссылок:
xterm -e qlivebittorrent %filename%
При этом появится вопрос куда качать и монтировать.
«отдал в 80 раз больше, чем скаяал» не верю.

Легко, если качаешь раз в неделю, а то и в месяц, а на раздачах стоишь 24/7. По крайней мере с плохим каналом и за провайдерским натом — 20 легко можно получить.
Найти онлайн фильм в 720 или 1080 практически невозможно, а ниже смотреть мне религия не позволяет )
Я для этих целей использую Torrent Stream.
Да фильмы в 720 или 1080 даже вконтакте есть, чего их искать? :)))))
Не все и не сразу, а я хочу сразу как он вышел и не ждать еще пару часов пока он скачается! )
Во-первых, ВК не поддерживает 1080p, во вторых — у фильмов с торрентов есть возможность выбора звуковой дорожки, языка субтитров, а иногда даже автора перевода. Даже если загрузить в ВК все нужные их комбинации, текст субтитров будет безжалостно пожат видеокодеком.
На онлайновых обычно и ассортимент, и качество хуже. Да и навигация по сериям для сериалов. Плюс различные озвучки и сабы. А по качеству даже если разрешение 1080p, то чаще всего видеоряд сильно пережат, битрейт даже DVD не соответствует.
Вопрос разумный.

1) Самообразование — цель №1.
2) Возможность открывания архивов и любыми другими данными.
3) Не устраивает функционал онлайн плееров. (несколько дорожек, субтитры — где они?)
4) Непонятки с качеством. Количество пикселов ширину иногда очень слабо характеризует качество. Если у jpg картинки знать ее разрешение — вам это о чем-нибудь скажет? В моем случае размер файла хорошо его характеризует.
1. Ну за это можно только хвалить, посмотрев профиль я вообще порадовался что у нас ещё есть такая молодёжь, к этому претензий не имею
2. Вот на скриншоте у вас исошка качается, вот объясните возможность её использования в недокачаном виде — на практике?
3. Да на многих ресурсах и оригинальные дорожки есть и сабы и выбор качества и запоминание серий (правда сейчас подумал что встречал это только для сериалов, но думаю фильмы не отстают, на том же ютубе уже есть сабы :)) и другие плюшки
4. А что — в торрент клиенте уже нельзя посмотреть размер загружаемого файла? Вот как раз размер файла так же может ничего не сказать — кривые руки решают этот вопрос на раз-два-три, так же как и с разрешением :)
2. Вот хочу я допустим потыкать LiveCD Rebecca Black Linux. Было бы здорово начать загружать виртуалу с ним задолго до того, как образ скачается целиком.
3. С ума сойти! Я пробовал смотреть, как обстоят дела с удобством в легальных онлайн кинотеатрах на примере ivi.ru и близко не заметил там подобной функциональности. Можно пример?
Я заранее уверен, что даже этим гипотетическим ресурсам с оригинальной звуковой дорожкой и субтитрами далеко по удобству до нормального десктопного плеера. Например, я хочу переключать дорожки звука/субтитров клавиатурными хоткеями и просматривать неинтересные сцены на скорости 130%.
Но на пример всё равно очень интересно посмотреть.
Честно говоря, когда вы мне писали о идее реализовать что-то подобное под Linux, мне казалось, что у вас ничего не получится (С нуля, без опыта). Рад что не стал разубеждать и вдвойне рад что ошибался. Желаю успехов в дальнейшем развитии.

Кстати, LiveDC стартует фильмы в считанные секунды а не минуты :P
Может связано с тем, что DC очень популярен в «локалках»?
Конечно, выше связанность сети, почти всегда чистые 100 Мбит. На самом деле и с торрентов скорость достаточная для запуска просмотра быстрее чем за минуту.
Проблема нахождения быстрых пиров. На это у меня и уходит время. Когда я качал через 127.0.0.1 у меня тоже был отклик на старт/перемотку ~0.5c
Ну так и надо указывать «за считанные секунды в условиях локалки» :) А то я уже чуть не полез устанавливать, а у нас локалки вообще нет, не уверен даже что два хоста с внешним IP могут связаться, а за NAT вообще весь трафик между хостами заблокирован после серии распространения вирусов.
Спасибо)

Мне уже ximaera написал про SIGQUIT, я даже уже исправил.

А SIGTSTP, видимо, обрабатывать не нужно. Я же могу предполагать, то что после приостановки процесса, если пользователь не хочет потерять данные, то он его продолжит?
Да, сигналы дело такое :).
SIGTERM чаще всего бывает при перезагрузке/остановке системы. Типа — э, мужики, закругляйтесь! Первое китайское предупреждение! (за ним через какое-то время следует SIGKILL — это уже для тех, кто не понял).
А Ctrl+C — да, это SIGINT. Почувствуйте разницу между TERMinate (завершить) и INTerrupt (прервать). Типа, э, там юзер Ctrl+C жамкнул. Будем чо делать, или послать его? (а может юзер — прыщавый юнец, и ничего кроме Ctrl+C не знает. Команду kill в консоли набрать не сможет, и уж тем более kill -9. Можно и проигнорить, если дело сильно важное)
А ничего, что я это уже сто лет юзаю в Vuze, Deluge и uTorrent? А тут опять какие-то велосипеды.
qBittorrent[мой любимый торрент клиент] умеет скачивать файлы последовательно. Можно открыть файл в плеере, но перемотка не будет работать/будет работать плохо. И уж точно нельзя смотреть с середины и открывать архивы.
uTorrent — то же самое.
Vuze, насколько я понимаю, то же самое.
Deluge — по указанной ссылке не понятно, как он умеет решать данную проблему. По-моему вы ошиблись.

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

uTorrent перемотку умеет, у него встроенный плеер для этих целей имеется (в платной версии точно, в бесплатной не помню). Vuze тоже умеет в платной версии.

Я не говорю, что эта штука бесполезна, просто идея совсем не нова.
То есть если пользователю после начала просмотра взбредёт в голову перемотать фильм на середину, то ему сначала нужно будет переключить на торент клиент, повысить приоритет для чанков возле середины файла, подождать, а потом уже перематывать в плеере?

Предложенное в топике решение сделает всё автомагически.
В Deluge да, увы. Надо как-то уговаривать разработчиков хотя бы открытых клиентов включить в их программы полноценные возможности для последовательной закачки (без плагинов, скрытых настроек и т.п.). Проблема не в коде, он давно готов. Проблема в косности мышления.

автомагически
Хорошая опечатка, возьму на заметку.
Ещё веселее в случае iso-образов. Там даже непонятно, какие именно чанки приоритизировать.

Перехват запросов на чтение из файловой системы решает эту проблему на раз. Замечательная идея.
Про deluge, видимо уже ответили, а платные версии utorrent и vuze мне не конкуренты. Мое решение абсолютно универсально. На всякий случай еще раз скажу — с помощью моей программы вы можете поставить на закачку какой-нибудь live-дистрибутив линукса, сразу же подключить его к виртуальной машине, и сразу же ее запустить.
Хочу уточнить. В начале и в конце скачивается фиксированное число блоков? А то бывают нехорошие файлы с несколькими аудио и видео-дорожками, у которых заголовки в достаточной мере размазаны по файлу. Отслеживается ли как-то, к каким именно данным хочет получить доступ плеер?
Вы не поняли. Я не зависим от форматов. Я перехватываю запросы плейера / программы, которая читает. И качаю те куски, которые нужны. В частности, в статье я упоминал:

… на канале 600КБ/с фильм весом 1.45G с внешней звуковой дорожкой и субтитрами проигрывается без лагов.


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

Ну так автор же во первых строках сообщает, что идею он позаимствовал. Вопрос в удобстве реализации.

> у него встроенный плеер для этих целей имеется

С одной стороны — любимый тёплый ламповый mplayer с плагинами и шорткатами плюс консольный torrent-клиент, предоставляющий перемотку. С другой стороны — [какой-то] встроенный плеер в платной версии torrent-клиента. Что вы выберете?
Да я сам VLC юзаю давно для этого дела. И плагин самописный к Vuze.
> «плагин самописный к Vuze» [1]
> «А тут опять какие-то велосипеды» [2]

:-)
Мне можно, я же статью о нём не писал :)
Кстати, я очень долго пытался продвигать подобную функциональность в различных торрент-клиентах (отключение медленных пиров, последовательная закачка, игнорирование флага private). Зачастую разработчики относятся к таким вещам крайне негативно, так что я бросил это неблагодарное занятие.

В feedback к uTorrent вообще забанили за одно предложение добавить поиск по DHT в клиент.
Ухты, какой приятный моноширинный шрифт. Подскажите название пожалуйста!
Terminus-18-bold. Программа terminology. Шрифт по-умолчанию)
Ещё один вопрос. Можно к этому делу прикрутить приоритеты подсетей? Вот у меня есть, допустим, подсеть провайдера, с которой у меня заведомо 100 МБит/с. Хотелось бы, чтобы подключение велось преимущественно к ним (чтобы разгрузить канал до инета).
Специфичная задача.

Я никак не связан соединениями. Вопрос к используемой библиотеке libtorrent-rasterbar
Мне кажется для того, чтобы таковое сделать, надо править ее исходники.
ОК. Просто вот этой фичи очень не хватает и я её действительно нигде не видел.
запустил называется :)

$ qlivebittorrent -g
Waiting for metadata
fusermount: entry for /home/sergey/Загрузки/archlinux-2013.07.01-dual.iso not found in /etc/mtab
Sending information about (upload/download) sizes to tracker
fusermount: entry for /home/sergey/Загрузки/archlinux-2013.07.01-dual.iso not found in /etc/mtab

чяднт?

если прописать в как в примере
$ qlivebittorrent -t /home/sergey/Загрузки/archlinux-2013.07.01-dual.iso.torrent -d /home/sergey/Загрузки -m /home/sergey/mount1 -r 200
то сообшений об ошибке не видно, качать начинает но всё равно не монтирует.
очень странно перезагрузился всё заработало :))
Вы не собрали драйвер для fuse (см. README.MD)
устанавливал yaourt -ом. оно само всё собирает по скрипту из aur. в котором я проверил есть строчка

gcc -g `pkg-config fuse --cflags --libs` driver.c -o qlivebittorrent-driver

я её специально даже обнёс паузами чтоб посмотреть
никаких ошибок или вообше сообшений во время её исполнения не появляется…
похоже сообшения fusermount просто являются как-бы проверочными что всё точно правильно отключилось.
у меня всё вообшемто заработало после того как я перезапускался о чём я писал выше, хотя я думаю это никак не связано просто я наверное гдето ошибся буковкой принаписании команды в консоли… всё вообщем то работает если запускать как в примере из самой программы.
а запускать -g была глупая затея ведь сообственно об этом и первая часть статьи — оно естевственно недопилено…
fusermount выводит хрень, это нормально. Это он пытается, на всякий случай, отмонтировать еще не подмонтированный каталог. А проблему с GUI я исправил (костыль подогнал). Файлы перезалиты.
Осталось пойти ещё дальше, чтобы была возможность, которую я давно ещё хотел (сейчас уже подостыл в этом направлении). Смысл её в том, чтобы для домашней фильмотеки не держать терабайты пространства, а держать пачку торрент файлов. В итоге виртуальная файловая система показывает файлы изнутри торрентов, а пользователь гуляет по этим файлам и запускает любой для просмотра. А система сама определяет какой из скачанного контента ей сидировать в пределах доступного пространства и частоты обращений к файлам или количеству сидов (сидировать-то тоже желательно подольше). Правда по хорошему это должны быть не просто файлы, а какой-нибудь плагин, например, к xbmc. Чтобы в медиатеку добавлялись не видео файлы, а торренты от видеофайлов.
Прикольная идея, хотя вот торренты в медиатеку не очень хочется добавлять. Лучше, по-моему именно как ФС. А лично для меня дело даже не в терабайтах, а что они заканчиваются и надо решать, что удалять, а что оставить.
а возможно ли это использовать при обычном скачивании с интернета? тоесть не торенты.
Нет.

Я думал над тем, чтобы добавить другие протоколы, но пришел к выводу, что мне будет неизвестен ни один способ их использования.

Распространение любых образов дисков — обычно торренты тоже есть.
Распространение фильмов — единственный компьютер, с которого будет идти раздача — засудят.
Любые сервисы типа depositfiles и т.п. — недостаточно скорости + запрещено качать непоследовательно (вроде бы).
Нормальные облачные сервисы (яндекс, google, др.) — уже реализовано.

Может вы знаете другие способы?
использовать для онлайн игр. например wow. не скачивая все локации можно былобы прогулятся по начальным а оно бы кокрас в это время докачивало остальные… счас так уже делают некоторые онлайн игры. но они всеровно сначало скачивают гигов 10 и только потом позволяют играть. А ваш метод позволил бы скачать только то что нужно в данный момент…
вопшем я пытался скачать world of warcraft(сразу распакованую версию) и запустить его. даже на 30% оно не запускалось хотя пыталось :) незнаю возможно но проверяет хеши или ещё чё но упорно пытается качать последовательно… в итоге оно не дождавшись чтения просто вылетает с ошибкой.
тык вот оно пытается создать фаилы отчётов об ошибке в примонтированой директории, но она доступна только для чтения. тут его и клинит :)
очень хотелось бы директории доступные не только для чтения.
также почемуто в один прекрасный момент почему-то оно саморазмонтирует папку ...(было около 56% всё тогоже wow)
затем я решил его перезапустить нажал ctrl+c и оно выдало теже сообшения что были выше +
«Ошибка сегментирования (core dumped)»
а ещё
QXcbWindow: Unhandled client message: "_GTK_LOAD_ICONTHEMES"
в процессе работы…
>… а оно бы кокрас в это время докачивало остальные

Я три раза перечитал, прежде чем сумел понять, что имелось в виду «как раз»… >_<
а вы виделибы нашу учительницу по русскому…
Грамотность появляется не от учителя, грамотность появляется от чтения книг.
спасибо, а сколько конкретно нужно прочитать книг чтобы заменить с 6-го по 9-тый класс?
Думаю, у каждого это индивидуально. Что касается меня, то я читал постоянно. Забросил только с рождением ребёнка и появлением сторонних проектов, так что теперь читаю только в самолётах и на отдыхе.
у меня новое предложение сделайте поддержку магнет ссылок.
Поддержка магнет ссылок есть. Достаточно вместо *.torrent файла указать магнет ссылку, видимо, в кавычках.
гы получилось запустить warcraft 3 первую миссию скачав чуть более 400 мб… однако игра постоянно ругается на то что ей нехватает места… я думаю это следсвие того что директория доступна только для чтения…
UFO just landed and posted this here
А под OS X собирается? Какую версию FUSE в этом случае нужно использовать?
Появился альтернативный проект в виде только FUSE файловой системы, без специализированного клиента/интерфейса
https://github.com/johang/btfs
Очень популярный.
Затестил, хорошо работает. Из отличий:
1) Не остается скачанных файлов
2) Есть в официальных репозиториях
3) Не глючит (все можно отмонтировать в любой момент)
4) Непонятно что происходит (нет интерфейса)

Но мне мой нравится больше, все же таки он больше информации дает.
Забыли добавить, что btfs активно развивается, а у вас 3 года коммитов не было :)

Я вижу у btfs ключ
--keep -k keep files after unmount
Во время моих тестов он правда не сработал. Может потому что тестовый файл я не скачал целиком в процессе теста?

Получение информации о статусе подмонтированного торрента явно разрабам надо допилить… Правда гуй/отдельный интерфейс для этого не нужен, можно обойтись xattr, например.

А вообще в идеале всё-таки хочется видеть эту функциональность в составе полноценного торрент клиента. Или вот например чтоб была обвязка: после получения *.torrent файла он монтируется через btfs и потихоньку качается по мере возможности. А после того как скачивается целиком, отмонтируется от btfs и запихивается в <%мой любимый торрент клиент%> с указанием директории для скачивания, в которой уже всё есть. Чтоб удобно сидировать. Но это так, мечты.
Sign up to leave a comment.

Articles