API de PLAYDECK

La API de PLAYDECK es una herramienta que permite a cualquier persona interactuar con PLAYDECK. En este artículo se explica cómo empezar a desarrollar con la API:

En este artículo:
Introducción
Ejemplos
Implementar la API


Introducción

La API de PLAYDECK es bidireccional: recibes el estado de la reproducción, pero también puedes enviar comandos a PLAYDECK.

La API se basa en WebSockets: forman parte de JavaScript, por lo que puedes desarrollar en JavaScript, Node.js o TypeScript. El puerto WebSocket es fijo (11411) y siempre está habilitado en PLAYDECK.

Decidimos optar por WebSockets porque:

  • Funciona en ambos sentidos: desde y hacia PLAYDECK
  • No requiere instalación: utiliza cualquier editor de texto
  • No se requiere ninguna medida específica de seguridad de red
  • Es fácil crear tu propia interfaz de usuario o animación con HTML


¿Qué se puede enviar a PLAYDECK?

  • Reproducir bloques, clips, superposiciones o acciones
  • Iniciar/detener recursos de vídeo, como transmisiones en directo


¿Qué se puede obtener de PLAYDECK?

  • Eventos (por ejemplo, el inicio de un bloque o un clip)
  • Estado de la emisión (por ejemplo, qué se está emitiendo y el tiempo restante del bloque)
  • Contenido (por ejemplo, una lista de reproducción completa con bloques y clips)


Ejemplos

1) Acompañante

bitfocus Companion utiliza la API de PLAYDECK en el módulo PLAYDECK. Esto te permite hacerte una idea rápida de lo que la API es capaz de hacer:
https://playdeck.tv/howto/companion/


2) Vista del director

La API también es utilizada por Director View, que forma parte de PLAYDECK. Puedes encontrar las plantillas HTML aquí:
c:\Usuarios\Público\Documentos\JoyEventMedia\Playdeck\Plantillas-HTML\Vista-del-director


3) Superposiciones HTML

La API también se utiliza en algunos ejemplos de introducción al HTML, que puedes encontrar aquí:
c:\Usuarios\Público\Documentos\JoyEventMedia\Playdeck\Plantillas-HTML\Plantillas-de-superposición


Implementar la API

Hemos preparado algunos ejemplos para que puedas revisar rápidamente un script que funciona. Te recomendamos que los revises en orden, ya que se complementan entre sí.

Consejo n.º 1: Puedes hacer doble clic en cualquier archivo HTML para abrirlo en el navegador y ejecutar el script o la API.

Consejo n.º 2: Puedes editar el archivo “WebSocketSDK\Version.js” para cambiar la dirección IP


1) Conexión nativa (sin la API)

Empecemos con algo muy sencillo:
c:\Usuarios\Público\Documentos\JoyEventMedia\Playdeck\Plantillas-HTML\Automatización-y-Interfaz-de-usuario\SampleMinimalistic.html

Esto abrirá el WebSocket con PLAYDECK mediante código JavaScript nativo y enviará un comando para reproducir el primer clip del primer bloque.

Otro ejemplo es este, en el que puedes hacer clic en los botones del código HTML para iniciar la reproducción en PLAYDECK:
c:\Usuarios\Público\Documentos\JoyEventMedia\Playdeck\Plantillas-HTML\Automatización-e-Interfaz-de-usuario\Interfaz-de-usuario-de-ejemplo.html


2) Conexión minimalista (CON API)

Este ejemplo sirve para presentar la API:
c:\Usuarios\Público\Documentos\JoyEventMedia\Playdeck\Plantillas-HTML\Automatización-e-Interfaz-de-usuario\SampleMinimalisticSDK.html

Utiliza la subcarpeta “WebSocketAPI” e incluye su SCRIPT PRINCIPAL “AppInterface.js”, que actúa como una especie de “cargador” para toda la API.

La API se encargará ahora de tu conexión WebSocket con PLAYDECK, por lo que no tendrás que programarla manualmente. La API también pone a disposición de JavaScript un marco de plantillas. El nombre de la plantilla se deriva del nombre del archivo, por lo que debe coincidir. Hay varias funciones predefinidas disponibles. Para este ejemplo solo utilizaremos “Start”: esta función será llamada por la API una vez que se haya establecido correctamente la conexión WebSocket con PLAYDECK. En este ejemplo, reproducirá el primer clip del canal 1.


3) Más funciones del marco

Además de “Start”, hay muchas más funciones del marco disponibles:
c:\Usuarios\Público\Documentos\JoyEventMedia\Playdeck\Plantillas-HTML\Automatización-y-Interfaz-de-usuario\SamplePlayRandomClip.html

Consulte los comentarios del archivo JS para ver todas las funciones disponibles.

Si abres la consola del navegador (normalmente con la tecla F12), podrás ver el resultado de las instrucciones “console.log”.


4) Analizar los datos del proyecto

Para acceder a todos los clips, se dispone de la función “DataProject”; este ejemplo muestra cómo enumerar los datos del proyecto:
c:\Usuarios\Público\Documentos\JoyEventMedia\Playdeck\Plantillas-HTML\Automatización-y-Interfaz-de-usuario\Lista-de-reproducción-de-programa-de-muestra.html


5) Ejemplo de horario personalizado

El último ejemplo muestra un script completo y operativo para una programación personalizada fuera de PLAYDECK:
c:\Usuarios\Público\Documentos\JoyEventMedia\Playdeck\Plantillas-HTML\Automatización-e-Interfaz-de-usuario\Programa-semanal-de-ejemplo.html


Traducción

En este artículo se explica cómo trabajar en las traducciones de PLAYDECK.


Introducción

Los idiomas disponibles se han traducido previamente mediante herramientas en línea. Utilizamos DeepL para esto. Esto funciona muy bien con frases más largas (p. ej., “Configuración”), pero funciona muy mal con palabras sueltas (p. ej., «Entrada»).

Además, algunas traducciones ocupan más o menos espacio (en cuanto a número de caracteres). Esto podría hacer que algunas palabras no “caben” en un botón concreto. Si no es posible acortar la traducción, también podemos ampliar el botón.

Por estas razones, todas las lenguas necesitan un ajuste fino.


Flujo de trabajo

Las traducciones se editan mediante una herramienta externa llamada “SIL Editor”, en la que puedes cargar y editar nuestro idioma. A continuación, puedes obtener una vista previa de los cambios directamente en PLAYDECK.

Una vez que hayas terminado la edición, envíanos el archivo de idioma y nosotros importaremos tus cambios a la aplicación.


Descargas e instalación

Necesitas PLAYDECK en la versión 4.2b6, que puedes descargar aquí:
https://downloads.playdeck.tv/4.2b6/PlaydeckSetup.exe

Necesitas el SIL Editor, que puedes encontrar aquí (descarga solo “SIL Editor”):
https://www.sicomponents.com/download/

Y necesitas el archivo de idioma con las traducciones:
https://downloads.playdeck.tv/4.2b6/PLAYDECK.sib

—————-

Instala PLAYDECK y el editor SIL, y luego guarda el archivo SIB aquí:
c:\Usuarios\Público\Documentos\JoyEventMedia\Playdeck\PLAYDECK.sib

Si PLAYDECK detecta un archivo SIB en esta ubicación, PREFERIRÁ utilizarlo en lugar de la traducción interna.


Prueba

Intentemos editar algo y comprobemos si PLAYDECK actualiza la traducción. Haz doble clic en el archivo SIB, lo que abrirá el editor SIL. Abre la primera rama “Tf_about”, que corresponde a la ventana emergente “Acerca de” en PLAYDECK. Haz clic en “Captions”, que representa todos los campos de texto estáticos de la ventana emergente. Puedes minimizar todas las columnas de idiomas que no te interesen; en este ejemplo me centro en el ALEMÁN (puede ser cualquier otro idioma). Ahora, para “l_header”, cambia la traducción por algo llamativo; en este caso, simplemente añado «XXX» delante del texto para probar.

Guarda el archivo SIB (o pulsa CTRL+S). En PLAYDECK, cambia a «GERMAN» en la configuración de la aplicación:

Después de reiniciar PLAYDECK, abre la ventana emergente “Acerca de” a través de «Licencia > PLAYDECK». Ahora debería mostrar los cambios que has realizado en la edición de texto. No olvides volver a cambiarlo tras la prueba. Si esto no funciona, ponte en contacto con nosotros.



Por dónde empezar

Recomendamos editar primero todos los textos dinámicos, ya que se utilizan repetidamente en PLAYDECK y, por lo tanto, constituyen la “traducción base”. Los encontrarás en “Tf_lang > Strings”:

Una vez hecho esto, puedes decidir por ti mismo: puedes buscar en PLAYDECK los ajustes necesarios revisando todos los ajustes y ventanas emergentes, o bien puedes revisar todas las ventanas emergentes directamente en el editor SIL.



Orientación y edición

El panel izquierdo del editor muestra todas las ventanas emergentes disponibles en PLAYDECK.

Destacan “principal” (interfaz de usuario principal) y “configuración” (todas las opciones de configuración). Estas se dividen a su vez en grupos:

Los grupos tienen el siguiente significado (solo se mencionan los que necesitas):

Leyendas: Todos los textos estáticos visibles en la ventana emergente, principalmente etiquetas, botones y menús
Colecciones: Se utiliza muy poco. Solo en algunas opciones de diálogo.
Ampliado: También textos estáticos, pero sobre todo titulares
Consejos: Textos que aparecen al pasar el ratón por encima, por ejemplo, el botón “?” o los iconos de la barra de herramientas
Varias líneas: Encabezados de tabla y campos desplegables con selección múltiple. Se editan haciendo doble clic.
Otros: Se utiliza muy poco. Solo en algunas opciones de diálogo.
Cadenas: Bloques de texto dinámicos. Solo se utilizan en “Tf_lang”

En la gran tabla central, donde se editan los textos, también hay una columna llamada “String ID”, que representa el nombre interno del elemento correspondiente en PLAYDECK. Esto “puede” resultar útil en algunos casos en los que se busque algo.

A continuación, te ofrecemos algunos datos sobre la elección del nombre:
l_: Etiquetas de texto estáticas
b_ o mb_: Botones
cb_: Casilla de verificación con texto
rb_: Botón de opción con texto
pm_: Menú emergente o menú contextual
os_ u op_: Menús desplegables



Consejos para la edición

1) Ten en cuenta que hay varias repeticiones (el mismo texto una y otra vez), que no se pueden evitar si, por ejemplo, el mismo texto aparece varias veces en PLAYDECK (p. ej., en «Configuración»).

2) Algunos textos tampoco se pueden traducir en absoluto, ya que están profundamente integrados en el sistema o en el motor de vídeo, que suelen ser también opciones de configuración (menús desplegables).

3) Puedes buscar cualquier texto en el editor o hacer clic en el encabezado de la columna para ordenar los datos. Esto te ayudará a localizar el original en inglés y a encontrar los campos de texto que deseas editar.

4) Si no se ha proporcionado ninguna traducción (campo vacío), se utilizará automáticamente el original en inglés. Por lo tanto, puedes BORRAR la traducción para obligar a PLAYDECK a utilizar el original en inglés.

5) Todas las traducciones de varias líneas deben tener el mismo número de líneas; de lo contrario, es posible que PLAYDECK no se inicie o no funcione correctamente. Para editar las traducciones de varias líneas, hay que hacer doble clic en la traducción.

6) Algunos campos de texto contienen caracteres muy específicos que facilitan el formato y la legibilidad en PLAYDECK. Estos son “<br>” (salto de línea), o ” ” (espacio en blanco), o “:”, o algunos iconos UTF-8. Solo hay que tenerlos en cuenta y saber que eliminarlos puede reducir la legibilidad.

7) Most Languages have “lower” and “UPPER” case and some Translations (“Strings” in “Tf_lang”) provide both cases, if needed. For languages that don’t have “case”, use the same translation in both fields.


Enlaces externos

Puedes cambiar la ubicación de la mayoría de los enlaces de PLAYDECK, por ejemplo, la dirección de correo electrónico de asistencia, así como los enlaces a la documentación en línea y a otros sitios web.

Tienes permiso para hacerlo. Solo te pedimos que te asegures de que se respondan los correos electrónicos y de que los enlaces del sitio web funcionen y se actualicen con regularidad.


Contenidos externos

También se han traducido todas las imágenes de la sección “PRIMEROS PASOS” y todos los archivos de documentación. Puedes encontrarlos aquí:
c:\Archivos de programa (x86)\JoyEventMedia\Playdeck\lang

Aunque no hay ninguna urgencia por sustituir o actualizar esos archivos, puedes hacerlo si lo deseas.

La carpeta “GetStarted” contiene todas las imágenes PNG que se muestran en el cuadro de diálogo «Get-Started»:


La carpeta “Documentación” contiene todos los archivos TXT que se abren como ayuda especializada en diversas ocasiones en PLAYDECK:

Si decides actualizar estos archivos, no les cambies el nombre y envíanoslos en el mismo formato que los originales (PNG con las mismas dimensiones y TXT con una estructura similar).