Пользователь
0,0
рейтинг
29 ноября 2013 в 12:22

Разработка → Смотрим сериалы с субтитрами в 2 клика


Я, как и большинство, смотрю много сериалов. И, чтобы не ждать перевода, смотрю в оригинале с субтитрами. Из-за этого скачивание серии иногда превращается в приключение. Мне захотелось оптимизировать этот процесс. Web-приложение я делать как-то не рискнул, поэтому встречайте series_list. Оно:
  • берёт релизы с eztv или piratebay;
  • берёт субтитры с addicted или уведомляет, если их ещё нет;
  • берёт обложки с imdb;
  • скачивает последовательно (можно начинать смотреть, когда ещё не всё скачалось);
  • имеет открытый исходный код.


Установка


Ubuntu


Для ubuntu достаточно добавить ppa и установить пакет:
sudo add-apt-repository ppa:nvbn-rm/ppa
sudo apt-get update
sudo apt-get install series-list

Другие дистрибутивы


Тут всё сложнее. Сначала нужно установить libtorrent, потом:
git clone https://github.com/nvbn/series_list.git
cd series_list
git checkout master
python setup.py install

Что внутри




Интерфейс сделан на PySide(Qt), скачивание и получение серий крутится в QThread.

На получение картинки и субтитров к одной серии надо сделать 4 http-запроса. Без использования какого-нибудь сoncurrency фреймворка это происходило очень долго, поэтому пришлось использовать gevent. Но он не захотел дружить с PySide, из-за этого пришлось городить 2 процесса.

Из-за того что один процесс не дружит с Qt, пришлось отказаться от QSettings и делать свою чудо-реализацию хранения настроек.

Провайдеры данных можно менять через настройки, но пока доступны только eztv, addicted и imdb. При желании можно написать свои и сделать pull request =)

Ссылки


github проекта;
ppa с проектом.
Яковлев Владимир @nvbn
карма
73,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Разработка

Комментарии (60)

  • +3
    Одна из самых частых ошибок — перевод сериалов или серий как series. Series — это ни разу не серия сериала. У вас окно — episode list.
    • +5
      В названии имеется ввиду не список серий, а список сериалов. У окна в заголовке просто название приложения.
      Но внутри перепутано =)
    • +5
      Почему это сериалы нельзя как series перевести?

      www.sho.com/sho/series
  • –13
    Судя по всему — за Вами уже выехали
  • +4
    Такое бы с Веб-мордой для исполнения на серваке.
    • 0
      дак есть же!
      • 0
        Это эта штука или другая?
        • 0
          как минимум есть soap4.me да и мой коммент ниже посмотрите
          • 0
            Уточню. Я хочу такую программу, как в топике, только вместо гуя веб-морда. Чтобы качать себе на сервак.
            • 0
              а зачем вам качать? К примеру, я свой проект делал именно для того, чтобы не качать. Хотя возможность скачать есть
              • +1
                Потому что мне так удобно, например.
                • 0
                  если интересно — могу прислать ссылку в личку. Написал об этом в комменте ниже
                  • 0
                    Если это то, что я хочу, а хочу я «такую программу, как в топике, только вместо гуя веб-морда. Чтобы качать себе на сервак», то буду весьма благодарен, мое мыло leo@bastilia.ru
                  • 0
                    Мне это интересно поделитесь в личке
              • +1
                Мало ли для чего, может инет медленный, может ещё что.
  • +2
    Как же я давно такое ждал. Самому написать всё руки не доходили. Спасибо!
  • 0
    Формат релизов можно настроить? Какие-то олдфаги выпускают эпизоды в XviD, это сбивает с толку при поиске.
    • 0
      Можно в поиске добавить «x264» или что-нибудь такое. Сейчас ещё хочу сделать фильтрацию для исключения не нужного / отображения только нужного, но пока не придумал как это нормально впилить в интерфейс =)
  • +1
    Поддержка нотабеноида планируется?
    • +2
      Да, планируется поддержка нотабенойда, opensubtitles и podnapisi.
  • +1
    я тут вздумал в очередой раз попробовать пересесть на nix когда выйдет Mint 16, а до тех пор сижу на win. отсюда вопрос: можно как-нибудь скомпилить под win?
    • +1
      Попробуйте поставить python 2.7, libtorrent, PySide и установить из setup.py.
      Если всё заработает, попробую собрать нормальный exe'шник.
    • 0
      Самое время пересесть! Mint 16 вышел уж пару недель как.
      • 0
        ну если быть честным, то это пока только RC — relies candidate
        и после перебора Unity/MATE/Gnome3/Xfce смог выдержать только на xfce
        а после допиливание внешнего вида до megazuz.livejournal.com/16279.html наступила сказка
        • 0
          Попробуйте Cinnamon.
          • 0
            Пробовал (забыл упомянуть в списке).
            Похож на Gnome 2 — но функционал обрезан как у Gnome 3.

            Xfce меня устроил по настраиваемости и наличию нужным мелких/приятных плагинов.

    • 0
      Ну… оно почти работает.

      Пришлось поставить libtorrent и gevent, остальное подтянулось само.
      Только при запуске происходит выхов subprocess.call(['mkdir', '-p', config.download_path]), его надо заменить на os.makedirs. Плюс у меня почему-то libtorrent.add_magnet_uri не понравился юникод второго параметра, так что передавать надо str(episode.magnet).
      Выглядит страшно, но качает =)
  • +3
    Я прошу прощения… А качать серию с любого источника, а потом использовать автоматический поиск сабов в BS-player слишком сложно? =)
    • +7
      В такие моменты резонно возникают ответы вроде «я и не думал, что в каком-то плеере это реализовано из коробки!».
    • 0
      Под linux? =)
      • 0
        Слова Уинстона Леонарда Спенсера Черчилля (1874— 1965).
        «Большевики сами создают себе трудности и потом их с блеском преодолевают.» =)

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

        Вы еще скажите, что у Вас нет виртуальной винды. =)

        Не реклама, но есть сайт @#рбофильм, на котором сабы выходят очень оперативно. После начала его использования качаю только уж очень редкие и специфические сериалы.
        • 0
          Вы еще скажите, что у Вас нет виртуальной винды. =)

          Нативное как-то приятней.

          @#рбофильм, на котором сабы выходят очень оперативно

          Чем-то он мне не понравился, уже не помню чем, надо будет ещё раз попробовать.
      • 0
        Wine? Если речь именно о BS-player.

        Если же нет, то в vlc media player можно автоматом сабы искать.
        • 0
          Wine? Если речь именно о BS-player.

          Нативное как-то приятней =)

          Если же нет, то в vlc media player можно автоматом сабы искать.

          У меня он как-то не сильно успешно ищет.
  • +1
    Вообще парсить эпизоды с eztv — плохо. Там иногда бывают проблемы с выходом серий. По-идее, надо парсить с нескольких источников. С аддиктед тоже проблема парсить — 15 даунлодов в сутки.

    Мы запустили похожую штуку под веб, со стримингом под ios и не только.
    Поскольку стримить сериалы в интернет малолегально, то делали для себя.
    Кому интересно — могу отправить ссылку в личку. Количество мест ограничено — всех тупо интернет канал не потянет.
    • 0
      >Вообще парсить эпизоды с eztv — плохо. Там иногда бывают проблемы с выходом серий. По-идее, надо парсить с нескольких источников.
      Да, надо будет ещё что-нибудь добавить.

      >аддиктед тоже проблема парсить — 15 даунлодов в сутки
      Не замечал, видать динамический ip спасает =) Но всё равно ещё будет opensubtitles и podnapisi.
      • 0
        прокси спасает отлично. Я раньше использовал пайретбей апи, пока он не поменялся. Сейчас беру с езтв. Однако некоторые серии выходят от других релизеров. Так что скорее всего вернусь к пайрет бэю
      • +1
        Да, надо будет ещё что-нибудь добавить.

        Посмотрите в сторону PublicHD, я недавно себе писал скрипт для добавления ссылок перехода на этот трекер и автоматического скачивания эпизода для myShows. Пока битых ссылок не было, релизы выходят без видимых задержек.
  • 0
    А вы не могли бы рассказать, по какому принципу происходит сопряжение видео и сабов? Просто поиск по названию?
    • 0
      Да, тупо по названию.
      • +1
        А скачивает он их автоматом? Или выдаёт список найденного для ручного выбора?

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

        И да, забыл спросить в исходном комментарии: как ведёт себя часть вашего приложения, ответственная за торренты? Скачивает видео и отключается, или ещё раздаёт его до достижения определённого уровня upload'а?
        Просто, скажем так, если ваше приложение не очень следует правилам хорошего тона для пользователей торрентов, то при достижении им определённого уровня популярности начнут страдать те ресурсы, которые оно использует в качестве источников видео. И, как следствие, пользователи этих ресурсов, в том числе те, что используют ваше приложение.
  • +1
    В Media Player Classic открываем фильм, нажимаем на клавиатуре D и выбираем субтитры.

    Субтитры берутся c www.opensubtitles.org/. Русскоязычных субтитров там мало, да и фильмы, подготовленные для рунета, не опознаются. Но для англязычных субтитров это — просто бомба.
  • 0
    Идея висела в воздухе и вы её реализовали. Спасибо!
  • 0
    А под OS X можно это собрать как-то? Питон запускается только от рута, много ошибок и в итоге непонятно, установилось оно или нет :)
    • 0
      Надо поставить libtorrent, PySide и установить через setup.py. Ну и запускаться желательно не от рута =)
      • 0
        Спасибо, попробую :)
  • 0
    Поставил у себя в elementary OS.
    Выглядит странно:

    image

    Наверное, это из-за отсутствия дефолтных убунтовских иконок в системе, но вообще не знаю.
  • 0
    Ввёл tbbt. Прога загрузилап полтора ядра, Кулер заревел. Результатов так и не дождался, пришлось процесс снимать принудительно. Ubuntu 12.04 amd64. Я один такой везучий?
    • 0
      Запустите в консоли и выложите вывод сюда, наверное что-то падает.
      • 0
        В консоли пусто.
        • 0
          Залил новую версию в ppa, баг вроде поправил.
          • 0
            Не помогло.
  • 0
    Возможно ли сделать установку более простой?
    • 0
      Под какую ос?
      • 0
        Под W7. Может быть, даже не установку проще, а инструкции поподробней. Я, честно говоря, не понимаю, что означает «git clone...» и т.д.
        • +3
          Если это такая шутка, то это круто!
        • 0
          А если нет, то автор писал инструкцию по установке на дистрибутив Линукса.
          • 0
            Вот оно что. Я просто под «Другими дистрибутивами» понял Windows. Тогда вопрос снят.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.