Files
youtube_downloader/.history/README_20250928090643.md
2025-09-28 09:18:03 +09:00

237 lines
7.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# YouTube Downloader
Мощное приложение для скачивания видео с YouTube с использованием Python и yt-dlp.
## 🚀 Возможности
- ✅ Скачивание видео в различных разрешениях (360p, 480p, 720p, 1080p, best)
- ✅ Скачивание только аудио в формате MP3/AAC
- ✅ Поддержка плейлистов
- ✅ Прогресс-бар загрузки с цветным выводом
- ✅ Настраиваемая конфигурация
- ✅ Валидация URL
- ✅ Пакетная загрузка из файла
- ✅ История загрузок
- ✅ CLI интерфейс с множеством опций
- ✅ Поддержка субтитров
## 📦 Установка
1. Клонируйте репозиторий:
```bash
git clone <your-repo-url>
cd youtube_downloader
```
2. Установите зависимости:
```bash
make install-fresh
# или
pip3 install -r requirements.txt
```
3. Установите ffmpeg (для конвертации аудио):
```bash
make install-ffmpeg
# или вручную:
# Ubuntu/Debian: sudo apt install ffmpeg
# macOS: brew install ffmpeg
# Windows: скачайте с https://ffmpeg.org/
```
## 🎯 Быстрый старт
```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-fresh # Установить с обновлением yt-dlp
make install-ffmpeg # Установить ffmpeg для аудио
make config # Настроить конфигурацию по умолчанию
make show-config # Показать текущие настройки
make update-ytdlp # Обновить yt-dlp до последней версии
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
make update-ytdlp
# или
pip3 install --upgrade yt-dlp
```
### HTTP Error 403: Forbidden
Приложение автоматически использует несколько стратегий обхода блокировок:
- Альтернативные User-Agent заголовки
- Повторные попытки с задержками
- Различные форматы загрузки
- Fallback настройки
### Проблемы с ffmpeg
Установите ffmpeg для конвертации аудио:
```bash
make install-ffmpeg
# или вручную:
# Ubuntu/Debian: sudo apt install ffmpeg
# macOS: brew install ffmpeg
# Windows: Скачайте с https://ffmpeg.org/
```
### Медленная загрузка
- Попробуйте скачать в более низком качестве: `--quality 480p`
- Используйте только аудио: `--audio-only`
- Проверьте интернет соединение
## 📄 Лицензия
Проект создан для образовательных целей. Соблюдайте условия использования YouTube.
## 🤝 Вклад в проект
1. Форкните репозиторий
2. Создайте ветку для новой функции
3. Сделайте изменения
4. Отправьте Pull Request
---
**Автор:** GitHub Copilot
**Версия:** 1.0.0