Как скачивать только субтитры из видео используя youtube-dl
Как я могу скачать субтитры из списка видео с помощью YouTube-DL? Мне нужен вариант для этого. Однако я не смог найти вариант для загрузки только субтитров
4 ответа
Есть вариант, четко упомянутый в документации:
Параметры субтитров:
--write-sub Write subtitle file
--write-auto-sub Write automatic subtitle file (YouTube only)
--all-subs Download all the available subtitles of the video
--list-subs List all available subtitles for the video
--sub-format FORMAT Subtitle format, accepts formats preference, for example: "srt" or "ass/srt/best"
--sub-lang LANGS Languages of the subtitles to download (optional) separated by commas, use IETF language tags like 'en,pt'
Так, например, чтобы перечислить все сабы для видео:
youtube-dl --list-subs https://www.youtube.com/watch?v=Ye8mB6VsUHw
Чтобы скачать все сабы, но не видео:
youtube-dl --all-subs --skip-download https://www.youtube.com/watch?v=Ye8mB6VsUHw
Или вы можете загрузить только один субтитр
youtube-dl --write-sub --sub-lang ru --skip-download URL
просто запустите следующую команду
youtube-dl --write-auto-sub --convert-subs=srt --skip-download URL
Например, вы загружаете https://www.youtube.com/watch?v=example . с заголовком "пример"--convert=srt
выведет в файл с именемexample.en.srt
гдеen
означает английскийes
для испанского и т. д.
В файле будет что-то вроде этого:
00:00:04.259 --> 00:00:05.259
>> I’m Elon Musk.
00:00:05.259 --> 00:00:06.669
>> What is your claim to fame?
00:00:06.669 --> 00:00:07.669
>> I’m the founder of
00:00:07.669 --> 00:00:08.669
Tesla.com.
НЕОБЯЗАТЕЛЬНО. Если вам нужно очистить текст, вы можете использовать Python, чтобы немного его очистить:
import re
bad_words = ['-->','</c>']
with open('example.en.vtt') as oldfile, open('newfile.txt', 'w') as newfile:
for line in oldfile:
if not any(bad_word in line for bad_word in bad_words):
newfile.write(line)
with open('newfile.txt') as result:
uniqlines = set(result.readlines())
with open('sub_out.txt', 'w') as rmdup:
mylst = map(lambda each: each.strip(">>"), uniqlines)
print(mylst)
rmdup.writelines(set(mylst))
Вывод файла newfile.txt:
I’m Elon Musk.
What is your claim to fame?
I’m the founder of
Tesla.com.
Другой простой способ загрузить субтитры с YouTube - это загрузить Google2SRT. Google2SRT - это бесплатная программа с открытым исходным кодом для Windows, Mac и Linux, которая может загружать, сохранять и конвертировать несколько субтитров из видео YouTube.
использование
Нажмите на ссылку, чтобы увидеть скриншоты шагов 1 и 2.
Вставьте URL в текстовое поле субтитров Google и нажмите " Читать".
Выберите язык, установив соответствующий флажок и нажмите " Перейти".
Просмотрите папку назначения, которая была введена в текстовое поле субтитров SRT, чтобы найти файлы SRT.