| 1 | @echo off |
| 2 | chcp 65001 >nul 2>&1 |
| 3 | setlocal enabledelayedexpansion |
| 4 | |
| 5 | set "ROOT_DIR=%~dp0" |
| 6 | set "BACKEND_DIR=%ROOT_DIR%backend" |
| 7 | set "FRONTEND_DIR=%ROOT_DIR%frontend" |
| 8 | |
| 9 | echo [install] Video-Claw one-click install |
| 10 | |
| 11 | where python >nul 2>nul |
| 12 | if errorlevel 1 ( |
| 13 | echo [install] Python 3.9+ is required. Please install Python first. |
| 14 | exit /b 1 |
| 15 | ) |
| 16 | |
| 17 | where node >nul 2>nul |
| 18 | if errorlevel 1 ( |
| 19 | echo [install] Node.js 18+ is required. Please install Node.js first. |
| 20 | exit /b 1 |
| 21 | ) |
| 22 | |
| 23 | where npm >nul 2>nul |
| 24 | if errorlevel 1 ( |
| 25 | echo [install] npm is required. Please install npm first. |
| 26 | exit /b 1 |
| 27 | ) |
| 28 | |
| 29 | where ffmpeg >nul 2>nul |
| 30 | if errorlevel 1 ( |
| 31 | echo [install] ffmpeg was not found. Video concatenation and audio/video post-processing will be unavailable. |
| 32 | ) |
| 33 | |
| 34 | cd /d "%BACKEND_DIR%" |
| 35 | if not exist "config.yaml" if exist "config.yaml.example" ( |
| 36 | copy "config.yaml.example" "config.yaml" >nul |
| 37 | echo [install] Created backend config.yaml from config.yaml.example. Fill in API keys before generating videos. |
| 38 | ) |
| 39 | |
| 40 | where uv >nul 2>nul |
| 41 | if errorlevel 1 ( |
| 42 | echo [install] uv was not found. Installing uv with python -m pip... |
| 43 | python -m pip install --user uv |
| 44 | ) |
| 45 | |
| 46 | where uv >nul 2>nul |
| 47 | if errorlevel 1 ( |
| 48 | echo [install] uv is still not on PATH. Falling back to venv + pip. |
| 49 | python -m venv venv |
| 50 | call venv\Scripts\activate.bat |
| 51 | python -m pip install --upgrade pip |
| 52 | python -m pip install -r requirements.txt |
| 53 | ) else ( |
| 54 | uv sync |
| 55 | ) |
| 56 | |
| 57 | cd /d "%FRONTEND_DIR%" |
| 58 | if exist "package-lock.json" ( |
| 59 | npm ci |
| 60 | ) else ( |
| 61 | npm install |
| 62 | ) |
| 63 | |
| 64 | if "%AIGC_DIRECTOR_SKIP_FRONTEND_BUILD%"=="1" ( |
| 65 | echo [install] Skipping frontend build because AIGC_DIRECTOR_SKIP_FRONTEND_BUILD=1. |
| 66 | ) else ( |
| 67 | npm run build |
| 68 | ) |
| 69 | |
| 70 | echo. |
| 71 | echo [install] Video-Claw installation complete. |
| 72 | echo. |
| 73 | echo Next steps: |
| 74 | echo 1. Edit backend API keys: |
| 75 | echo %BACKEND_DIR%\config.yaml |
| 76 | echo. |
| 77 | echo 2. Start backend: |
| 78 | echo cd /d "%BACKEND_DIR%" |
| 79 | echo uv run python api_server.py |
| 80 | echo or: venv\Scripts\activate.bat ^&^& python api_server.py |
| 81 | echo. |
| 82 | echo 3. Start frontend in a new terminal: |
| 83 | echo cd /d "%FRONTEND_DIR%" |
| 84 | echo npm start |
| 85 | echo. |
| 86 | echo URLs: |
| 87 | echo Backend: http://localhost:8000/api/health |
| 88 | echo Frontend: http://localhost:3000 |
| 89 | |
| 90 | endlocal |
| 91 |