на главную

Пайплайн сбора данных YouTube для исследовательского анализа

Собрал субтитры и метаданные более чем из 2900 видео YouTube и подготовил структурированные JSON-датасеты для дальнейшего анализа.

обзор

Клиенту нужно было собрать и структурировать материалы с нескольких YouTube-каналов, чтобы анализировать повторяющиеся темы и обсуждения в индустрии. Целью было подготовить датасет для дальнейшего текстового анализа.

решение

Я разработал CLI-пайплайн на TypeScript и Node.js. Скрипт получает метаданные видео, извлекает автосубтитры, сохраняет каждый ролик отдельным JSON-файлом и затем объединяет данные в датасеты на уровне каналов.

сложности

Массовый сбор данных с YouTube требует учета ограничений платформы и нестабильности доступа. Чтобы пайплайн работал стабильно при длительных прогонах, была добавлена логика повторных попыток, случайных задержек, cooldown-периодов, ротации API-ключей и user-agent, а также реестр статусов обработки.

результат

В репозитории зафиксирована обработка более 2900 видео по трём каналам. Итоговые данные экспортированы в структурированные JSON-датасеты общим объёмом около 164 МБ и могут использоваться для анализа тем, ключевых слов и кластеризации контента.

стек

  • TypeScript
  • Node.js
  • YouTube internal endpoints
  • JSON dataset pipeline

артефакты

sample JSON structure

{
  "videoId": "abc123",
  "title": "placeholder title",
  "channel": "channel name",
  "subtitles": [
    { "start": 0.0, "text": "..." }
  ]
}

dataset export preview

channel-a.json
channel-b.json
channel-c.json

videos: 2900+
size: ~164 MB

pipeline overview

channels -> metadata fetch -> subtitle extraction -> per-video JSON -> channel dataset export