Рейтинг@Mail.ru

Групповое скачивание субтитров с Youtube

На Youtube просто беда какая-то с групповыми batch операциями. Например скачать все загруженные субтитры ко всем видео нажатием одной кнопки нельзя. Придется изобретать велосипед.


Для начала вам понадобится плагин для Firefox под названием Youtube Captions Downloader. Этот плагин добавляет под каждым видео кнопку скачивания субтитров, если они есть. Два других плюсах плагина в том, что он автоматически генерирует имя файла равное названию видео, а также сохраняет субтитры в формате .srt. Встроенный же функционал Youtube мало того что требует нажатия дикого количества кнопок, чтобы добраться до редактирования субтитров, так еще и присваивает всем файлам одно и то же название captions. Ну и формат у Google конечно же свой, проприетарный, ни с чем несовместимый – .sbv. Зачем его вообще нужно было придумывать при наличии общепринятого формата субтитров .srt – непонятно.
Следующий проблема в том, что нам понадобится собрать все закаченные видео в один большой плейлист, но есть идиотское ограничение в 200 видео на один плейлист. Так что если на канале больше двух сотен видео, делайте несколько плейлистов.
Открываем плейлист, нажимаем на кнопку скачивания субтитров, сохраняем файл, нажимаем кнопку перехода на следующее видео по порядку. Повторяем процесс. В принципе, если у вас несколько десятков видео, то операцию для каждого видео можно проделать и вручную. Если же количество видео исчисляется сотнями
и тысячами, тут нужно придумывать какую-нибудь автоматизацию. К сожалению, iMacros для этого не подойдет, так как плагин Caption downloader открывает диалог запроса имени файла, а iMacros кнопки в таких диалогах нажимать не умеет. Поэтому скрипт будем писать на Autoit. Вот пример такого скрипта:

sleep (7000)
MouseClick("left",633,749,1)
sleep (2000)
MouseClick("left",541,632,1)
sleep (2000)
MouseClick("left",465,237,1)

Ждем 7 секунд, нажимаем по координатам кнопку сохранения, ждем 2 секунды пока откроется окно, нажимаем сохранить, ждем еще две секунды и нажимаем кнопку перехода на следующее видео. 7 секунд в начале нужно чтобы страница успела загрузиться. Скрипт можно скомпилировать в .exe файл и закольцевать его выполнение простым .bat файлом.

:1
1.exe
goto 1

Запустив файл и подстроив положения всех окон под эмулируемые скриптом нажатия мышки, субтитры начали скачиваться. Нетрудно подсчитать, что на выполнение операций для одного видео уходит около 11 секунд, значит все 200 видео в одном плейлисте обработаются примерно за 40 минут, после чего можно переходить к следующему плейлисту. Если субтитров у видео нет, скрипт ничего не скачает, но 11 секунд все же потратит. Совсем оставлять выполнение без присмотра не стоит, так как могут возникнуть проблемы с легким уползанием окна и перемещением кнопок по мере увеличения нумерации видео, а также невозможность сохранить файл если название видео содержит недопустимые в названиях файлов символы вроде : и ?.

Leave a Comment