Skip to content

simone7121/GRSTelePromter

Repository files navigation

GRSTelePrompter

Node.js License: PolyForm Noncommercial 1.0.0

GRSTelePrompter — Real-Time Radio Dashboard

Dashboard web in tempo reale per la regia radiofonica. Il progetto legge i dati della Web API di RadioDJ, li normalizza e li invia ai browser via WebSocket. Include inoltre un secondo servizio per inviare messaggi rapidi dalla regia a un display dedicato allo speaker.

Il nome storico della repository è GRSTelePromter; nella documentazione viene usata la grafia GRSTelePrompter.

Funzionalità

  • brano in onda con titolo, artista, album, anno, categoria e sottocategoria;
  • durata, tempo trascorso, tempo rimanente e countdown dell'intro;
  • barra di avanzamento interpolata, marker INTRO e CHIUSURA e avvisi visivi finali;
  • elenco delle quattro tracce successive, con rilevamento sweep/jingle;
  • indicatore dello stato della sincronizzazione WebSocket;
  • pannello regia per inviare testo libero o messaggi preimpostati allo speaker;
  • configurazione backend tramite variabili ambiente.

Componenti

Il repository contiene due processi separati:

Servizio Avvio HTTP WebSocket Pagine principali
Dashboard RadioDJ npm start 3000 8081 /radiodjv5.html
Messaggi speaker node server.js 3020 3020 /admin.html, /screen.html
flowchart LR
    R[RadioDJ Web API] -->|XML via HTTP| B[serverrdj.js]
    B -->|file statici :3000| D[Dashboard browser]
    B -->|JSON via WS :8081| D
    A[Pannello admin] -->|testo via WS :3020| T[server.js]
    T -->|broadcast| S[Display speaker]
Loading

Requisiti

  • Node.js 18 o successivo;
  • npm;
  • RadioDJ con Web API attiva, per la dashboard musicale;
  • connettività tra server, RadioDJ e browser sulle porte configurate.

Avvio rapido della dashboard RadioDJ

git clone https://github.com/simone7121/GRSTelePromter.git
Set-Location GRSTelePromter
npm ci
Copy-Item .env.example .env

Modifica .env con l'URL e l'eventuale credenziale della Web API RadioDJ, quindi avvia:

npm start

Apri http://localhost:3000/radiodjv5.html.

Avvio rapido dei messaggi speaker

node server.js

Apri:

  • http://localhost:3020/admin.html sul computer della regia;
  • http://localhost:3020/screen.html sul display dello speaker.

I due servizi possono essere eseguiti contemporaneamente perché usano porte diverse.

Configurazione essenziale

Variabile Default Descrizione
HTTP_PORT 3000 Porta HTTP della dashboard RadioDJ
WS_PORT 8081 Porta WebSocket della dashboard RadioDJ
RADIODJ_BASE_URL http://127.0.0.1:5555 URL base della Web API RadioDJ
RADIODJ_AUTH vuoto Credenziale aggiunta come parametro auth alle richieste RadioDJ
RADIODJ_POLL_MS 50 Intervallo di polling per ogni client WebSocket
NEXT_TRACKS_COUNT 4 Numero di tracce successive richieste al backend
RADIODJ_DEBUG_FIELDS 0 Con 1, stampa in console i campi ricevuti da RadioDJ

Se modifichi WS_PORT, aggiorna anche WS_URL in public/app.config.js. La UI radiodjv5.html dispone di quattro righe, quindi valori di NEXT_TRACKS_COUNT superiori a 4 non vengono visualizzati integralmente.

La configurazione completa è descritta in docs/CONFIGURATION.md.

Struttura del repository

.
├── config/                 # configurazione backend
├── docs/                   # documentazione tecnica
├── public/                 # interfacce HTML/CSS/JavaScript
├── serverrdj.js            # dashboard RadioDJ
├── server.js               # relay messaggi speaker
├── .env.example            # esempio di configurazione
└── package.json

Le pagine radiodj.html e radiodjv2.html-radiodjv4.html sono versioni storiche. Per nuove installazioni usa radiodjv5.html, l'unica variante collegata a public/app.config.js.

Documentazione

Sicurezza e limiti attuali

I server non implementano autenticazione, autorizzazione, rate limiting o TLS. Sono pensati per una rete di regia fidata. Prima di esporli su Internet usa un reverse proxy HTTPS/WSS, limita gli accessi e proteggi le porte con firewall o VPN.

Il polling RadioDJ viene creato per ogni client WebSocket: aumentando i display aumenta anche il numero di richieste alla Web API. Il repository non include ancora test automatici.

Consulta SECURITY.md per segnalare una vulnerabilità.

Contribuire e supporto

Prima di proporre modifiche leggi CONTRIBUTING.md. Per assistenza usa le GitHub Issues seguendo le indicazioni in SUPPORT.md.

Licenza

Il software è distribuito secondo la PolyForm Noncommercial License 1.0.0. La licenza consente gli usi non commerciali definiti nel testo completo; non concede automaticamente il diritto a usi commerciali. Le dipendenze di terze parti restano soggette alle rispettive licenze.

About

Dashboard web in tempo reale per la regia radiofonica. Il progetto legge i dati della Web API di RadioDJ, li normalizza e li invia ai browser via WebSocket. Include inoltre un secondo servizio per inviare messaggi rapidi dalla regia a un display dedicato allo speaker.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors