126 lines
5.1 KiB
Python
126 lines
5.1 KiB
Python
#!/usr/bin/env python3
|
||
"""
|
||
Примеры использования YouTube Downloader
|
||
"""
|
||
|
||
from downloader import YouTubeDownloader
|
||
from config import Config
|
||
from colorama import Fore, Style
|
||
|
||
def example_download_video():
|
||
"""Пример загрузки одного видео"""
|
||
print(f"{Fore.CYAN}=== Пример загрузки видео ==={Style.RESET_ALL}")
|
||
|
||
# URL тестового видео (короткое видео с YouTube)
|
||
url = "https://www.youtube.com/watch?v=dQw4w9WgXcQ" # Rick Roll для теста
|
||
|
||
config = Config()
|
||
downloader = YouTubeDownloader(config)
|
||
|
||
# Получение информации о видео
|
||
print(f"{Fore.YELLOW}Получение информации о видео...{Style.RESET_ALL}")
|
||
info = downloader.get_video_info(url)
|
||
|
||
if info:
|
||
print(f"Название: {info['title']}")
|
||
print(f"Автор: {info['uploader']}")
|
||
print(f"Длительность: {info['duration']} сек")
|
||
|
||
# Показать доступные форматы
|
||
print(f"\n{Fore.YELLOW}Доступные форматы:{Style.RESET_ALL}")
|
||
formats = downloader.get_available_formats(url)
|
||
for fmt in formats[:5]: # Показываем только первые 5 форматов
|
||
print(f" • {fmt['quality']} ({fmt['ext']})")
|
||
|
||
return url
|
||
|
||
def example_download_audio():
|
||
"""Пример загрузки только аудио"""
|
||
print(f"\n{Fore.CYAN}=== Пример загрузки аудио ==={Style.RESET_ALL}")
|
||
|
||
url = "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
|
||
|
||
config = Config()
|
||
downloader = YouTubeDownloader(config)
|
||
|
||
print("Для загрузки только аудио используйте параметр audio_only=True")
|
||
print("Пример: downloader.download_video(url, audio_only=True)")
|
||
|
||
def show_cli_examples():
|
||
"""Показать примеры использования CLI"""
|
||
print(f"\n{Fore.CYAN}=== Примеры использования CLI ==={Style.RESET_ALL}")
|
||
|
||
examples = [
|
||
"# Скачать видео в лучшем качестве",
|
||
"python main.py https://www.youtube.com/watch?v=VIDEO_ID",
|
||
"",
|
||
"# Скачать видео в 720p",
|
||
"python main.py https://www.youtube.com/watch?v=VIDEO_ID --quality 720p",
|
||
"",
|
||
"# Скачать только аудио",
|
||
"python main.py https://www.youtube.com/watch?v=VIDEO_ID --audio-only",
|
||
"",
|
||
"# Скачать в определенную папку",
|
||
"python main.py https://www.youtube.com/watch?v=VIDEO_ID --output /path/to/downloads/",
|
||
"",
|
||
"# Скачать плейлист",
|
||
"python main.py https://www.youtube.com/playlist?list=PLAYLIST_ID --playlist",
|
||
"",
|
||
"# Показать информацию о видео",
|
||
"python main.py https://www.youtube.com/watch?v=VIDEO_ID --info",
|
||
"",
|
||
"# Показать доступные форматы",
|
||
"python main.py https://www.youtube.com/watch?v=VIDEO_ID --formats",
|
||
"",
|
||
"# Настроить конфигурацию по умолчанию",
|
||
"python main.py configure --output-dir downloads --video-quality 720p",
|
||
"",
|
||
"# Показать текущие настройки",
|
||
"python main.py show-config"
|
||
]
|
||
|
||
for example in examples:
|
||
if example.startswith("#"):
|
||
print(f"{Fore.GREEN}{example}{Style.RESET_ALL}")
|
||
elif example == "":
|
||
print()
|
||
else:
|
||
print(f"{Fore.WHITE}{example}{Style.RESET_ALL}")
|
||
|
||
def test_url_validation():
|
||
"""Тест валидации URL"""
|
||
print(f"\n{Fore.CYAN}=== Тест валидации URL ==={Style.RESET_ALL}")
|
||
|
||
downloader = YouTubeDownloader()
|
||
|
||
test_urls = [
|
||
("https://www.youtube.com/watch?v=dQw4w9WgXcQ", True),
|
||
("https://youtu.be/dQw4w9WgXcQ", True),
|
||
("https://youtube.com/watch?v=dQw4w9WgXcQ", True),
|
||
("https://www.youtube.com/playlist?list=PLrAXtmRdnEQy6nuLMt6VEY", True),
|
||
("https://example.com/video", False),
|
||
("not_a_url", False),
|
||
]
|
||
|
||
for url, expected in test_urls:
|
||
result = downloader.validate_url(url)
|
||
status = "✓" if result == expected else "✗"
|
||
color = Fore.GREEN if result == expected else Fore.RED
|
||
print(f"{color}{status} {url} -> {result}{Style.RESET_ALL}")
|
||
|
||
if __name__ == "__main__":
|
||
print(f"{Fore.CYAN}YouTube Downloader - Примеры использования{Style.RESET_ALL}")
|
||
print("=" * 60)
|
||
|
||
# Тест валидации URL
|
||
test_url_validation()
|
||
|
||
# Примеры загрузки
|
||
test_url = example_download_video()
|
||
example_download_audio()
|
||
|
||
# Примеры CLI
|
||
show_cli_examples()
|
||
|
||
print(f"\n{Fore.GREEN}Все примеры показаны. Для реальной загрузки используйте main.py{Style.RESET_ALL}")
|
||
print(f"{Fore.YELLOW}Для начала работы установите зависимости: pip install -r requirements.txt{Style.RESET_ALL}") |