Bootstrap

скрипт на python чтобы выгрузить субтитры из видео с youtube

скрипт на python чтобы выгрузить субтитры из видео с youtube

Для решения этой задачи будем использовать библиотеку youtube_transcript_api. Она позволяет получить субтитры с YouTube видео, в виде текста.

установим в своё окружение Python библиотеку youtube_transcript_api через pip


pip install youtube_transcript_api

теперь напишем скрипт, в любом редакторе кода назовём его script_subtitles.py. Допустим сделаем это в vim


vim script_subtitles.py

Параметр url нужного видео мы получим из списка sys.argv, с помощью библиотеки argparse:


Внимание пробелы и оступы в интерпретаторе Python имеет смысловое значение, это вам не php или js поэтому строго соблюдаем одинаковость отступов, как здесь. А вот и код самого скрипта:

Terminal:

try:
   from youtube_transcript_api import YouTubeTranscriptApi
   import sys
   import argparse

   def createParser ():
       parser = argparse.ArgumentParser()
       parser.add_argument ('-n', '--name','-u','--url')

       return parser


   if __name__ == '__main__':
       parser = createParser()
       namespace = parser.parse_args(sys.argv[1:])

       print ("Получаем титры из видео по адресу, {}!".format (namespace.name) )


       def get_subtitles(video_url):
           video_id = video_url.split("watch?v=")[1]
           #имя текстового файла с титрами будет включать id видео
           subtitles_file='titles_'+video_id+'.txt'
           transcript_list = YouTubeTranscriptApi.list_transcripts(video_id)
           transcript = transcript_list.find_transcript(['ru'])
           translated_transcript = transcript.fetch()

           with open(subtitles_file, 'w', encoding='utf-8') as f:
               for line in translated_transcript:
                   f.write(line['text'] + '\n')

           print('Всё получилось. Титры записаны в созданный файл: '+subtitles_file)

       get_subtitles(namespace.name)

#обернули всё try - except, чтобы выбросить исключение и понять в чём ошибка в случае таковой
except Exception as err:
   print('Ничего не получилось, ибо: '+str(err))

Так как необходимый адрес url мы будем добавлять через именованный параметр (-u,--url) прямо в командной строке при вызове срипта, то наша команда в итоге будет иметь примерно следующий вид:

python script_subtitles.py -u https://www.youtube.com/watch?v=YOUR_VIDEO_ID

Впишите нужный вам url и получите результат.

Копирование материалов разрешается только с указанием автора Roman Sakhno и индексируемой прямой ссылкой на сайт (http://itdid.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/sahroman.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/sahroman.

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как настроить свой компьютер

  2. Текстовая ссылка:

    Она выглядит вот так: Как настроить свой компьютер

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

крипто-донат, на развитие сайта itdid.ru:

В новом окне с терминалом itdid.ru, введите любую сумму: