Spaces:
Runtime error
Runtime error
| # One-liner studio recording for WSL + Windows Chrome + Cap Desktop. | |
| # | |
| # This script: | |
| # 1. Sources the cap-cli-skill so `cap` is available. | |
| # 2. Discovers the Windows host IP from WSL's default gateway. | |
| # 3. Launches Chrome in app mode pointed at https://node.microfactory.space | |
| # with remote debugging enabled (if not already running). | |
| # 4. Runs the Node-based studio driver, which uses npm/pnpm-based Playwright, | |
| # starts a Cap screen recording if none is active, warms the GPU via the | |
| # WARM UP button, then drives the full demo. It leaves the raw .cap | |
| # project — no export. | |
| # | |
| # Usage: | |
| # ./record-studio.sh | |
| # ./record-studio.sh --beat=3 | |
| # ./record-studio.sh --beat=placement --pause=4 | |
| # | |
| # Prerequisites: | |
| # Chrome installed at C:\Program Files\Google\Chrome\Application\chrome.exe | |
| # Cap CLI set up via ~/projects/cap-cli-skill/setup.sh | |
| set -euo pipefail | |
| cd "$(dirname "$0")" | |
| source ~/projects/cap-cli-skill/setup.sh 2>/dev/null || true | |
| HOST_IP=$(ip route show | grep default | awk '{print $3}') | |
| CDP_URL="http://${HOST_IP}:9222" | |
| CHROME="/mnt/c/Program Files/Google/Chrome/Application/chrome.exe" | |
| SPACE="https://node.microfactory.space/?__theme=dark" | |
| echo "Windows host IP: ${HOST_IP}" | |
| echo "CDP URL: ${CDP_URL}" | |
| # Screen resolution from Cap target; adjust if your display differs. | |
| SCREEN_W=1707 | |
| SCREEN_H=1067 | |
| # Launch Chrome in app mode with CDP if CDP is not already alive | |
| if ! curl -s "${CDP_URL}/json/version" >/dev/null 2>&1; then | |
| echo "Launching Chrome app window..." | |
| PROFILE_DIR="/tmp/chrome-studio-profile-$(date +%s)" | |
| mkdir -p "$PROFILE_DIR" | |
| nohup "${CHROME}" --app="${SPACE}" --remote-debugging-port=9222 \ | |
| --remote-debugging-address=0.0.0.0 \ | |
| --user-data-dir="$PROFILE_DIR" \ | |
| --window-size=${SCREEN_W},${SCREEN_H} \ | |
| --window-position=0,0 \ | |
| --disable-session-crashed-bubble --no-first-run \ | |
| --no-default-browser-check --disable-features=TranslateUI \ | |
| >/tmp/chrome-studio.log 2>&1 & | |
| sleep 5 | |
| else | |
| echo "Chrome CDP already alive — reusing existing window" | |
| fi | |
| # Install Node deps if Playwright is not resolvable | |
| if ! node -e "require.resolve('playwright')" >/dev/null 2>&1; then | |
| echo "Installing Playwright (pnpm/npm)..." | |
| if command -v pnpm &> /dev/null; then | |
| pnpm install | |
| else | |
| npm install | |
| fi | |
| npx playwright install chromium | |
| fi | |
| echo "Starting studio recording..." | |
| CDP_URL="${CDP_URL}" node scripts/record-studio.cjs "$@" | |