videotomp3transcriptor/setup.sh

99 lines
2.9 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
#
# Hanasuba Music Service v2.0 - Setup Script
#
set -e
echo "╔══════════════════════════════════════════════════╗"
echo "║ 🎵 Hanasuba Music Service v2.0 Setup ║"
echo "╚══════════════════════════════════════════════════╝"
echo ""
# Check prerequisites
echo "🔍 Checking prerequisites..."
if ! command -v node &> /dev/null; then
echo "❌ Node.js not found. Please install Node.js 18+"
exit 1
fi
if ! command -v python3 &> /dev/null; then
echo "❌ Python 3 not found. Please install Python 3.9+"
exit 1
fi
if ! command -v yt-dlp &> /dev/null; then
echo "⚠️ yt-dlp not found. Installing..."
pip3 install yt-dlp
fi
if ! command -v ffmpeg &> /dev/null; then
echo "❌ ffmpeg not found. Please install ffmpeg"
echo " sudo apt install ffmpeg # Debian/Ubuntu"
exit 1
fi
echo "✅ Prerequisites OK"
echo ""
# Install Node dependencies
echo "📦 Installing Node.js dependencies..."
npm install
echo "✅ Node.js dependencies installed"
echo ""
# Install Python dependencies
echo "🐍 Installing Python dependencies..."
pip3 install -r requirements.txt
echo "✅ Python dependencies installed"
echo ""
# Install Playwright browsers
echo "🎭 Installing Playwright Firefox..."
python3 -m playwright install firefox
echo "✅ Playwright Firefox installed"
echo ""
# Create output directory
echo "📁 Creating output directory..."
mkdir -p output
chmod 755 output
echo "✅ Output directory created"
echo ""
# Setup .env if not exists
if [ ! -f .env ]; then
echo "⚙️ Creating .env file..."
cp .env.example .env
echo "✅ .env created (please edit if needed)"
else
echo " .env already exists (skipping)"
fi
echo ""
# Extract initial cookies
echo "🍪 Extracting YouTube cookies (this may take 30s)..."
if python3 src/python/extract_cookies.py; then
echo "✅ Cookies extracted successfully"
else
echo "⚠️ Cookie extraction failed (you can retry later with: npm run cookies:extract)"
fi
echo ""
echo "╔══════════════════════════════════════════════════╗"
echo "║ ✅ Setup Complete! ║"
echo "╚══════════════════════════════════════════════════╝"
echo ""
echo "🚀 Start the service:"
echo " npm start"
echo ""
echo "📖 Read the docs:"
echo " cat README.md"
echo ""
echo "🧪 Test download:"
echo " curl -X POST http://localhost:8889/download \\"
echo " -H 'Content-Type: application/json' \\"
echo " -d '{\"url\": \"https://youtube.com/watch?v=dQw4w9WgXcQ\"}'"
echo ""