Gestire più di uno streaming provider per una web radio

Gestire più di uno streaming provider per una web radio

Se gestisci una Web Radio, se sei un consulente IT, o sei solo “uno dei tecnici” dietro le quinte di tale radio, tieni a mente i seguenti suggerimenti. Potrebbe esserci una parte dell’integrazione web con il tuo sito che potrebbe causare problemi futuri o molto lavoro. La maggior parte di questi problemi è correlata a servizi di terze parti che potresti utilizzare o meno, quindi analizziamone alcuni.

Streaming services

Se gestisci una Web Radio, sai già che hai bisogno di un servizio web di streaming per far ascoltare il tuo audio in streaming. A meno che tu non scelga una soluzione “all-in-house”, in cui hai un server con il tuo sito web, il tuo server di streaming e anche spazi per i podcast, probabilmente ti affidi ad alcuni servizi di streaming di terze parti. Questo è conveniente anche dal punto di vista economico, perché i server di streaming possono essere molto economici, e alcuni di essi hanno anche una soluzione una-tantum (hai pagato una volta sola). Questo in pratica significa che il tuo sito web ha un URL

https://www.myradiowebsite.com

Mentre il tuo servizio di streaming ha un URL diverso, forse qualcosa del genere

https://stream.thirdparty.org:8021/stream

Sebbene questa sia una buona soluzione e funzioni bene senza alcun problema, tieni presente che il tuo URL di streaming (https://stream.thirdparty.org:8021/stream) può essere utilizzato in più punti: il tuo sito Web è uno di questi, ma anche la tua app mobile, altre tue integrazioni con altri siti web, altri siti web aggregatori di webradio e così via.

Il rpblema : l’indirizzo di streaming

Quando utilizzi un provider di server di streaming, questo significa sostanzialmente che sei accoppiato a un url di streaming e se vuoi cambiare provider di server di streaming, devi aggiornare tutto con il tuo nuovo url di streaming: il tuo sito web, la tua app mobile, l’aggregatore di webradio sito web (es. Tunein). Inoltre, se hai bisogno di più ascoltatori, l’unico modo per farlo è pagare il tuo fornitore di server di streaming per un piano aggiornato.

The solution: a redirect proxy

La soluzione è impostare un semplice reindirizzamento che possa essere facilmente gestibile internamente. Il reindirizzamento dovrebbe aggiungere un URL di streaming di proprietà del tuo sito Web, quindi qualcosa del genere:

https://www.myradiowebsite.com/mystreaming --redirect to--> https://stream.thirdparty.org:8021/stream

Questo può essere ottenuto in diversi modi: il più semplice potrebbe probabilmente essere l’aggiunta di una regola nel tuo file .htaccess (se hai un hosting Apache) o una direttiva nella configurazione di ngnix, se il tuo hosting supporta nginx. La sintassi del reindirizzamento non è trattata in questo post, probabilmente potresti trovare quelli giusti semplicemente cercando su Internet. Voglio coprire una soluzione leggermente diversa che utilizza un approccio programmatico. È una soluzione di reindirizzamento PHP, ma so che può essere eseguita con qualsiasi altro linguaggio lato server. Più che avere solo un reindirizzamento, ho aggiunto la possibilità di un reindirizzamento ponderato casuale. L’idea è che puoi impostare un reindirizzamento distribuito in modo casuale, quindi se hai 2 fornitori di servizi di streaming…

server1 = https://my.webradioserver.com:8201/stream 
server2 = https://another.server.com/8020/stream

… puoi quindi pesare ad esempio impostare 50-50 in modo che un utente possa ascoltare il server1 o il server2 con un 50% di probabilità. Questo ti dà la possibilità di spostarti su un altro server con una rampa, oppure puoi aggiungere un altro server per aumentare i possibili ascoltatori e assegnare l’utente in modo casuale. Questa è la mia soluzione:

<?php header("Expires: on, 01 Jan 1970 00:00:00 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); function getRandomWeightedElement(array $weightedValues) { $rand = mt_rand(1, (int) array_sum($weightedValues)); foreach ($weightedValues as $key => $value) { $rand -= $value; if ($rand <= 0) { return $key; } } } $serverSTreaming1 = 'https://my.webradioserver.com:8201/stream'; $serverSTreaming2 = 'https://another.server.com/8020/stream'; $wheights = array($serverSTreaming1=>0, $serverSTreaming2=>100); header("location: ".getRandomWeightedElement($wheigths)); die();

La sezione $wheights = array($serverSTreaming1=>0, $serverSTreaming2=>100);

fa tutta la magia spostando tutto il traffico verso il  $serverSTreaming2, ma si può anche configurare con un peso di 50 e 50% 

$wheights = array($serverSTreaming1=>50, $serverSTreaming2=>50);

Questa soluzione potrebbe essere facilmente estesa con più fornitori di streaming e pesi diversi.

Giveaways

Con una soluzione di reindirizzamento, puoi facilmente cambiare il tuo provider di streaming con tutti i tuoi clienti come il tuo sito Web, la tua applicazione mobile, aggregatori di siti Web di terze parti ecc. Perché utilizzi l’URL di origine e poi cambi solo la destinazione del reindirizzamento. Puoi aggiungere più fonti e pesarle, come nel mio esempio.   Ti è piaciuto questo articolo? Considera una donazione!

MiroAdmin