transcript-diarize-video/setup.sh
2025-10-01 14:31:10 +02:00

113 lines
No EOL
3.4 KiB
Bash
Executable file
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
set -e # Exit on error
echo "🚀 Setting up Transcription Runner..."
# Check if Python is installed
if ! command -v python3 &> /dev/null; then
echo "❌ Python 3 not found. Please install Python 3 before proceeding."
exit 1
fi
# Check if pip is installed
if ! command -v pip3 &> /dev/null; then
echo "❌ pip3 not found. Please install pip3 before proceeding."
exit 1
fi
# Check if AWS CLI is installed
if ! command -v aws &> /dev/null; then
echo "⚠️ AWS CLI not found. Installing..."
if [[ "$OSTYPE" == "darwin"* ]]; then
# macOS
if command -v brew &> /dev/null; then
brew install awscli
else
echo "❌ Homebrew not found. Please install AWS CLI manually."
exit 1
fi
elif [[ "$OSTYPE" == "linux-gnu"* ]]; then
# Linux
if command -v apt-get &> /dev/null; then
sudo apt-get update
sudo apt-get install -y awscli
elif command -v yum &> /dev/null; then
sudo yum install -y awscli
else
echo "❌ Unable to detect package manager. Please install AWS CLI manually."
exit 1
fi
else
echo "❌ Unsupported OS. Please install AWS CLI manually."
exit 1
fi
fi
# Check if netcat is installed
if ! command -v nc &> /dev/null; then
echo "⚠️ netcat not found. Installing..."
if [[ "$OSTYPE" == "darwin"* ]]; then
# macOS
if command -v brew &> /dev/null; then
brew install netcat
else
echo "❌ Homebrew not found. Please install netcat manually."
exit 1
fi
elif [[ "$OSTYPE" == "linux-gnu"* ]]; then
# Linux
if command -v apt-get &> /dev/null; then
sudo apt-get update
sudo apt-get install -y netcat
elif command -v yum &> /dev/null; then
sudo yum install -y netcat
else
echo "❌ Unable to detect package manager. Please install netcat manually."
exit 1
fi
else
echo "❌ Unsupported OS. Please install netcat manually."
exit 1
fi
fi
# Create virtual environment
echo "🔨 Creating Python virtual environment..."
python3 -m venv venv
source venv/bin/activate
# Install dependencies
echo "📦 Installing dependencies..."
pip install -r requirements.txt
# Create .env file if it doesn't exist
if [ ! -f .env ]; then
echo "📝 Creating .env file from template..."
cp .env.sample .env
echo " Please edit the .env file with your configuration before running the scripts."
fi
# Make shell scripts executable
echo "🔑 Making scripts executable..."
chmod +x whisper_parallel.sh
# Set up AWS credentials if needed
if ! aws configure list &> /dev/null; then
echo "⚠️ AWS credentials not configured. Setting up..."
echo "Please enter your AWS credentials:"
aws configure
fi
# Check if AWS key pair exists
KEY_NAME=$(grep KEY_NAME .env | cut -d '=' -f2 || echo "whisper-key")
if ! aws ec2 describe-key-pairs --key-names "$KEY_NAME" &> /dev/null; then
echo "🔑 Creating EC2 key pair..."
mkdir -p ~/.ssh
aws ec2 create-key-pair --key-name "$KEY_NAME" --query 'KeyMaterial' --output text > ~/.ssh/"$KEY_NAME".pem
chmod 400 ~/.ssh/"$KEY_NAME".pem
echo "✅ Key pair created: ~/.ssh/$KEY_NAME.pem"
fi
echo "✅ Setup complete! You can now run ./whisper_parallel.sh"
echo " Remember to edit the .env file with your configuration."