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

6.4 KiB
Raw Permalink Blame History

YouTube Downloader

Мощное приложение для скачивания видео с YouTube с использованием Python и yt-dlp.

🚀 Возможности

  • Скачивание видео в различных разрешениях (360p, 480p, 720p, 1080p, best)
  • Скачивание только аудио в формате MP3/AAC
  • Поддержка плейлистов
  • Прогресс-бар загрузки с цветным выводом
  • Настраиваемая конфигурация
  • Валидация URL
  • Пакетная загрузка из файла
  • История загрузок
  • CLI интерфейс с множеством опций
  • Поддержка субтитров

📦 Установка

  1. Клонируйте репозиторий:
git clone <your-repo-url>
cd youtube_downloader
  1. Установите зависимости:
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.

🤝 Вклад в проект

  1. Форкните репозиторий
  2. Создайте ветку для новой функции
  3. Сделайте изменения
  4. Отправьте Pull Request

Автор: GitHub Copilot
Версия: 1.0.0