скрипт на python чтобы выгрузить субтитры из видео с youtube
Для решения этой задачи будем использовать библиотеку youtube_transcript_api. Она позволяет получить субтитры с YouTube видео, в виде текста.
установим в своё окружение Python библиотеку youtube_transcript_api через pip
теперь напишем скрипт, в любом редакторе кода назовём его script_subtitles.py. Допустим сделаем это в vim
Параметр 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 и получите результат.
-
Создано 17.06.2023 13:00:00
-
Roman Sakhno

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