6.4 KiB
6.4 KiB
YouTube Downloader
Мощное приложение для скачивания видео с YouTube с использованием Python и yt-dlp.
🚀 Возможности
- ✅ Скачивание видео в различных разрешениях (360p, 480p, 720p, 1080p, best)
- ✅ Скачивание только аудио в формате MP3/AAC
- ✅ Поддержка плейлистов
- ✅ Прогресс-бар загрузки с цветным выводом
- ✅ Настраиваемая конфигурация
- ✅ Валидация URL
- ✅ Пакетная загрузка из файла
- ✅ История загрузок
- ✅ CLI интерфейс с множеством опций
- ✅ Поддержка субтитров
📦 Установка
- Клонируйте репозиторий:
git clone <your-repo-url>
cd youtube_downloader
- Установите зависимости:
make install
# или
pip3 install -r requirements.txt
🎯 Быстрый старт
# Настройка конфигурации
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
Основные команды:
# Скачать видео в лучшем качестве
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
Конфигурация:
# Настроить параметры по умолчанию
python3 main.py configure --output-dir downloads --video-quality 720p
# Показать текущие настройки
python3 main.py show-config
🔧 Дополнительные утилиты
# Создать шаблон для пакетной загрузки
python3 utils.py template
# Пакетная загрузка из файла
python3 utils.py batch --file urls.txt --quality 720p
# Показать историю загрузок
python3 utils.py history
# Очистить папку загрузок
python3 utils.py clean
🛠 Make команды
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:
{
"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
}
📝 Примеры
Базовое использование в коде:
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
)
Пакетная загрузка:
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, обновите до последней версии:
pip3 install --upgrade yt-dlp
Проблемы с ffmpeg
Установите ffmpeg:
# Ubuntu/Debian
sudo apt install ffmpeg
# macOS
brew install ffmpeg
# Windows
# Скачайте с https://ffmpeg.org/
📄 Лицензия
Проект создан для образовательных целей. Соблюдайте условия использования YouTube.
🤝 Вклад в проект
- Форкните репозиторий
- Создайте ветку для новой функции
- Сделайте изменения
- Отправьте Pull Request
Автор: GitHub Copilot
Версия: 1.0.0