2016-04-24

Автоматизация загрузки torrent-файлов из RSS-лент

LostFilm.tv - один из самых известных в Рунете коллективов, занимающихся переводом и озвучанием ТВ-шоу. Они выкладывают по несколько десятков серий в неделю, и из-за этого скачивать их в ручном режиме не слишком удобно, легко можно пропустить свежий выпуск любимого сериала. Для того чтобы не упустить ничего важного сайт предоставляет RSS-ленту - специальную страницу, на которой собраны все самые свежие серии. Именно с ней мы и будем работать.

Контент, предоставляемый этим ресурсом, я получаю через популярный торрент-клиент μTorrent. Поскольку именно он имеет четыре актуальных для меня фичи:

  • поддержка RSS-лент
  • поддержка аргументов командной строки
  • работа в режиме сервиса
  • наличие Web-интерфейса

Хотя нижеследующий текст можно отнести и к другим торрент-трекерам и/или BitTorrent-клиент, (аналогичным образом я настраивал qBitTorrent), универсальным его назвать нельзя, и в каждом конкретном случае требуется своя конфигурация.

link Сбор данных

Для загрузки сериалов нам потребуется собственно адрес RSS-ленты, предоставляемой LostFilm. А поскольку трекер блокирует доступ без авторизации, нам также потребуются ещё и cookies.

URL для RSS-ленты
LostFilm.tv - RSS LostFilm.tv - RSS

Зайдя на страницу трекера, можно легко заметить в верхней части текст "RSS" и получить необходимую нам ссылку:

    http://www.lostfilm.tv/rssdd.xml
  

К сожалению лента по данному адресу более недоступна. Но в этой статье я рассказываю о том, как всё-таки получить к ней доступ.

Я поднял собственное зеркало RSS-ленты по этому адресу:

    https://lostproxy.vaultvulp.tk/rss.xml
  
Cookies

Методом проб, ошибок и научного тыка, мне удалось выяснить, что для стабильной работы torrent-клиента достаточно двух ключей из всего набора cookies, используемых на сайте. Это uid и pass.

Получить необходимые значения нам поможет любой современный браузер, например Google Chrome

  1. Переходим на страницу сервиса LostFilm.tv.
  2. Авторизуемся со своим логином и паролем.
  3. Нажатием кнопки F12 запускаем Chrome Dev Tools.
  4. Переходим на вкладку Resources и выбираем в списке слева Cookies -> www.lostfilm.tv. Мы должны увидеть что-то аналогичное изображению внизу.
  5. Из правого списка копируем интересующие нас значения.
  6. Объединяем их в одну строку, разделяя символом ";":
Chrome Dev Tools Chrome Dev Tools
    uid=XXXXXXX;pass=YYYYYYYYYYYYY;
  
Сессия - usess

Кроме указанных выше cookies, нам потребуется ещё один параметр: usess. Он доступен в профиле вашего пользователя. На этой странице, вы увидите строку c пометкой "Моя сессия (для торрент-клиентов)":

    (usess=ZZZZZZZZZZZZZZZZZ)
  

Именно она нам и нужна. Добавляем её к имеющимся у нас cookies и получаем:

    uid=XXXXXXX;pass=YYYYYYYYYYYYY;usess=ZZZZZZZZZZZZZZZZZ
  

link Настройка μTorrent

Прежде всего нам нужно его скачать, установить и запустить.

Добавляем новую ленту
  • В меню File выбираем пункт Add RSS Feed...
  • Заполняем поле Feed URL. Указываем в нём адрес фида и cookies, собранные нами ранее. Формат следующий:
    http://www.lostfilm.tv/rssdd.xml:COOKIE:uid=XXXXXXX;pass=YYYYYYYYYYYYY;usess=ZZZZZZZZZZZZZZZZZ
  
  • Флаг Do not automatically download all items оставляем без изменений.
  • При желании можно указать Custom Alias.
Добавляем RSS Feed Добавляем RSS Feed
Добавляем правила загрузки

Так как на предыдущем этапе мы отказались от загрузки всех публикуемых на трекере сериалов, нам придётся настроить правила, согласно которым мы будем получать интересующие нас видеозаписи.

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

  1. Открываем меню Options -> RSS Downloader.
  2. Нажимаем кнопку Add в нижней части вкладки Favorites.
  3. Заполняем поля справа согласно примеру.
RSS Downloader RSS Downloader

Поскольку кнопка Help отправляет нас в никуда, опишу все параметры детально:

  • Filter - условие, которому должна удовлетворять запись из ленты. Можно указать несколько условий, разделив их символом |. Доступные wildcard:
    • * - несколько символов
    • ? - один символ
  • Not - условие, которому запись не должна удовлетворять. Доступные wildcard аналогичны Filter.
  • Save in - путь, по которому будут сохраняться новые серии. По умолчанию файлы загружаются в папку Мои документы\Загузки.
  • Feed - лента, для которой будет применяться фильтрация.
  • Quality - качество контента.
  • Episode number - номера эпизодов, которые нас интересуют.
  • Filter matches original name instead of decoded name - флаг отвечает за то, что фильтры будут применены до того, как парсер разобьёт запись из фида на составляющие элементы. Рекомендую поднимать эту галочку, так как из моего опыта фиды и фильтры с кириллицей в таком случае обрабатываются лучше.
  • Don't start downloads automatically - новые торрент-файлы будут добавлены в очередь, в статусе Stop.
  • Give download highest priority - торренты, добавленные с таким флагом, будут добавлены в начало очереди и загружены, даже если текущее количество активных загрузок превышает лимит, установленный в настройках приложения.
  • Smart ep. filter - μTorrent загрузит только первую версию эпизода, найденную в ленте. Работает только в случае, если заполнено поле Episode number.
  • Minimum interval - интервал, который должен пройти между срабатываниями фильтра. Кнопка Reset сбрасывает дату и время крайней загрузки торрента по текущему правилу.
  • Label for new torrents - метка, которая будет добавлена к скачанным торрентам.

Если говорить о конкретных значениях, приведённых на скриншоте, и используемых мною в связке с LostFilm.tv, то хочется выделить форматы фильтров: Filter я заполняю следующим образом: *(Название сериала)*. Использование такого формата позволяет сделать фильтр более точным, т.е. фильтр вида *The Walking Dead* включал бы не только сериал The Walking Dead, но и его spinoff Fear the Walking Dead. Фильтр Not у меня всегда содержит значение *Complete*Season*, для того чтобы исключить релизы содержащие весь сезон. Необходимости в них у меня нет, поскольку я и так последовательно загружаю все серии. В остальных полях ничего оригинального: качество (Quality) и папку для загрузки файлов (Save in) выбирайте согласно вашим личным предпочтениям.

Проверить валидность правила, можно по нажатию кнопки ?.

Тестирование правила Тестирование правила

Увидеть .torrent файлы, которые были автоматически загружены можно на вкладке History этого окна.

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

Всё! Теперь, как только в ленте появится новая серия интересного нам аудиовизуального произведения, μTorrent автоматически загрузит её на компьютер.

Для того что бы проверить работу механизма, можно в списке Feeds основного окна приложения выбрать добавленную нами ранее ленту, и в контекстное меню для неё выбрать строку Update Feed. Это действие вызовет принудительное обновление ленты, а также применение всех настроенных правил.

Обновляем ленту Обновляем ленту

Засим позвольте откланяться. Если у вас есть какие-то вопросы или нужны уточнения, оставляйте их в комментариях, постараюсь уделить им максимум своего внимания.