Как скачивать только субтитры из видео используя 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("&gt;&gt;"), 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.

  1. Вставьте URL в текстовое поле субтитров Google и нажмите " Читать".

  2. Выберите язык, установив соответствующий флажок и нажмите " Перейти".

  3. Просмотрите папку назначения, которая была введена в текстовое поле субтитров SRT, чтобы найти файлы SRT.

Другие вопросы по тегам