Canalblog
Editer l'article Suivre ce blog Administration + Créer mon blog
Publicité
Naissance d'une radio
5 mai 2005

Programmation Shell, PHP et mySql

       
Aujourd'hui j'ai commencé à me documenter sur la programmation shell. J'en avais jamais fait avant. Avant d'expliquer un peu la spécificité de la programmation shell voici mon idée. Je souhaite creé un petit script qui dans un répertoire contenant des fichiers ogg (par exemple la playlist d'une émission) que j'ai sélectionné auparavant se charge automatiquement de :

1. Compresser tous les fichiers pour qu'ils soient diffusables (en ogg mono 128kbits par exemple)
2. Recueillir les tags de tous les fichiers musicaux dans un fichier texte (artiste, titre, album, date, etc.)
3. Creer un fichier .sql à partir du fichier précédent pour remplir la base de données mySql en ligne
4. Uploader le fichier .sql sur mon serveur web
5. L'executer
6. Envoyer les fichiers musicaux compressés sur mon serveur personnel

Ca peut sembler compliqué. En fait oui, ça l'est. Mais ça ne sera pas si compliqué que ça à faire puisque quasimment tout le travail est fait. Moi comme un gamin face à un sac de duplo je vais tout assembler. Le shell c'est ce qui permet sous un environnement UNIX d'interpréter ce que l'on tape dans un terminal (Le terminal c'est l'équivalent de la ligne de commance DOS, en très gros...). Un script shell c'est tout simplement une suite de ces commandes avec en plus quelques fonctions plus évoluées comme des boucles, des tests, etc. Je peux donc manipuler des programmes déjà existant, écrire dans des fichiers, tout ça de manière assez dynamique. La syntaxe du shell est vraiment très simple pour celui qui a quelques notions (vraiment de base...) de programmation. Chez Apple il y'a Applescript qui permet aussi de faire ce genre de choses. Un exemple tout con pour bien comprendre. Je crée un fichier titre.sh (.sh c'est le suffixe des scripts shell) qui contient :

#! /bin/bash
# Je teste si le fichier audio.ogg existe
# Si il existe j'écris le tag dans le fichier tag.txt dans le même répertoire
# Sinon j'affiche "Le fichier audio.ogg n'existe pas"
if test -f audio.ogg
then
ogginfo audio.ogg>tag.txt
else
echo 'Le fichier audio.ogg n'existe pas'
fi

Bon pour ceux qui n'ont jamais rien programmé c'est peut-être du charabia mais le but de ce blog n'est pas d'apprendre à programmer en shell. Il est là pour dire que pour ce problème j'ai trouvé la solution dans la programmation Shell. Pour les autres ça doit les faire sourir. Mais l'idée est là, je devrais pouvoir faire à peu près tout ce que je souhaite. J'ai même pensé faire un petit script qui vérifie régulièrement mes mails et qui si trouve un mail avec un titre bien précis lance mon serveur peercast. Histoire de se la péter et de démarrer sa radio avec son téléphone portable. J'ai aussi regardé comment fonctionnait Peercast. Je devrais facilement pouvoir programmer un bout de code qui chope le nom du morceau diffusé et l'envoie sur le serveur web. Enfin voilà, je découvre tout ça, maintenant il faut passer aux choses sérieuses, mais je suis obligé d'attendre mon serveur peercast pour commencer...

EDIT : Après quelques recherches, d'autres langages pourraient m'aider pour ce que je veux faire, par exemple Python ou Perl (ce dernier étant plus proche de Shell apparemment). Il ont l'avantage d'être sans doute beaucoup plus performants, d'être adaptables à toutes les architectures, de possèder plus de fonctions de base, d'adorer internet... A voir.

Ambiance sonore : Good Friday - Cocorosie

Encore et toujours. J'adore vraiment ce groupe. "I fell in love with you, juste because the sky turn from grey to blue"... C'est pas mignon tout plein ça ? Oui Cocorosie c'est mignon. Et j'ai appris aujourd'hui la sortie du second album en septembre 2005. Miam.
Publicité
Publicité
Commentaires
F
Ouais tu as raison. Mais en fait pour l'instant mon travail c'est essentiellement la mise en oeuvre du serveur peercast. Càd au niveau matos. Une barrette de ram défectueuse m'a pas mal ralenti. Le code il n'y a quasimment rien à faire, peercast est déjà très complet. Ca sera tout au plus des script pythons qui automatiseront des taches récurrentes. Mais dans l'histoire il ne faut pas oublier que ce qui m'intéresse le plus c'est les micros et la conception des reportages. Toute la partie technique est nécessaire mais bon... Vivement que ce soit fait !
D
Bonjour,<br /> <br /> J'ai essaye il y quelque mois de mettre en place un serveur radio manageable par le web. J'ai abandonne par manque d'info en francais, mais je suis tres interesse par vos experience.<br /> <br /> Sinon j'avais un script maison qui recherchais mes mp3 et mes les inserais dans ma base sql (postgres), je peux le faire tourner si ca interesse qq1.<br /> <br /> En reponse, a littleM, pour enregitrer un flux audio essaye la commande suivante: <br /> cat /dev/dsp > nomdufichier.wav<br /> <br /> P.S.:FlapFlop je trouve que tu disperse trop, essaye tout d'abord de coder ton serveur audio et voit apres pour les "gadget".<br /> <br /> Il y a aussi Shoutcast qui rempli tres bien son role pour ceux qui ne veule pas reinventer la roue!
L
Bonsoir<br /> C'est toujours la fille qui se débat avec shell ..<br /> Je pense que tu peux m'apporter une lumière : voilà, quelle est la commande en shell pour enregistrer un flux audio ?<br /> Je ne sais meme pas comment accéder à la carte son , et là je commence à craquer, mes echerches sur google sont infructueuses ...<br /> merci !
L
merci pr ton aide<br /> je trouve ton espace très intéressanr en tout cas<br /> j'espère pouvoir arriver à réaliser ce script, <br /> l'ennui c'est que je ne dispose pour l'instant que de notions sur shell et php, c'est donc ce que de quoi je vais devoir me contenter !!
L
j'essaie d'écrire un script shell qui prend en arguments le nom d'une carte audio, une fréquence de radio , le jour et les heures d'enregistrement<br /> afin d'enregistrer à ce moment précis sur le flux de la radio . Est ce que tu as une idée de commenr faire pour "attendre" que la date soit la bonne et l'heure aussi ??<br /> Merci
Publicité