Respuesta breve
La aplicación de escritorio de Social Stream puede reproducir archivos locales autorizados sin subirlos. Usa Elegir archivo local (Choose Local File) en Event Flow y luego copia la URL local de Flow Actions en OBS.
La extensión de Chrome no puede servir archivos de tu disco por sí sola. Los usuarios de la extensión deben seguir usando Subir o una URL multimedia alojada, salvo que también ejecuten una aplicación de escritorio complementaria compatible.
Elige la mejor opción
Ideal para una biblioteca modesta y una configuración mínima.
Recomendado cuando SSApp, OBS y los archivos están en el mismo equipo.
Ideal para muchos archivos, copias de seguridad y uso desde varios equipos.
Una recompensa o un mensaje activa la acción.
actions.html recibe la acción.
OBS carga el sonido, la imagen, el GIF o el vídeo.
Opción 1: usar la carga integrada
- En Event Flow, selecciona Reproducir clip de audio (Play Audio Clip) o Mostrar superposición multimedia (Display Media Overlay).
- Haz clic en Subir (Upload), elige el archivo y termina de subirlo en la página que se abre.
- Confirma que la URL devuelta
https://fileuploads.socialstream.ninja/media/...aparezca en la acción. - Guarda el flujo y mantén
actions.html?session=YOUR_SESSIONabierto en OBS.
Si el sitio de carga indica un límite de 1 GB por cuenta y tu biblioteca lo va a superar, usa la opción de carpeta local o almacenamiento en la nube que aparece abajo.
Opción 2: mantener la biblioteca en el equipo de OBS
La aplicación de escritorio independiente incluye una Biblioteca multimedia local y un servidor de bucle local que solo escucha en este equipo. Event Flow guarda un ID multimedia estable en lugar de poner la ruta del disco en el flujo.
- Inicia la aplicación independiente de Social Stream y abre Event Flow.
- Selecciona Reproducir clip de audio (Play Audio Clip) o Mostrar superposición multimedia (Display Media Overlay).
- Haz clic en Elegir archivo local (Choose Local File) y selecciona un archivo de audio, imagen, GIF o vídeo.
- Confirma que la acción indique que el archivo está disponible y que el servidor local esté funcionando.
- Haz clic en Copiar URL local de Flow Actions para OBS.
- Pega esa URL en una fuente de navegador de OBS, guarda el flujo y prueba la acción.
- Usa Vista previa para comprobar el archivo seleccionado.
- Si se mueve o renombra el archivo, Event Flow lo muestra como no encontrado. Haz clic en Volver a vincular (Relink) y elige su nueva ubicación; los flujos existentes seguirán funcionando.
- Usa Mostrar en carpeta (Reveal in Folder) cuando necesites localizar el archivo original.
- Mantén SSApp en funcionamiento mientras OBS use la URL local de Flow Actions.
- No compartas la URL generada. Contiene una credencial aleatoria privada que protege el servidor local.
Usa la URL local generada de Flow Actions. La página alojada de https://socialstream.ninja/actions.html no puede resolver un ID de medios de la biblioteca de escritorio.
Alternativa avanzada: ejecuta tu propio servidor local
La siguiente configuración manual sigue disponible si no usas la Biblioteca multimedia local gestionada de SSApp.
Descarga y extrae la carpeta de código de Social Stream Ninja, y luego crea dentro una carpeta llamada user-media .
C:\SSN\social_stream\
actions.html
user-media\
audio\booty.mp3
images\reward.png
video\celebration.mp4
Iniciar el servidor HTTP local manual
- Instala Python si todavía no está instalado.
- Abre PowerShell o el Símbolo del sistema y ejecuta este comando. Deja la ventana abierta mientras transmites.
Comando de Windows
py -m http.server 8765 --bind 127.0.0.1 --directory "C:\SSN\social_stream"
Comando de macOS o Linux
python3 -m http.server 8765 --bind 127.0.0.1 --directory "/path/to/social_stream"
URL de Flow Actions para la fuente de navegador de OBS
http://127.0.0.1:8765/actions.html?session=YOUR_SESSION_ID
URL multimedia para pegar en Event Flow
http://127.0.0.1:8765/user-media/audio/booty.mp3 http://127.0.0.1:8765/user-media/images/reward.png http://127.0.0.1:8765/user-media/video/celebration.mp4
127.0.0.1:8765/actions.html127.0.0.1:8765/user-media/...La opción --bind 127.0.0.1 mantiene el servidor en este equipo. Este servidor sencillo está pensado para transmisiones locales, no para alojamiento público en Internet.
file://: funciona, pero es más frágil
Si no quieres ejecutar un servidor local, dirige OBS a una página local de Flow Actions y usa también URL de medios locales:
file:///C:/SSN/social_stream/actions.html?session=YOUR_SESSION_ID file:///C:/SSN/social_stream/user-media/audio/booty.mp3
- Usa barras inclinadas normales y evita espacios o caracteres especiales en los nombres de carpetas y archivos.
- Tanto la página Flow Actions como los archivos multimedia deben ser locales. Una página alojada de
actions.htmlno puede leer esa ruta. - Si OBS rechaza un archivo local, usa el método del servidor HTTP local descrito arriba.
¿Y la extensión de Chrome?
La extensión usa el mismo formato de Event Flow, por lo que los flujos creados en el escritorio siguen siendo compatibles. Las acciones locales guardan un ID multimedia opaco en lugar de una ruta de Windows, macOS o Linux.
La extensión no puede exponer por sí sola archivos arbitrarios de tu disco a OBS. Sin un puente complementario compatible, usa Subir (Upload) o una URL alojada normal. Si un flujo importado hace referencia a medios locales, la extensión explica que se necesita la aplicación de escritorio o el puente, en lugar de fallar sin avisar.
Opción 3: alojar una biblioteca más grande en Internet
| Proveedor | Ideal para | Notas importantes |
|---|---|---|
| Cloudflare R2 | La mejor opción general para una biblioteca pública de alertas. | El almacenamiento Standard incluye actualmente 10 GB-mes al mes y salida gratuita a Internet. Usa un dominio personalizado para producción; r2.dev está sujeto a límites de frecuencia y está pensado para desarrollo. |
| Backblaze B2 | Almacenamiento económico compatible con S3 con URL públicas de archivos. | Los primeros 10 GB son actualmente gratuitos; después de las cantidades incluidas se cobra el almacenamiento y el exceso de transferencia de salida. |
| Amazon S3 u otro alojamiento compatible con S3 | Cuentas en la nube existentes y controles de acceso avanzados. | Habilita la lectura pública de los archivos multimedia, establece los tipos de contenido correctos y añade una regla CORS de solo lectura si las solicitudes del navegador lo requieren. |
| GitHub | Unos pocos archivos públicos pequeños o descargas ocasionales de versiones. | Los repositorios normales bloquean los archivos de más de 100 MiB, y los sitios de GitHub Pages tienen un límite de 1 GB publicado. Las versiones permiten archivos más grandes, pero resultan incómodas para gestionar una biblioteca multimedia de alertas. |
Público significa público. Cualquiera que tenga la URL del objeto puede acceder al archivo multimedia. No subas archivos privados, con licencia o personales que no deban compartirse.
Configuración de Cloudflare R2
- Crea un bucket de R2 con la clase de almacenamiento Standard .
- Sube tus archivos multimedia con nombres claros de carpetas, como
audio/,images/, yvideo/. - En los Ajustes del bucket, habilita el acceso público. Usa la URL pública de desarrollo solo para pruebas, o conecta un dominio personalizado para el uso habitual en directo.
- Abre la URL de un objeto en una ventana privada o de incógnito. Debe cargar directamente el archivo sin pedir inicio de sesión ni mostrar una página para compartir.
- Pega esa URL HTTPS directa en la acción de Event Flow.
Las imágenes y el audio normales suelen cargar sin ajustes CORS personalizados. Si una superposición personalizada, fuente, reproductor de vídeo o solicitud del navegador informa de un error CORS, abre Bucket → Ajustes → Política CORS y añade una política de solo lectura:
[
{
"AllowedOrigins": [
"https://socialstream.ninja",
"http://127.0.0.1:8765"
],
"AllowedMethods": ["GET", "HEAD"],
"AllowedHeaders": ["Range"],
"ExposeHeaders": [
"Content-Length",
"Content-Range",
"Accept-Ranges"
],
"MaxAgeSeconds": 3600
}
]
Añade el origen exacto de cualquier otra página que obtenga los archivos. Los orígenes no contienen rutas ni una barra final. Si un dominio personalizado ya estaba en caché antes de añadir CORS, vacía la caché de ese nombre de host.
Referencias oficiales: buckets públicos de R2, CORS de R2, y Precios de R2.
Ejemplo de CORS para Backblaze B2
Haz público el bucket, usa la URL directa del archivo y aplica una regla de solo descarga si el navegador informa de un error CORS:
[
{
"corsRuleName": "allowSSNMedia",
"allowedOrigins": ["https://socialstream.ninja"],
"allowedHeaders": ["range"],
"allowedOperations": ["b2_download_file_by_name"],
"exposeHeaders": [
"content-length",
"content-range",
"accept-ranges"
],
"maxAgeSeconds": 3600
}
]
Consulta la referencia oficial de reglas CORS.
Antes de transmitir en vivo
- Abre la URL multimedia exacta en una ventana privada o de incógnito. Debe cargar directamente el archivo.
- Usa Imagen para archivos PNG, JPG, WebP o GIF. Usa Vídeo/Contenido insertado para URL de vídeo o contenido insertado.
- Prefiere MP3 para audio, PNG/WebP/GIF para imágenes y MP4 H.264/AAC para compatibilidad de vídeo.
- Abre la página Flow Actions en OBS con el mismo ID de sesión que usa Event Flow.
- Usa el panel de pruebas de Event Flow y luego actualiza una vez la fuente de navegador de OBS antes de la transmisión real.
- La URL descarga en lugar de reproducir: el alojamiento está enviando un tipo de contenido incorrecto o una respuesta solo de descarga.
- El archivo en la nube está bloqueado: hazlo público y revisa el origen, el método y las cabeceras CORS.
- No se encuentra el archivo local: abre la acción en SSApp y usa Volver a vincular (Relink).
- El servidor local está desconectado: inicia SSApp y vuelve a copiar la URL local de Flow Actions si han cambiado el puerto o el token de seguridad.
- Flow Actions alojado no puede reproducir el elemento local: sustituye la URL de OBS por la que genera SSApp.
- No llega nada a OBS: confirma que la URL de Flow Actions y Event Flow usen el mismo ID de sesión.