¿Qué hace record-participant-video?
Graba evidencia visual del flujo de participantes en PsyNet mediante interacciones con Playwright, capturas de pantalla y captura de pantalla/audio con ffmpeg. Úsalo al recopilar evidencia de participantes, crear participant.mp4 o documentar el comportamiento orientado al participante.
Descripción
Esta habilidad automatiza la grabación de la evidencia visual del flujo de participantes en experimentos de PsyNet. Utiliza Playwright para simular interacciones del participante con la interfaz web, tomar capturas de pantalla en momentos clave, y emplea ffmpeg para capturar tanto la pantalla como el audio de la sesión. El resultado es un video (participant.mp4) que documenta fielmente el comportamiento del participante, útil para revisión, depuración y presentación de resultados.
Plataformas compatibles
- PsyNet: Plataforma principal para la que está diseñada esta habilidad.
- Playwright: Framework de automatización de navegadores utilizado para las interacciones.
- ffmpeg: Herramienta de procesamiento multimedia para la captura de pantalla y audio.
Requisitos previos
- Tener instalado Node.js (versión 14 o superior).
- Tener instalado Playwright (
npm install playwright). - Tener instalado ffmpeg en el sistema (disponible en PATH).
- Acceso a una instancia de PsyNet en ejecución.
Instalación
- Clona el repositorio:
git clone https://github.com/PsyNetDev/record-participant-video.git - Instala las dependencias:
npm install - Configura las variables de entorno necesarias (ver sección de configuración).
Configuración
Define las siguientes variables de entorno en un archivo .env o en tu entorno de ejecución:
PSYNET_URL: URL de la instancia de PsyNet (ej.http://localhost:3000).PARTICIPANT_ID: Identificador único del participante.OUTPUT_DIR: Directorio donde se guardará el video (por defecto,./output).RECORDING_DURATION: Duración máxima de la grabación en segundos (opcional).
Uso
Ejecuta el script principal:
node record.js
Esto iniciará la grabación de la interacción del participante con PsyNet. El script:
- Abre un navegador con Playwright.
- Navega a la URL configurada.
- Simula interacciones (clics, escritura, etc.) según el flujo definido.
- Toma capturas de pantalla en momentos clave.
- Inicia la captura de pantalla y audio con ffmpeg.
- Detiene la grabación al finalizar o alcanzar la duración máxima.
- Genera el archivo
participant.mp4en el directorio de salida.
Personalización
Puedes modificar el script record.js para ajustar las interacciones simuladas según el flujo específico de tu experimento. Consulta la documentación de Playwright para más detalles.
Ejemplo de integración
const { recordParticipant } = require('record-participant-video');
await recordParticipant({
psynetUrl: 'http://localhost:3000',
participantId: 'p123',
outputDir: './recordings',
interactions: [
{ type: 'click', selector: '#start-btn' },
{ type: 'type', selector: '#input', text: 'respuesta' },
{ type: 'wait', duration: 2000 },
{ type: 'screenshot', name: 'step1' },
],
});
Solución de problemas
- ffmpeg no encontrado: Asegúrate de que ffmpeg esté instalado y en el PATH del sistema.
- Playwright no conecta: Verifica que la URL de PsyNet sea accesible y que no haya bloqueos de CORS.
- Video vacío: Revisa que la duración de grabación sea suficiente y que la pantalla esté visible.
Licencia
MIT
Contribuciones
Las contribuciones son bienvenidas. Por favor, abre un issue o pull request en el repositorio de GitHub.