#!/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}")