- PVSM.RU - https://www.pvsm.ru -

Popcorn Time на русском

На Хабре не раз уже рассматривался Popcorn Time (тут [1], тут [2], тут [3] и тут [4]).
Но у этого проекта есть один небольшой недостаток. Фильмов в русской озвучке там нет. Я попробовал решить эту проблему.
Popcorn Time на русском

На самом деле всё это громко сказано, функционал реализован базово, прошу это воспринимать не более чем proof of concept. За пару вечеров накидал небольшой парсер одного достаточно популярного торрент трекера с выгрузкой данных в базу и далее выдачу в виде понятного для Popcorn Time API [5].

В техническом плане ничего интересного. nginx, Node.js, Express, MongoDB(Mongoose). Пожалуй самым интересным о чем можно рассказать является преобразование торрент файла в magnet ссылку [6], но даже это при использовании пакета bencode становится очень простым:

var metadata = bencode.decode(body),
    sha1 = crypto.createHash('sha1');
    sha1.update(bencode.encode(metadata.info));
film['hash'] = sha1.digest('hex');
film['magnet'] = 'magnet:?xt=urn:btih:' + film['hash'] + '&dn=' + metadata.info.name;

Всё это запушено и работает. Опробывать можно 2я способами.
1. Скачать собранный мной Popcorn Time. К сожалению только Linux 64 bit [7].
2. Скачать Popcorn Time с git [8], в коде сделать изменения (под спойлером ниже) и собрать проект как написано тут [8]

diff

diff --git a/src/app/lib/models/movie_collection.js b/src/app/lib/models/movie_collection.js
index bb73eaa..58f40e1 100644
--- a/src/app/lib/models/movie_collection.js
+++ b/src/app/lib/models/movie_collection.js
@@ -11,7 +11,7 @@
 			return {
 				torrents: App.Config.getProvider('movie'),
 				subtitle: App.Config.getProvider('subtitle'),
-				metadata: App.Trakt
+				metadata: null
 			};
 		}
 	});
diff --git a/src/app/settings.js b/src/app/settings.js
index 291c07c..06fd21e 100644
--- a/src/app/settings.js
+++ b/src/app/settings.js
@@ -66,8 +66,8 @@ Settings.deleteTmpOnClose = true;
 Settings.updateApiEndpoint = 'http://popcorntime.io/';
 /* TODO: Buy SSL for main domain + buy domain get-popcorn.re for fallback
 Settings.updateApiEndpointMirror = 'https://popcorntime.cc/'; */
-Settings.yifyApiEndpoint = 'http://yts.re/api/';
-Settings.yifyApiEndpointMirror = 'http://yts.im/api/';
+Settings.yifyApiEndpoint = 'http://yts.lafin.me/api/';
+Settings.yifyApiEndpointMirror = 'http://yts.lafin.me/api/';
 Settings.connectionCheckUrl = 'http://google.com/';
 
 // App Settings

Исходники backend части http://github.com/lafin/ru-yts [9]

На этом пожалуй всё. Хорошего просмотра.
Popcorn Time на русском
P.s надеюсь кто-нибудь продолжит идею :)

Автор: lafin

Источник [10]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/peer-to-peer/73378

Ссылки в тексте:

[1] тут: http://habrahabr.ru/post/215429/

[2] тут: http://habrahabr.ru/post/220093/

[3] тут: http://habrahabr.ru/post/215927/

[4] тут: http://habrahabr.ru/post/229677/

[5] API: https://yts.re/api

[6] magnet ссылку: https://ru.wikipedia.org/wiki/Magnet-%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B0

[7] Linux 64 bit: https://yadi.sk/d/9qpF0IezcRFyC

[8] git: https://git.popcorntime.io/stash/projects/PT/repos/popcorn-app/browse

[9] http://github.com/lafin/ru-yts: http://github.com/lafin/ru-yts

[10] Источник: http://habrahabr.ru/post/241551/