Описание
Заказчику требовался инструмент для автоматического сбора и скачивания всего видеоконтента с YouTube-каналов или отдельных плейлистов. Задача — извлечь все ссылки на видео (включая пагинацию для каналов с тысячами роликов), отфильтровать по заданным критериям (дата, длительность, название) и скачать видео в высоком качестве с сохранением метаданных (название, описание, дата публикации, субтитры). Решение необходимо для создания архивов образовательного контента, анализа конкурентов, офлайн-просмотра и резервного копирования.
Решение
• Разработала парсер на Python с использованием yt-dlp для работы с YouTube Data API и прямым парсингом страниц каналов/плейлистов.
• Реализовала обход пагинации: автоматический сбор всех видео с канала, обработка плейлистов любой длины.
• Настроила фильтрацию контента: по дате публикации, длительности, ключевым словам в названии, количеству просмотров — для выборочного скачивания релевантных видео.
• Реализовала загрузку с настройками качества: выбор разрешения, формата, извлечение аудио отдельно, скачивание субтитров и превью.
• Добавила сохранение метаданных: экспорт списка видео в CSV/JSON с полями title, url, duration, publish_date, view_count, description.
• Обеспечила отказоустойчивость: возобновление прерванной загрузки, пропуск уже скачанных видео, обработка приватных и удалённых роликов, логирование ошибок.