Per persone banali che dicono quello che dicono gli altri
Find a file
2025-03-16 13:04:58 +01:00
.gitignore initial commit 2025-01-12 03:28:27 +01:00
listagiusta.py less cpu, more looping 2025-01-23 23:37:51 +01:00
m3u-to-link aggiungi m3u-to-link 2025-03-12 12:34:37 +01:00
ponte.py atomic write to output: prevent garbage output 2025-01-14 19:16:44 +01:00
README.md chiarisci problemi listagiusta 2025-03-12 12:34:59 +01:00
send.liq initial commit 2025-01-12 03:28:27 +01:00
timely.liq timely.liq supports id; easier for telnet 2025-03-16 13:04:58 +01:00

Ripetente

Una raccolta di strumenti utili per insegnare alla vostra radio a ripetere quello che dicono altre radio.

Interpretare il calc: ponte.py

ponteppì è un approccio spericolato ai radioautomation. Il DB è una pagina gestita da Ethercalc. La stessa pagina fa anche da log degli errori. Quello che il pad dice, lui fa: ovverosia, crea un file m3u appropriato.

ponte.py prende un calc e lo trasforma in un m3u.

Non solo, ma mette anche diagnostica all'interno dello stesso foglio di calcolo! In questo modo utilizzarlo è un po' meno magico.

Servire il file m3u

Il file m3u può ovviamente essere servito in HTTP in modo pubblico. Questo rende poi facile rimandare questo indirizzo da parte di qualsiasi radio automation. Purtroppo non tutti i software di radio automation sanno "capire" gli M3U correttamente.

Un esempio di software che non supporta il play di M3U da http è il metodo input.http di liquidsoap.

In questo caso, viene utile servire anche un redirect...

Redirect basato su file m3u

Il programma m3u-to-link "trasforma" un file m3u in un redirect. È pensato per apache. La logica è sufficientemente semplice che può sicuramente essere convertita anche per nginx o altri server.

In questo modo, i radio automation possono essere indirizzati non ad un file M3U, ma ad un redirect che punti agli effettivi indirizzi degli stream da rimandare

Player di playlist dinamiche

Molti player (incluso liquidsoap, ma non solo) sanno perfettamente caricare un M3U da un sito e riprodurlo. Il problema è che non si aspettano che la playlist stessa possa cambiare.

Per risolvere questo problema, c'è listagiusta.py, un semplice programma che controlla un'istanza di mpv mentre tiene d'occhio una playlist (fa polling). Ogni volta che la playlist cambia, dice a mpv di aggiornarsi.

La playlist può essere remota (usando HTTP o meglio HTTPS) oppure locale (un semplice file).

Stato attuale: Il programma funziona, ma abbiamo dei bug strani: l'audio spesso si sente male, poi dopo un restart riparte giusto. Chissà!

listagiusta dentro liquidsoap

Questo comando deve essere integrato dentro liquidsoap, cosa non difficile grazie ad input.external.rawaudio, come dimostrato nel file di esempio send.liq.

Tutto insieme

Lanciare queste due cose in parallelo:

  • ponte.py 5 ILVOSTROCALC def.m3u.
  • ./send.liq def.m3u

Liquidsoap: sorgenti a tempo

Se usate un semplice switch che indica, nel predicate, un orario, e lo abbinate ad un input.http, il vostro liquidsoap non partirà nelle ore indicate, ma all'inizio. Questo probabilmente non è quello che volete: è inefficiente nel migliore dei casi, ma può fare cose sbagliate (ad esempio in caso di redirect) in altri casi.

timely.liq mostra come fare per attivare/disattivare sorgenti al momento giusto.