Discourse Video Stream añade una integración perfecta de Cloudflare Stream para cargar y embeber contenido de video de formato largo y alta calidad en tu sitio de Discourse.
Resumen
Este plugin proporciona un flujo de trabajo completo para manejar archivos de video grandes con streaming de tasa de bits adaptativa, permitiendo a tus usuarios cargar videos directamente desde el compositor y reproducirlos con ajuste automático de calidad basado en las condiciones de su red.
Características Principales
Integración con el Compositor: Botón de barra de herramientas opcional para cargar videos directamente desde el compositor
Intercepción Automática de Cargas: Los videos que excedan un umbral de tamaño configurable se cargarán automáticamente en Cloudflare Stream en lugar del almacenamiento local
Cargas Reanudables: Basado en tus-js-clientpara cargas fiables de archivos mucho más allá de 200 MB con reanudación automática en caso de problemas de conexión
Proxy Seguro: El endpoint del lado del servidor genera URLs de carga de Cloudflare Stream de corta duración, manteniendo tus credenciales de API seguras
BBCode Personalizado: Sintaxis simple [video-stream id="..."]para embeber videos
Streaming Adaptativo: Integración con Shaka Player con manifiestos DASH para una reproducción fluida en diferentes velocidades de red
Controles de Reproducción: Interfaz de usuario integrada para selección de resolución y control de velocidad de reproducción
Instalación
Añade el plugin a tu app.yml:
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/xfalcox/discourse-video-stream.git
Luego reconstruye tu contenedor:
./launcher rebuild app
Configuración
Navega a Admin → Configuración → Transmisión de video y configura:
| Configuración | Descripción | Predeterminado |
|---|---|---|
| video_stream_enabled | Habilitar el plugin de transmisión de video | false |
| video_stream_account_id | Tu identificador de cuenta de Cloudflare | - |
| video_stream_api_token | Token de API con permisos Stream:Edit | - |
| video_stream_customer_subdomain | Tu subdominio de Cloudflare Stream (ej. customer-xxxxx.cloudflarestream.com) | - |
| video_stream_allowed_extensions | Lista de formatos de video permitidos separados por comas | mp4,webm,mov |
| video_stream_max_file_size | Tamaño máximo de archivo en MB (1-2000) | 500 |
| video_stream_intercept_native_uploads | Interceptar automáticamente cargas de video grandes | true |
| video_stream_intercept_threshold_mb | Umbral de tamaño en MB para intercepción automática (1-2000) | 10 |
Obtener Credenciales de Cloudflare Stream
- Inicia sesión en tu panel de Cloudflare
- Navega a Stream bajo tu cuenta
- Copia tu ID de Cuenta desde la vista general de Stream
- Crea un token de API con permisos Stream:Edit
- Anota tu subdominio de Cliente desde la configuración de Stream
Uso
Una vez configurado, los usuarios tienen dos formas de cargar videos:
Intercepción Automática
Cuando un usuario arrastra y suelta o selecciona un archivo de video que excede la configuración video_stream_intercept_threshold_mb, el plugin lo maneja automáticamente a través de Cloudflare Stream en lugar del almacenamiento local. Debes permitir las extensiones de archivo de video en la configuración de extensiones permitidas para que esto funcione.
Carga Manual
Los usuarios pueden hacer clic en el menú desplegable de la barra de herramientas del compositor (
) y seleccionar la opción de carga de video para cargar explícitamente a Cloudflare Stream.
Ambos métodos insertan una etiqueta BBCode [video-stream id="video_id"] que se renderiza como un reproductor de streaming adaptativo con controles de resolución y velocidad.
¿Por qué Cloudflare Stream?
Tenemos soporte para hacer lo mismo usando AWS en el código, y con Mux en GitHub - discourse/discourse-video, por lo que una alternativa más barata parecía una buena idea.
Requisitos
- Cuenta activa de Cloudflare con Stream habilitado
Fuente y Soporte
- Repositorio: GitHub - xfalcox/discourse-video-stream
Capturas de Pantalla
Demo
Visita mi sitio de prueba y sube algunos videos
https://discourse-on-a-pi5.falco.dev/t/test-video-upload-plugin/20?u=falco
Nota: Este no es un plugin #oficial.

