N8n и Torrent: Автоматизация работы с торрент-трекерами и загрузками
N8n — это инструмент с открытым исходным кодом для оркестрации рабочих процессов (workflow automation), который позволяет соединять различные приложения, сервисы и API без необходимости написания сложного кода. Понятие «N8n torrent» не является официальным продуктом или интеграцией, а описывает подход к автоматизации задач, связанных с торрент-трекерами, загрузкой и обработкой контента с помощью платформы N8n. Это включает в себя мониторинг RSS-лент трекеров, автоматическую загрузку торрентов в клиент (например, Transmission, qBittorrent), последующую обработку файлов (перемещение, переименование, уведомления) и интеграцию с медиа-серверами, такими как Plex или Jellyfin.
Архитектура и ключевые компоненты автоматизации торрент-потоков
Автоматизированный рабочий процесс в N8n для работы с торрентами обычно состоит из нескольких последовательных блоков (нод). Каждый блок выполняет конкретную функцию, передавая данные следующему.
- Триггер: Узел, который запускает весь рабочий процесс. Чаще всего это нода «Schedule» (расписание) для периодической проверки или нода «RSS Feed Read» для мониторинга обновлений на трекере.
- Обработка данных: Узлы для фильтрации и преобразования данных. Например, нода «IF» может отсеивать релизы по ключевым словам (качество, кодек, группа), а нода «Function» позволяет написать пользовательский JavaScript для сложной обработки названия.
- Взаимодействие с торрент-клиентом: Ноды для отправки .torrent файла или магнет-ссылки в клиент. Это может быть прямой HTTP-запрос к API клиента (например, qBittorrent) или использование специального модуля, если он существует.
- Взаимодействие с файловой системой и медиа-серверами: После завершения загрузки ноды могут переместить файлы в нужную папку, переименовать их согласно шаблону и отправить команду на обновление библиотеки Plex.
- Уведомления: Ноды для отправки оповещений о новых загрузках или ошибках через Telegram, Discord, Email и другие каналы.
- Медиа-серверы: Через HTTP Request можно отправить запрос на сканирование библиотеки Plex (
/library/sections/{ID}/refresh) или Jellyfin. - Уведомления: Встроенные ноды для Telegram, Discord, Slack, Pushover, Email позволяют мгновенно информировать о событиях.
- Облачные хранилища: Загруженные файлы можно автоматически копировать в Google Drive, Dropbox или на Seedbox через соответствующие ноды.
- Базы данных и списки: Ноды для PostgreSQL, SQLite позволяют вести журнал загруженного, чтобы избежать дублирования.
- Хранение учетных данных к API торрент-клиента и трекеров в защищенных переменных окружения N8n (не в самом workflow).
- Использование HTTPS для всех API-вызовов, особенно при доступе к клиенту извне локальной сети.
- Ограничение доступа к веб-интерфейсу N8n с помощью аутентификации и, желательно, обратного прокси (например, Nginx) с HTTPS.
- Осторожность при выполнении произвольных команд и скриптов в нодах «Execute Command».
- Schedule: Для запуска по времени.
- RSS Feed Read: Для чтения лент трекеров.
- IF / Switch: Для ветвления логики и фильтрации.
- Code (Function/Function Item): Для написания кастомной JavaScript логики парсинга.
- HTTP Request: Для взаимодействия с API торрент-клиентов (qBittorrent, Transmission) и других сервисов.
- Telegram / Discord: Для отправки уведомлений.
- Execute Command: Для запуска shell-скриптов пост-обработки.
Детальный разбор типового рабочего процесса (Workflow)
Рассмотрим поэтапно создание рабочего процесса для автоматической загрузки сериалов.
Этап 1: Мониторинг RSS-ленты
Нода «RSS Feed Read» настраивается на URL RSS-ленты торрент-трекера. Параметры могут включать фильтры по категориям. Нода выполняется по расписанию каждые 30 минут. Каждый новый элемент в RSS (представляющий собой торрент) передается дальше как JSON-объект, содержащий заголовок, ссылку, дату публикации.
Этап 2: Фильтрация контента
Это самый важный этап. Для фильтрации используется комбинация нод. Например, нода «IF» проверяет, содержит ли заголовок слова «1080p» И «WEB-DL» И НЕ содержит «TRASH». Для более сложного парсинга названий (например, извлечение номера сезона и серии) используется нода «Code» (Function), где пишется регулярное выражение.
| Критерий фильтрации | Пример значения | Цель |
|---|---|---|
| Качество видео | 2160p, 1080p, 720p | Отбор нужного разрешения |
| Источник | WEB-DL, Blu-Ray, HDTV | Отбор по источнику рипа |
| Кодек видео | x265, H.264, AV1 | Отбор по эффективному кодированию |
| Исключающие слова | TRASH, CAM, TS | Блокировка нежелательного контента |
Этап 3: Отправка в торрент-клиент
После успешной фильтрации из элемента RSS извлекается ссылка на .torrent файл или магнет-ссылка. Далее используется нода «HTTP Request» для вызова API торрент-клиента. Например, для qBittorrent API endpoint для добавления торрента — /api/v2/torrents/add. В теле запроса передаются параметры: ссылка, категория (например, «series»), теги, путь для сохранения.
Этап 4: Ожидание загрузки и постусловия
Этот этап сложнее, так требует отслеживания состояния загрузки. Можно создать отдельный, периодически запускаемый workflow, который через «HTTP Request» к API qBittorrent (/api/v2/torrents/info) получает список торрентов, фильтрует те, у которых статус «завершено», и затем для каждого выполняет действия: остановка торрента, перемещение файлов, отправка уведомления. Для перемещения файлов используется нода «Execute Command» (вызов rsync или mv) или «SFTP».
Интеграция со сторонними сервисами и API
N8n расширяет возможности за счет интеграции с сотнями сервисов.
Таблица сравнения: N8n vs. Готовые решения (Sonarr/Radarr)
| Критерий | N8n | Sonarr/Radarr |
|---|---|---|
| Цель | Универсальная автоматизация (торренты — частный случай) | Специализированное решение для загрузки ТВ/фильмов |
| Гибкость | Очень высокая. Можно настроить логику любой сложности, интегрировать с любым сервисом. | Ограничена рамками функционала программы. Интеграции предопределены. |
| Сложность настройки | Высокая. Требует понимания API, основ программирования и построения workflows. | Низкая. Интерфейс ориентирован на конечного пользователя, настройка производится в GUI. |
| Поддерживаемые источники | Любые, имеющие RSS или API (публичные, приватные трекеры, сайты). | Официально поддерживаемые индексаторы (Jackett расширяет список). |
| Управление загрузками | Через API клиента, требуется ручная настройка. | Встроенная глубокая интеграция с клиентами (пауза, приоритеты, история). | Обработка после загрузки | Полностью настраиваемая (переименование, вызов внешних скриптов, копирование). | Автоматизированная, но по строгим шаблонам. Расширяется пользовательскими скриптами. |
Вопросы безопасности и легальности
Использование N8n для автоматизации торрент-загрузок не изменяет правовой статус самих загрузок. Ответственность за содержание загружаемых файлов полностью лежит на пользователе. С технической точки зрения, необходимо обеспечить безопасность конфигурации:
Заключение
N8n представляет собой мощный и гибкий инструмент для создания сложных систем автоматизации торрент-загрузок, особенно в случаях, когда готовые решения типа Sonarr не подходят из-за специфики трекеров, нестандартных форматов контента или необходимости глубокой интеграции с уникальным стеком технологий пользователя. Несмотря на высокий порог входа и необходимость ручной настройки, он предоставляет практически неограниченные возможности для контроля над каждым этапом процесса: от мониторинга и фильтрации до загрузки, обработки файлов и уведомлений. Оптимальной стратегией может быть использование связки специализированных программ (Sonarr/Radarr) для основного контента и N8n для решения узкоспециализированных или экспериментальных задач автоматизации.
Ответы на часто задаваемые вопросы (FAQ)
Можно ли с помощью N8n скачивать торренты напрямую, без клиента?
Нет, N8n не является торрент-клиентом. Его задача — автоматизация. Он может только передать ссылку на торрент-файл или магнет-ссылку специализированной программе (qBittorrent, Transmission, Deluge), которая уже выполняет непосредственно загрузку контента из пиринговой сети.
Где можно развернуть N8n для такой автоматизации?
N8n можно установить на тот же сервер или ПК, где работает ваш торрент-клиент, будь то домашний NAS (Synology, QNAP), выделенный сервер, виртуальная машина или даже Raspberry Pi. Также поддерживается установка через Docker, что является наиболее удобным и предпочтительным способом, обеспечивающим изоляцию и простоту обновления.
Как N8n узнает, что загрузка завершена, чтобы начать обработку файлов?
Прямого «события» от клиента N8n может не получить. Реализуется поллинг (опрос). Создается отдельный рабочий процесс, который по расписанию (например, каждые 10 минут) опрашивает API торрент-клиента, получает список загрузок, находит те, у которых прогресс равен 100% и которые еще не были обработаны, и затем запускает для них сценарий пост-обработки. Для отметки обработанных можно использовать теги в клиенте или запись в простую базу данных.
Есть ли готовые шаблоны (templates) для N8n по работе с торрентами?
Официальная библиотека шаблонов N8n содержит некоторое количество примеров, связанных с RSS и уведомлениями, но специализированных, готовых к использованию шаблонов для популярных трекеров или клиентов крайне мало. Это связано с уникальностью API каждого трекера и клиента, а также индивидуальными предпочтениями в фильтрации. Чаще всего workflow приходится создавать и тонко настраивать самостоятельно.
Комментарии