web-dev-qa-db-fra.com

Comment faire fonctionner une station de radio Internet automatisée dans un environnement de serveur?

J'utilise un environnement de serveur Ubuntu avec icecast-2.3.2 et ices-0.4.0 pour activer la diffusion en continu sur Internet-radio.

J'ai un répertoire avec des fichiers de musique, principalement MP3, appelons-le /PATH/TO/MUSIC. J'ai aussi des répertoires avec jingles et podcasts. /PATH/TO/JINGLES et /PATH/TO/PODCASTS.

Jusqu'à présent, mon serveur est opérationnel.

Qu'est-ce qui fonctionne:

  • Créer des playlists aléatoires quotidiennes à partir du répertoire music à l'aide d'un script et d'un travail cron.
  • Exécution d’un serveur IceCast2 et diffusion en continu du fichier de liste de lecture à l’aide de IceS.

Ma question est maintenant:

  • Comment lire des podcasts et des jingles à des heures précises? Par exemple, chaque heure complète un certain jingle ou tous les jeudis à 20 heures. un certain podcast?

J'ai essayé de chercher sur Internet à ce sujet mais il semble qu'il n'y ait pas de "solution finale" à ce problème d'automatisation de la radio et il semble également que beaucoup de solutions sont plutôt bidon, n'est-ce pas?

N'oubliez pas qu'il s'agit d'un environnement de serveur, les solutions avec une interface graphique ne vous aideront pas.

J'apprécie toutes les astuces et expériences sur ce sujet!

5
Waqar Lim

La réponse est: du savon liquide.

liquidsoap , couteau suisse pour la diffusion multimédia en continu, notamment utilisé pour les netradios et les webtv. Il a des tonnes de fonctionnalités, c'est gratuit et c'est open-source!

Il m'a fallu quelques jours pour comprendre comment les flux sont générés. liquidsoap se compose de petits scripts décrivant les paramètres du flux. un script simple qui charge et lit une playlist MP3, appelons-le basic.liq, est présenté ci-dessous:

#!/usr/bin/liquidsoap

# load a playlist file
stream = playlist("/path/to/playlist.pls")

# output the playlist to icecast
source = output.icecast(%mp3, Host="localhost", port="8000",
         mount="listen.m3u", password="hackme")
source(stream)

tester le script avec:

$ liquidsoap --check ./basic.liq

et lancez le script avec:

$ liquidsoap ./basic.liq &

mais le savon liquide est beaucoup plus puissant. par exemple, pour jouer un jingle toutes les heures, ajoutez simplement:

# add a jingle every full hour
jingle = single("/path/to/jingle.mp3")
add([stream,switch([({0m0s},jingle)])])

mais beaucoup plus de fonctionnalités sont décrites sur la page d'accueil:

  • playlists statiques ou dynamiques
  • sélection temporelle de la source audio
  • insertions ou mélanges de jingles à base de quota- ou dans le temps
  • interventions DJ en direct
  • demandes interactives des utilisateurs
  • transitions entièrement personnalisables, par exemple fondu enchaîné
  • synthèse vocale des métadonnées de piste
  • accès simple aux fichiers distants
  • et beaucoup plus

Il vaut la peine de consulter le guide guide de démarrage rapide , un plus exemple complexe et le documentation .

2
Waqar Lim

AzuraCast: un gestionnaire de radio Web auto-hébergé

Source: https://github.com/AzuraCast/AzuraCast

Azuracast est une suite de gestion de radio Web auto-hébergée, comprenant des outils d'installation clé en main et une application Web facile à utiliser pour gérer vos stations. http://azuracast.com/

Caractéristiques

Avec AzuraCast, vous pouvez:

  • Gérez vos médias: téléchargez des chansons à partir du Web, organisez la musique dans des dossiers et prévisualisez des chansons dans votre navigateur.
  • Créer des listes de lecture: Configurez des listes de lecture standard qui jouent tout le temps, des listes de lecture programmées pour des périodes de temps ou des listes de lecture spéciales qui jouent une fois par x morceau ou une fois par x minutes.
  • Configurer des DJ en direct: activez ou désactivez la diffusion en direct à partir de streamers/DJ et créez des comptes individuels pour chaque streamer à utiliser.
  • Prendre les demandes d'écoute: laissez vos auditeurs demander des chansons spécifiques à partir de vos listes de lecture, à la fois via une API et une simple page d'écoute destinée au public.
  • Analyses et rapports: gardez une trace de chaque aspect des auditeurs de votre station au fil du temps. Voir les rapports de la performance de chaque chanson.
  • Pilote automatique de station: AzuraCast peut attribuer automatiquement des chansons à une liste de lecture en fonction de l'impact de la chanson sur les numéros d'auditeur.
  • Gestion déléguée: Créez et supprimez des comptes d’administrateur distincts pour chaque gestionnaire de station.
  • ...et plus.

Logiciel Web Radio pris en charge

  • AzuraCast utilise LiquidSoap comme "AutoDJ" pour mélanger les chansons et les listes de lecture et fournir un flux radio toujours en ligne. Vous pouvez vous connecter à LiquidSoap et diffuser vos propres événements en direct en tant que DJ.

  • Pour diffuser votre station de radio au public, AzuraCast prend en charge les deux normes de référence de la radio Web, IceCast (v2.4) et ShoutCast (v2). Vous pouvez changer celle que votre station utilise quand vous le souhaitez.

Vous pouvez également utiliser AzuraCast en tant qu'outil pour relayer ou collecter des statistiques d'auditeur et d'autres données sur les stations non gérées par AzuraCast.

Systèmes d'exploitation supportés

Il existe deux manières d'installer AzuraCast:

  1. Utilisation de Docker et Docker Compose (recommandé): Cette méthode contient toutes les dépendances AzuraCast dans des images de conteneur prédéfinies. La mise à jour et l'installation sont plus rapides et les problèmes de compatibilité logicielle sont beaucoup moins nombreux. Cette méthode fonctionne sur tout ordinateur prenant en charge la dernière version de Docker Engine et Docker Compose. les deux peuvent être installés dans le cadre du script d'installation AzuraCast.

  2. Installation traditionnelle (Ubuntu 16.04 uniquement): À partir d’une image nette d’Ubuntu, vous pouvez installer AzuraCast directement sur votre serveur à l’aide des scripts d’installation inclus, qui utilisent Ansible pour gérer les dépendances. L'installation et la mise à jour sont plus lentes avec cette méthode, mais vous avez plus de contrôle sur le logiciel une fois installé. Si d'autres logiciels sont installés sur votre serveur, il est possible que AzuraCast soit en conflit. Par conséquent, commencez toujours par une nouvelle installation à l'aide de cette méthode.

Nous cherchons toujours à élargir notre compatibilité avec les systèmes d’exploitation hôtes, et toute aide est nécessaire pour créer de nouveaux scripts de déploiement pour d’autres environnements.

Ce qui est inclus avec AzuraCast

Que vous utilisiez le programme d'installation traditionnel ou les conteneurs Docker, AzuraCast dépend de la même pile de logiciels pour fonctionner:

  • NGINX pour la diffusion de pages Web et le proxy radio
  • MariaDB comme base de données primaire
  • PHP 7.2 alimentant l'application Web
  • InfluxDB pour les statistiques chronologiques
  • Redis pour les sessions, la base de données et la mise en cache générale
  • LiquidSoap comme "AutoDJ" toujours actif
  • IceCast 2 en tant qu'interface de radiodiffusion (Icecast-KH installé sur les plates-formes prises en charge)
  • ShoutCast 2 DNAS comme interface radio alternative (x86/x64 uniquement) Installation d’AzuraCast

Installation d'AzuraCast

Installation de Docker (recommandé)

Nous vous recommandons vivement d’installer et d’utiliser AzuraCast via Docker. Tous les packages logiciels nécessaires sont générés par nos outils automatisés. L'installation est donc aussi simple que de simplement extraire les images précompilées. Ne vous souciez plus de la compatibilité avec le système d'exploitation de votre hôte. Ainsi, tout hôte (y compris Windows et MacOS) fonctionnera parfaitement.

  1. Installer Docker et Docker Compose Votre ordinateur ou serveur doit exécuter la dernière version de Docker et Docker Compose. Vous pouvez utiliser les scripts faciles ci-dessous pour installer les deux si vous partez de zéro:

    wget -qO- https://get.docker.com/ | sh
    COMPOSE_VERSION=`git ls-remote https://github.com/docker/compose | grep refs/tags | grep -oP "[0-9]+\.[0-9][0-9]+\.[0-9]+$" | tail -n 1`
    Sudo sh -c "curl -L https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose"
    Sudo chmod +x /usr/local/bin/docker-compose
    Sudo sh -c "curl -L https://raw.githubusercontent.com/docker/compose/${COMPOSE_VERSION}/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose"
    

    Si vous n'installez pas en tant qu'utilisateur root, des instructions peuvent vous être données pour ajouter votre utilisateur actuel au groupe Docker (c'est-à-dire usermod -aG docker $user). Vous devez vous déconnecter ou redémarrer après l'avoir fait avant de continuer ci-dessous.

  2. Extraire le fichier de composition AzuraCast Docker

    Choisissez l'emplacement où vous souhaitez que le fichier de configuration d'AzuraCast existe sur votre serveur sur l'ordinateur hôte.

    Dans ce répertoire, exécutez cette commande pour extraire le fichier de configuration de Docker Compose.

    curl -L https://raw.githubusercontent.com/AzuraCast/AzuraCast/master/docker-compose.yml > docker-compose.yml
    
  3. Exécutez le programme d'installation AzuraCast Docker

    À partir du répertoire contenant votre fichier de configuration YML, exécutez les commandes suivantes:

    docker-compose pull  
    docker-compose run --rm cli azuracast_install
    docker-compose up -d
    

Configuration de HTTPS avec LetsEncrypt

AzuraCast prend désormais en charge le chiffrement complet avec LetsEncrypt. LetsEncrypt propose des certificats SSL gratuits avec validation et renouvellement faciles.

Tout d’abord, assurez-vous que votre instance AzuraCast est configurée et utilisée à partir du domaine que vous souhaitez utiliser. Ensuite, exécutez la commande suivante pour générer un nouveau certificat LetsEncrypt:

docker-compose run --rm letsencrypt certonly --webroot -w /var/www/letsencrypt  

Vous serez invité à spécifier votre adresse e-mail et votre nom de domaine. La validation se fera automatiquement. Une fois l'opération terminée, exécutez cette commande pour indiquer à nginx d'utiliser votre nouveau certificat LetsEncrypt:

docker-compose run --rm nginx letsencrypt_connect YOURDOMAIN.example.com

Rechargez nginx en utilisant la commande ci-dessous:

docker-compose kill -s SIGHUP nginx

Votre certificat LetsEncrypt est valable 3 mois. Pour renouveler les certificats, exécutez cette commande:

docker-compose run --rm letsencrypt renew --webroot -w /var/www/letsencrypt  

Mise à jour avec Docker

Dans le répertoire de base où AzuraCast est copié, exécutez les commandes suivantes:

docker-compose down
docker-compose pull
docker-compose run --rm cli azuracast_update  
docker-compose up -d  

Sauvegarde et restauration du volume de Docker

AzuraCast dispose de scripts utilitaires permettant une sauvegarde et une restauration faciles des volumes Docker.

Vous pouvez utiliser docker-backup.sh pour sauvegarder des volumes existants. Vous pouvez spécifier un chemin personnalisé comme argument du script. Par défaut, le script crée un fichier, backup.tar.gz, à la racine de l'application.

Pour restaurer l'état de l'application à partir de ce fichier compressé, utilisez docker-restore.sh et indiquez-lui le chemin du fichier de sauvegarde existant.

Notez que le processus de restauration remplacera toute base de données ou support AzuraCast existant dans les volumes de Docker.

Installation traditionnelle (Ubuntu 16.04 uniquement)

Remarque: Certains hôtes Web proposent des versions personnalisées d'Ubuntu incluant différents référentiels de logiciels. Cela pourrait entraîner des problèmes de compatibilité avec AzuraCast. On sait que de nombreux fournisseurs VPS fonctionnent immédiatement avec AzuraCast (OVH, DigitalOcean, Vultr, etc.) et sont donc fortement recommandés si vous envisagez d'utiliser le programme d'installation traditionnel.

AzuraCast est optimisé pour la vitesse et les performances, et peut fonctionner sur du matériel très bon marché, du Raspberry Pi 3 aux VPS de plus bas niveaux proposés par la plupart des fournisseurs.

Étant donné qu'AzuraCast installe ses propres outils radio, bases de données et serveurs Web, vous devez toujours installer AzuraCast sur une instance de serveur "propre" sur laquelle aucun autre logiciel Web ou radio n'a été installé auparavant.

Exécutez ces commandes en tant qu’utilisateur root pour configurer votre serveur AzuraCast:

apt-get update
apt-get install -q -y git
mkdir -p /var/azuracast/www
cd /var/azuracast/www
git clone https://github.com/AzuraCast/AzuraCast.git .
chmod a+x install.sh
./install.sh

Si vous ne pouvez pas vous connecter directement en tant que compte root sur votre serveur, essayez d'exécuter Sudo su avant d'exécuter les commandes ci-dessus.

Le processus d'installation prendra entre 5 et 15 minutes, en fonction de votre connexion Internet.

Une fois l'installation basée sur le terminal terminée, vous pouvez visiter l'adresse IP publique de votre serveur ( http: //ip.of.votre.server/ ) pour terminer la configuration Web.

Mise à jour

AzuraCast inclut également un script de mise à jour très pratique qui extrait la dernière copie de la base de code de Git, vide les caches du site et effectue les mises à jour nécessaires de la base de données. Exécutez ces commandes en tant qu'utilisateur disposant des autorisations Sudo:

cd /var/azuracast/www
Sudo chmod a+x update.sh
Sudo ./update.sh
2
Spiros R Karasavvas