init commit
This commit is contained in:
126
.history/examples_20250928085321.py
Normal file
126
.history/examples_20250928085321.py
Normal file
@@ -0,0 +1,126 @@
|
||||
#!/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}")
|
||||
Reference in New Issue
Block a user