суббота, 11 сентября 2010 г.

Автоматическое скачивание субтитров для сериалов

Ранее я уже писал о том, как можно автоматически скачивать субтитры для сериалов при помощи Subdownloader. И все бы хорошо, но вот только субтитры он берет с www.opensubtitles.org, чьи серверы в последнее время работают очень нестабильно. Поэтому, получив в очередной раз от Subdownloader'а сообщение об ошибке, я понял, что мне это уже начинает порядком надоедать и решил поискать какую-нибудь альтернативу в виде скрипта для скачивания с www.TVsubtitles.net. Как это часто бывает, ничего дельного мне найти не удалось, поэтому пришлось писать самому. :)

Получился небольшой Python'овский скрипт, который принимает через опции командной строки список интересующих вас языков и путь к дирректории(ям) и/или файлу(ам), для которых необходимо скачать субтитры, поэтому можно настроить его запуск в cron и навсегда забыть о том, что субтитры, как правило, не скачиваются вместе с торрент-файлами. :) Поскольку это было совсем несложно, я также добавил и поддержку www.opensubtitles.org, но по-умолчанию скрипт его не использует, по вышеописанным причинам.

Вообщем, если кому-то нужно, то скачать его можно тут.

7 комментариев:

sablog.ru комментирует...

Захотелось попробовать, но не получается:
root@ubuntuServ:/tmp# ./pysd.py -l "en" pp/
/tmp/pp/RobinHood.avi: This is not a TV show video file or it has non-standard file name.
/tmp/pp/The Ten Commandments.avi: This is not a TV show video file or it has non-standard file name.
/tmp/pp/UsaBit.com_alli-twelve-xvid.avi: This is not a TV show video file or it has non-standard file name.

Кстати, принцип поиска субтитров можете пояснить? Как я понял поиск идет по названию файла?

Анонимный комментирует...

Как должно выглядеть имя файла с серьялом чтобы ваш скрип мог его распознать? у меня при поптыке с качать субтитры выдаётся :
This is not a TV show video file or it has non-standard file name

Unknown комментирует...

Да, имя сериала, номер сезона и эпизода считываются из имени файла. Это единственный возможный способ соотнести его с информацией, доступной на TVsubtitles.net.

Файл должен иметь любое стандартное имя:
- Castle.2009.S02E21.HDTV.XviD-2HD.avi
- Scrubs - 2x06.avi
- The_Mentalist_s02e14_HDTV_RUS_[1001cinema.tv].avi
- Lie To Me - 2x19 - Pied Piper.HDTV.LOL.avi
- Leverage.s03e08.rus.LostFilm.TV.avi

sablog.ru комментирует...

Opensubtitles хорош тем, что позволяет искать по хешу, и по размеру.
Мне эта тема интересна, так как в будущем собирался прикрутить автоматический поиск субтитров на одном сайте, но раз затронули эту тему, то думаю ускорить этот процесс.
Сможете для меня немного модифицировать этот скрипт, что бы он возвращал только json массив ссылок на закачку субтитров, если ничего не найдено, то "Nothing found"?

Unknown комментирует...

> Opensubtitles хорош тем, что позволяет искать по хешу, и по размеру.
Да, но в то же время TVsubtitles.net работает гораздо стабильней, и на нем гораздо больше русских субтитров. Судя по моему опыту, если говорить именно о сериалах, то хэши тут особо не нужны, т. к. по всей сети гуляют файлы с абсолютно одинаковым хронометражем. Другое дело, что на Opensubtitles именно английские субтитры бывают немного качественнее.

> Мне эта тема интересна, так как в будущем собирался прикрутить автоматический поиск субтитров на одном сайте, но раз затронули эту тему, то думаю ускорить этот процесс.
Сможете для меня немного модифицировать этот скрипт, что бы он возвращал только json массив ссылок на закачку субтитров, если ничего не найдено, то "Nothing found"?

Не, мне это совсем не нужно, так что тут вы уж как-нибудь сами. :) Но если форкните проект на github, внесете в него изменения и потом сделаете pull request, то коммиты я приму.

mkevac комментирует...

Очень здорово. Спасибо. Неплохо бы еще добавить параметр -r (рекурсивно гулять по папкам).

mkevac комментирует...

Спасибо