Как скачать субтитры с YouTube с помощью Python?

В наше время субтитры играют важную роль при просмотре видео на YouTube. Они помогают людям лучше понимать контент, предоставляют возможность перевода на другие языки и могут быть использованы для анализа данных и создания обучающих материалов. Но как же их скачать?

В этом руководстве мы рассмотрим, как можно скачать субтитры с YouTube с помощью Python.

Зачем скачивать субтитры?

Субтитры на YouTube могут быть полезны во многих ситуациях:

  • Доступность контента: Люди с нарушениями слуха могут использовать субтитры для понимания аудио контента.
  • Переводы: Возможность перевода субтитров на другие языки для более широкой аудитории.
  • Анализ данных: Вы можете анализировать содержание видео для различных целей, например, для исследования трендов.
  • Создание обучающих материалов: Преподаватели могут использовать субтитры для создания текстовых версий своих лекций.

Как работает YouTube API?

YouTube API предоставляет множество возможностей для получения данных о видео, каналах и плейлистах. Однако, стоит учитывать, что функционал API имеет свои ограничения и требования к аутентификации. Для доступа к субтитрам можно использовать специализированные библиотеки, такие как youtube-transcript-api.

Установка необходимых библиотек

pip и создание виртуального окружения

Для начала создадим виртуальное окружение для изоляции нашего проекта:

python -m venv myenv
source myenv/bin/activate  # Linux/Mac
myenv\Scripts\activate  # Windows

Установка библиотеки для работы с YouTube

Следующим шагом установим библиотеку youtube-transcript-api с помощью pip:

pip install youtube-transcript-api

Общая структура проекта

Для удобства работы создадим структуру директорий, подобную следующей:

my_project/
  ├── myenv/
  ├── main.py
  └── requirements.txt

Как скачать субтитры с помощью Python?

Импорт необходимых библиотек

Для начала импортируем необходимую библиотеку:

from youtube_transcript_api import YouTubeTranscriptApi

Функция для скачивания субтитров

Теперь создадим функцию для скачивания субтитров:

def download_subtitles(video_id: str) -> dict:
    """Скачивает субтитры для данного видео."""
    transcript = YouTubeTranscriptApi.get_transcript(video_id)
    return transcript

Использование функции

В основной части программы вызовем созданную функцию и выведем результат:

if __name__ == '__main__':
    video_id = 'YOUR_VIDEO_ID'
    subtitles = download_subtitles(video_id)
    print(subtitles)

Обработка ошибок

При скачивании субтитров могут возникнуть различные ошибки. Рассмотрим, как можно обработать исключения:

Исключения при скачивании

try:
    subtitles = download_subtitles(video_id)
except Exception as e:
    print(f'Ошибка: {e}')

Сохранение субтитров в файл

После успешного скачивания субтитров, их можно сохранить в файл.

Запись в формате JSON

Создадим функцию для сохранения субтитров в формате JSON:

import json

def save_subtitles_to_file(subtitles: list, filename: str) -> None:
    """Сохраняет субтитры в файл."""
    with open(filename, 'w', encoding='utf-8') as f:
        json.dump(subtitles, f, ensure_ascii=False, indent=4)

Пример сохранения

Сохраним скачанные субтитры в файл:

save_subtitles_to_file(subtitles, 'subtitles.json')

Заключение

В этой статье мы рассмотрели процесс скачивания субтитров с YouTube с помощью Python. Мы также обсудили, как можно обработать исключения и сохранить субтитры в файл. Возможными улучшениями проекта могут быть добавление интерфейса пользователя, расширение функционала для работы с разными форматами субтитров (например, SRT) или анализ текста субтитров.


Добавить комментарий