#!/usr/bin/env bash # tools/request_session.sh # Uso: ./tools/request_session.sh [username] # Hace POST a BACKEND_URL/api/session (usando env BACKEND_URL o VITE_BACKEND_TOKENS_URL) # e imprime JSON prettified y un snippet para inyectar token en la consola del navegador. set -euo pipefail ROOM=${1:-d13oie2} USERNAME=${2:-visual-runner} BACKEND=${BACKEND_URL:-${VITE_BACKEND_TOKENS_URL:-https://avanzacast-servertokens.bfzqqk.easypanel.host}} if [ -z "$BACKEND" ]; then echo "ERROR: BACKEND_URL or VITE_BACKEND_TOKENS_URL must be set in env" >&2 exit 1 fi echo "POSTing session to $BACKEND/api/session (room=$ROOM username=$USERNAME)" RESP=$(curl -sS -X POST "$BACKEND/api/session" -H 'Content-Type: application/json' -d "{\"room\":\"$ROOM\",\"username\":\"$USERNAME\",\"ttl\":300}") || true if [ -z "$RESP" ]; then echo "No response from $BACKEND/api/session" >&2 exit 2 fi # Pretty print JSON if jq available if command -v jq >/dev/null 2>&1; then echo "$RESP" | jq . else echo "$RESP" fi # Try to extract token and studioUrl TOKEN=$(echo "$RESP" | grep -o '"token"[[:space:]]*:[[:space:]]*"[^"]*"' | sed -E 's/"token"\s*:\s*"([^"]*)"/\1/' || true) STUDIOURL=$(echo "$RESP" | grep -o '"studioUrl"[[:space:]]*:[[:space:]]*"[^"]*"' | sed -E 's/"studioUrl"\s*:\s*"([^"]*)"/\1/' || true) ID=$(echo "$RESP" | grep -o '"id"[[:space:]]*:[[:space:]]*"[^"]*"' | sed -E 's/"id"\s*:\s*"([^"]*)"/\1/' || true) if [ -n "$TOKEN" ]; then echo echo "--- Copy-paste this into your browser console (on the broadcast panel page) to inject the token ---" echo "window.postMessage({ type: 'LIVEKIT_TOKEN', token: '$TOKEN', room: '$ROOM' }, window.location.origin);" echo "---" fi if [ -n "$STUDIOURL" ]; then echo "studioUrl: $STUDIOURL" fi if [ -n "$ID" ]; then echo "session id: $ID" fi exit 0