bytelyst-devops-tools/supabase monitor/setup.py

155 lines
4.8 KiB
Python

"""
Setup script for the YouTube Processing Workflow project.
"""
import os
import sys
import subprocess
import platform
def check_python_version():
"""Check if Python version is compatible."""
version = sys.version_info
if version.major < 3 or (version.major == 3 and version.minor < 8):
print("❌ Python 3.8+ is required. Current version:", sys.version)
return False
print(f"✅ Python version OK: {sys.version}")
return True
def install_dependencies():
"""Install required dependencies."""
print("📦 Installing dependencies...")
try:
subprocess.check_call([sys.executable, "-m", "pip", "install", "-r", "requirements.txt"])
print("✅ Dependencies installed successfully!")
return True
except subprocess.CalledProcessError as e:
print(f"❌ Failed to install dependencies: {str(e)}")
return False
def setup_environment():
"""Setup environment configuration."""
print("⚙️ Setting up environment...")
if os.path.exists(".env"):
print("✅ .env file already exists")
return True
if os.path.exists("env.example"):
print("📝 Creating .env file from example...")
try:
with open("env.example", "r") as example_file:
with open(".env", "w") as env_file:
env_file.write(example_file.read())
print("✅ .env file created!")
print("💡 Please edit .env to add your API keys")
return True
except Exception as e:
print(f"❌ Failed to create .env file: {str(e)}")
return False
else:
print("⚠️ env.example file not found")
return False
def check_ffmpeg():
"""Check if FFmpeg is available."""
print("🎵 Checking FFmpeg installation...")
try:
result = subprocess.run(["ffmpeg", "-version"],
capture_output=True, text=True)
if result.returncode == 0:
print("✅ FFmpeg is installed and available")
return True
else:
print("❌ FFmpeg not found or not working properly")
return False
except FileNotFoundError:
print("❌ FFmpeg not found")
print("📖 Please install FFmpeg:")
system = platform.system().lower()
if system == "windows":
print(" - Download from https://ffmpeg.org/download.html")
print(" - Or use chocolatey: choco install ffmpeg")
elif system == "darwin": # macOS
print(" - Homebrew: brew install ffmpeg")
else: # Linux
print(" - Ubuntu/Debian: sudo apt update && sudo apt install ffmpeg")
print(" - CentOS/RHEL: sudo yum install ffmpeg")
return False
def run_quick_test():
"""Run a quick test to verify installation."""
print("🧪 Running quick test...")
try:
# Test imports
import crewai
print("✅ CrewAI import successful")
import whisper
print("✅ Whisper import successful")
import yt_dlp
print("✅ yt-dlp import successful")
import flask
print("✅ Flask import successful")
print("✅ All core dependencies imported successfully!")
return True
except ImportError as e:
print(f"❌ Import test failed: {str(e)}")
return False
def print_next_steps():
"""Print next steps for the user."""
print("\\n🎉 Setup completed!")
print("=" * 40)
print("📋 Next Steps:")
print("")
print("1. 📝 Edit .env file with your API keys:")
print(" - PERPLEXITY_API_KEY (or OPENAI_API_KEY)")
print(" - NOTELETT_API_KEY")
print(" - NOTELETT_API_URL")
print("")
print("2. 🧪 Test the installation:")
print(" python test.py")
print("")
print("3. 🚀 Run an example:")
print(" python example.py")
print("")
print("4. 📖 Read the documentation:")
print(" See README.md for detailed usage instructions")
print("")
print("💡 Quick Examples:")
print(" python demo.py # Interactive demo")
print(" python workflow.py <args> # Command line usage")
print(" python api.py # Start API server")
def main():
"""Main setup function."""
print("🚀 YouTube Processing Workflow Setup")
print("=" * 40)
# Check prerequisites
success = True
success &= check_python_version()
success &= install_dependencies()
success &= setup_environment()
success &= check_ffmpeg()
success &= run_quick_test()
if success:
print_next_steps()
else:
print("\\n❌ Setup encountered issues. Please fix the problems above.")
sys.exit(1)
if __name__ == "__main__":
main()