Как стать автором
Обновить

Telegram бот для управления торрент клиентом и интеграция с трекером

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров6.3K

Всем привет! Это вторая статья про мой небольшой проект Kinozal-Bot. Прошло полгода с момента первой публикации, с тех пор я забрасывал проект и возвращался к нему, добавляя новый функционал и исключая другой, ввиду ограничений Telegram для его реализации. В этой статье хочу рассказать про нововведения, а также кому вообще такое решение может быть полезно и какие задачи оно решает.

Изначальная идея заключалась в том, что бы не зависимо от моего нахождения, например, на работе или в дороге, у меня была возможно находить и загружать контент из торрент трекера Кинозал на свой домашний компьютер через телефон, а по приходу домой оставалось только включить телевизор, открыть приложение Plex и начать просмотр. Реализовать это получилось еще в первый месяц, где процесс интеграции (от загрузки торрент файла и самого контента до синхронизации с сервером Plex) происходит внутри одного интерфейса.

Схема использования
Схема использования

В моей повседневной жизни бот используется практически ежедневно, и чаще супругой, так как это удобно. Больше нет необходимости подходить к компьютеру (который чаще всего занят) и использовать разные интерфейсы по отдельности.

Лично для меня большую ценность представлять новостной канал Kinozal-News, где я в прямом смысле слова не пропускаю новинки Кино и узнаю о выходе новых сезонов знакомых сериалов. Посты генерируются автоматически на основе новых публикаций в торрент трекере Кинозал с фильтрацией по рейтингу (7.0+) и году выхода (2023+).

Пример поста на канале Kinozal-News
Пример поста на канале Kinozal-News

Каждый пост на канале содержит 🧲 Magnet-ссылку для загрузки контента в вашем торрент клиенте (переадресация происходит автоматически в торрент клиент по умолчанию, как на компьютере, так и на телефоне). По мимо этого, каждый пост содержит краткую информацию о раздаче, а также #хештеги по жанру для фильтрации контента на канале и кнопки с ссылками описания фильма или сериала в базах данных о кинематографе Кинопоиск и IMDb.

Удаленное управление

В интернете можно найти пару десятков приложений (хотя на ios их куда меньше) для удаленного управления торрент клиентами (например, qBittorrent Controller или Transmission Remote), я сам ими пользовался, но все они требует прямого доступ к компьютеру, т.е. ваше устройство (например, телефон) с которого вы хотите управлять должно находиться в одной сети с компьютером, или, необходимо настроить свой VPN-сервер. В случае с ботом от вас не требуется устанавливать отдельно клиентскую часть на каждое устройство, т.к. Telegram возможно использовать и через браузер, а все запросы идут через Telegram api, который в данной ситуации выступает шлюзом между клиентом и сервером.

Бот поддерживает работу с двумя клиентами: qBittorrent и Transmisson, управление которыми можно настроить и использовать независимо от настройки или работоспособности трекера.

Управление клиентом Transmission
Управление клиентом Transmission

Единый интерфейс

Все торрент трекеры имеют устаревший интерфейс (еще 2010-х годов) и речи о мобильной версии там даже не шло. Порой когда я куда-то уезжаю и хочу скачать что-то на телефон или планшет для просмотра в дороге, найти раздачу становится целым испытанием, т.к. для доступа к привычным трекерам необходим VPN, а с телефона пользоваться такими сайтами жутко неудобно. Используя бот, вы получаете простой и удобный интерфейс, где возможно искать раздачи используя привычные фильтры (по году выхода и разрешению) и выгружать торрент файлы сразу в Telegram.

Добавление торрентов на загрузку также возможно с помощью инфо hash или url-адреса торрент файла любого трекера. Для локальной загрузки контента на телефон, я рекомендую использовать LibreTorrent, который имеет открытый исходный код и загружает метаданные (как и сам контент) куда быстрее, того же uTorrent на Android.

Поиск по актеру

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

Список актеров и фильмография выбранного актера
Список актеров и фильмография выбранного актера

Получение дополнительной информации через TMDB

Далеко не вся информация может быть полезной, хотя многие давно привыкли использовать Кинопоиск, для некоторых не секрет, что большая часть информации о зарубежных фильмах и сериалах берется из The Movie Database. Для меня, самой ценной информацией является даты выхода сезонов и серий, вот как это выглядит:

Список сезонов и серий, а также даты выхода.
Список сезонов и серий, а также даты выхода.

В боте данный поиск реализован через TMDB api по IMDb id , который присутствует в каждой раздаче. Также, вы можете получить отдельную информацию о каждой серии, в том числе ее рейтинг и список приглашенных актеров.

Управление Plex

Так как конечным устройством для просмотра является телевизор на базе Android, на него необходимо установить клиентское приложение Plex и подключить его к вашему серверу, который запущен на компьютере. Вы можете как настроить автоматическую синхронизацию заданной секции (это должна быть директория, на которую нацелена загрузка в торрент клиенте по умолчанию), так и вручную через бота. По мимо этого, вы можете получить дополнительную информацию с сервера, такую как продолжительность серий, ее формат и разрешение, а также список последних просмотров (с временем остановки) и добавлений.

Из очевидных преимуществ подписки Plex Pass, это возможность загрузки вашего контента с сервера на локальное устройство, с возможностью просмотра без доступа к Интернету (чаще всего это телефон или планшет). Как альтернативное решение, второй торрент клиент я настроил на загрузку контента в отдельную директорию, которая в свою очередь настроена на синхронизацию с облачным хранилищем. Например, с помощью бота, я заранее могу поставить на загрузку выбранный фильм, а когда у меня появится стабильный доступ в Интернет, смогу начать просмотр онлайн с телефона (без ограничений, т.к. потоковая передача через приложение Plex без подписки очень часто прерывается) или загрузить этот файл себе на устройство. Возможно это и не идеальное решение, но пользуюсь я им уже давно.

Итог

Инструкцию по настройке, как и дополнительную информацию о проекте вы можете найти в исходном репозитории на GitHub. Я все еще вижу много возможностей для развития такого решения, но ввиду большого количество ограничений со стороны api, не все получается реализовать, оно и логично, т.к. Telegram это в первую очередь мессенджер. У меня есть пара backend проектов (требуют доработки, только начал освоение JavaScript), для реализации которых планирую сделать свой мобильный интерфейс, моя цель, интегрировать современный WebTorrent клиент и русскоязычные трекеры используя api для единого взаимодействия и управления через телефон. Если кому-то данная тема покажется интересной, буду рад помощи в реализации и совместной работе (вы можете написать мне на Habr).

Теги:
Хабы:
Всего голосов 4: ↑4 и ↓0+4
Комментарии7

Публикации

Истории

Ближайшие события

28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
2 – 18 декабря
Yandex DataLens Festival 2024
МоскваОнлайн
11 – 13 декабря
Международная конференция по AI/ML «AI Journey»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань