# YouTube Downloader Мощное приложение для скачивания видео с YouTube с использованием Python и yt-dlp. ## 🚀 Возможности - ✅ Скачивание видео в различных разрешениях (360p, 480p, 720p, 1080p, best) - ✅ Скачивание только аудио в формате MP3/AAC - ✅ Поддержка плейлистов - ✅ Прогресс-бар загрузки с цветным выводом - ✅ Настраиваемая конфигурация - ✅ Валидация URL - ✅ Пакетная загрузка из файла - ✅ История загрузок - ✅ CLI интерфейс с множеством опций - ✅ Поддержка субтитров ## 📦 Установка 1. Клонируйте репозиторий: ```bash git clone cd youtube_downloader ``` 2. Установите зависимости: ```bash make install # или pip3 install -r requirements.txt ``` ## 🎯 Быстрый старт ```bash # Настройка конфигурации make config # Скачать видео python3 main.py https://www.youtube.com/watch?v=VIDEO_ID # Скачать только аудио python3 main.py https://www.youtube.com/watch?v=VIDEO_ID --audio-only # Скачать плейлист python3 main.py https://www.youtube.com/playlist?list=PLAYLIST_ID --playlist ``` ## 📋 Использование CLI ### Основные команды: ```bash # Скачать видео в лучшем качестве python3 main.py https://www.youtube.com/watch?v=VIDEO_ID # Скачать в определенном качестве python3 main.py https://www.youtube.com/watch?v=VIDEO_ID --quality 720p # Скачать только аудио python3 main.py https://www.youtube.com/watch?v=VIDEO_ID --audio-only # Указать папку для загрузки python3 main.py https://www.youtube.com/watch?v=VIDEO_ID --output downloads/ # Скачать плейлист python3 main.py https://www.youtube.com/playlist?list=PLAYLIST_ID --playlist # Показать информацию о видео python3 main.py https://www.youtube.com/watch?v=VIDEO_ID --info # Показать доступные форматы python3 main.py https://www.youtube.com/watch?v=VIDEO_ID --formats ``` ### Конфигурация: ```bash # Настроить параметры по умолчанию python3 main.py configure --output-dir downloads --video-quality 720p # Показать текущие настройки python3 main.py show-config ``` ## 🔧 Дополнительные утилиты ```bash # Создать шаблон для пакетной загрузки python3 utils.py template # Пакетная загрузка из файла python3 utils.py batch --file urls.txt --quality 720p # Показать историю загрузок python3 utils.py history # Очистить папку загрузок python3 utils.py clean ``` ## 🛠 Make команды ```bash make install # Установить зависимости make config # Настроить конфигурацию по умолчанию make show-config # Показать текущие настройки make test # Простой тест валидации URL make demo-info # Информация о тестовом видео make demo-formats # Форматы тестового видео make run-examples # Запустить примеры make clean # Очистить временные файлы make usage # Показать справку по Makefile ``` ## 📁 Структура проекта ``` youtube_downloader/ ├── main.py # Основное CLI приложение ├── downloader.py # Класс загрузчика YouTube ├── config.py # Управление конфигурацией ├── utils.py # Дополнительные утилиты ├── examples.py # Примеры использования ├── requirements.txt # Зависимости Python ├── Makefile # Автоматизация задач ├── README.md # Документация ├── config.json # Файл конфигурации (создается автоматически) └── urls.txt # Шаблон для пакетной загрузки ``` ## ⚙ Конфигурация Настройки сохраняются в `config.json`: ```json { "output_directory": "downloads", "video_quality": "best", "audio_format": "mp3", "video_format": "mp4", "create_subdirs": true, "add_metadata": true, "subtitle_languages": ["ru", "en"], "download_subtitles": false } ``` ## 📝 Примеры ### Базовое использование в коде: ```python from downloader import YouTubeDownloader from config import Config # Создание загрузчика config = Config() downloader = YouTubeDownloader(config) # Загрузка видео success = downloader.download_video( url="https://www.youtube.com/watch?v=VIDEO_ID", quality="720p", audio_only=False ) ``` ### Пакетная загрузка: ```python from utils import BatchDownloader batch = BatchDownloader() batch.download_from_file("urls.txt", quality="best", audio_only=False) ``` ## 🚨 Требования - Python 3.7+ - Интернет соединение - ffmpeg (для конвертации аудио) ## 🔍 Troubleshooting ### Ошибки yt-dlp Если возникают ошибки с yt-dlp, обновите до последней версии: ```bash pip3 install --upgrade yt-dlp ``` ### Проблемы с ffmpeg Установите ffmpeg: ```bash # Ubuntu/Debian sudo apt install ffmpeg # macOS brew install ffmpeg # Windows # Скачайте с https://ffmpeg.org/ ``` ## 📄 Лицензия Проект создан для образовательных целей. Соблюдайте условия использования YouTube. ## 🤝 Вклад в проект 1. Форкните репозиторий 2. Создайте ветку для новой функции 3. Сделайте изменения 4. Отправьте Pull Request --- **Автор:** GitHub Copilot **Версия:** 1.0.0