JSON одного видео
{
"video_id": "abc123",
"channel": "DevOops_conf",
"title": "video title",
"views": 12345,
"duration": 901,
"published": "2024-05-01",
"text": "normalized transcript text"
}Автоматизирует сбор и структурирование YouTube-контента для масштабируемого анализа и исследовательских задач.
01
Этот кейс оформлен как чистый showcase-репозиторий для CLI/data-pipeline, который забирает YouTube-данные и выпускает стабильные JSON-артефакты для дальнейшего анализа. Акцент здесь не на одном хаке ради субтитров, а на понятном публичном контракте: аккуратный README, runbook, архитектурные заметки, curated examples и предсказуемые exports.
02
Я собрал TypeScript CLI на Node.js с явным data flow: fetch одного видео, batch-обработка и объединение результатов в channel exports. Репозиторий теперь показывает не только код, но и эксплуатационный слой: cleaner README/runbook, docs/architecture, CI, typed response boundaries на выходе и маленькие репрезентативные примеры в examples/.
03
В реальной эксплуатации пайплайну пришлось учитывать нестабильность player-запросов, ограничения платформы и долгие batch-прогоны. Поэтому в проекте зафиксированы retries с backoff, cooldown-окна, ротация ключей и user-agent, детерминированные экспорты и прозрачная документация по текущему адаптеру `youtubei/v1/player`, но сам endpoint остаётся технической деталью, а не смыслом кейса.
04
Получился polished публичный репозиторий, по которому легко понять контракт проекта: per-video JSON в `video_data/`, combined channel export в `exports/`, runbook с командами `fetch` / `batch` / `export`, архитектурная схема и curated examples для быстрого ревью. Такой формат удобен и как инженерная витрина, и как основа для downstream text-analysis задач.
repo
Публичный репозиторий показывает текущее состояние пайплайна: README и runbook, заметки по архитектуре, CI, примеры выходных данных и канонические экспорты под review.
stack
artifacts
{
"video_id": "abc123",
"channel": "DevOops_conf",
"title": "video title",
"views": 12345,
"duration": 901,
"published": "2024-05-01",
"text": "normalized transcript text"
}exports/DevOops_conf.json
exports/HighLoadChannel.json
array of sorted per-video records
stable shape for downstream analysisexamples/single-video.json
examples/channel-export.json
small curated artifacts that mirror the public output contractfetch -> typed per-video JSON -> batch status updates -> export -> canonical channel dataset