/qbit-anime-organizer

Скрипт в автоматическом режиме перемещает скачанные сериалы в собственную папку

Primary LanguagePython

qBit Anime Organizer

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

Принцип работы

Данный скрипт рассчитан на использование вместе с торрент-клиентом qBittorrent. Он подойдёт только для тех торрентов, в которых серии находятся В ПАПКЕ и имеют вшитые субтитры и озвучку!

  1. После завершения загрузки qBittorrent вызывает скрипт, передавая хэш торрента в аргументах

  2. Скрипт убеждается, что загрузка точно завершена, и что торрент имеет одну из разрешенных категорий (global.qbit.allowed_categories в config.json)

  3. Если в папке с сериями есть незавершенные файлы (например, если вы во время загрузки передумали и сняли галочки с каких-либо файлов в торрент клиенте), скрипт их удаляет

  4. Если торрент содержит в себе файлы, скачанные с сервиса AniLibria и имеют характерный нейминг (т.е номер серии в квадратных скобках ([01] и т.п), название серий приводится в стандартный вид: Ijiranaide_Nagatoro-san_2nd_Attack_[01]_[AniLibria_TV]_[WEBRip_1080p_HEVC].mkv => Ijiranaide_Nagatoro-san_2nd_Attack 01 [WEBRip_1080p_HEVC].mkv.

    • Данный шаг необходим для правильного распознавания серий Plex медиасервером
  5. Если включено автоматическое перемещение серий (series.moving), скрипт действует по следующему алгоритму:

  • Если отключен ручной нейминг и при этом торрент-файл скачан с AniLibria:
    1. Убираем из названия папки с сериями всё лишнее и используем это в качестве названия папки сериала
    2. Если включён парсинг названий с AniLibria (api.enable_fetching), пытаемся достать при помощи API название сериала
  • Если включён ручной нейминг, в качестве названия папки сериала используется название ТОРРЕНТА.
  1. Если в названии ТОРРЕНТА указан сезон в формате [Sномер] (например: [S1], [S01] и т.д.), переименовываем папку с сериями в "Season номер" (для корректного распознавания сезона Plex медиасервером). Если нет, используем значение сезона по-умолчанию (series.moving.default_season)

  2. Перемещаем папку торрента в указанный путь (series.moving.destination)

    • Таким образом, получается идеальная структура файлов: /путь/к/папке/с/сериалами/Название Сериала/Season номер/Серия.mkv, которую подхватывает Plex медиасервер. Так как все процедуры происходят при помощи API qBittorrent'а, сохраняется возможность дальнейшей раздачи этих файлов.

Установка скрипта

Подготовка

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

  1. В веб-интерфейсе qBittorrent кликните правой кнопкой мышки по категории "Все" в левой части страницы и нажмите "Добавить категорию".
  2. Укажите название категории и путь сохранения

Установка

  • Убедитесь, что у вас установлен Python 3-й версии и модуль qbittorrent-api.
  1. Скачайте файлы qbit.py , config.json и поместите их в одну папку

    • Не забудьте добавить созданную вами категорию в конфигурационный файл (см. Настройка)
  2. Откройте настройки в веб-интерфейсе qBittorrent

  3. Перейдите во вкладку "Загрузки" и пролистайте до раздела "Запуск внешней программы"

  4. Отметьте галочкой "Запускать внешнюю программу по завершении торрента"

  5. Вставьте в поле команду /usr/bin/python3 /путь/к/скрипту/qbit.py "%I" (/usr/bin/python3 - путь к Python)

  6. Нажмите "Сохранить"

Настройка

см. Конфигурационный файл