Tag ID3 sur fichiers audio MP3 avec id3lib sous CentOS

7 août 2010

En plein recherche sur les tags ID3, voilà comment tagger vos MP3 avec les informations artiste, album, titre, numéro de piste en ligne de commande :
Tout d’abord, installer id2lib :

yum intsall id3lib

et voilà

Pour tagger l’artiste d’un MP3 :

id3tag -a 'Bob dylan' mon_mp3.mp3 -2

Et voilà toutes les options de cette commande magique :

Usage: id3tag [OPTIONS]... [FILES]...
   -h         --help            Print help and exit
   -V         --version         Print version and exit
   -1         --v1tag           Render only the id3v1 tag (default=off)
   -2         --v2tag           Render only the id3v2 tag (default=off)
   -aSTRING   --artist=STRING   Set the artist information
   -ASTRING   --album=STRING    Set the album title information
   -sSTRING   --song=STRING     Set the title information
   -cSTRING   --comment=STRING  Set the comment information
   -CSTRING   --desc=STRING     Set the comment description
   -ySTRING   --year=STRING     Set the year
   -tSTRING   --track=STRING    Set the track number
   -TSTRING   --total=STRING    Set the total number of tracks
   -gSHORT    --genre=SHORT     Set the genre
   -w         --warning         Turn on warnings (for debugging) (default=off)
   -n         --notice          Turn on notices (for debugging) (default=off)

Et pour connaitre les infos d’un fichier mp3 :

id3info mon_mp3.mp3

Voilà rien de plus simple :)
Après il est parfaitement possible d’exploiter ces fonctions via un script PHP du genre :

<?php
$res=exec("id3tag -a '".$artiste."' ".$fichier." -2",$res_var);
//ou $artiste est l'artiste à appliquer au fichier mp3 $fichier avec un taggage en version 2
?>

Installer ID3 via PECL pour PHP

5 août 2010

ID3 permet de lire et écrire les tags ID3 sur les fichiers audio.
Ces fonctions visiblement pas encore natives dans PHP peuvent être installées via PECL.
Peu de sites décrivent l’opération alors voilà je me lance puisque j’ai réussi a trouver la solution.

Tout d’abord installons PEAR (qui permettra d’executer les install via pecl)

apt-get install php-pear (ou yum install php-pear)

Dans le meilleur des mondes il suffit de lancer la commande :

pecl install ID3

Normalement il va vous dire qu’il n’y a aucune version stable disponible et qu’il faut donc lancer la commande :

pecl install channel://pecl.php.net/ID3-0.2

S’il vous insulte en vous disant qu’il ne trouve pas phpsize :

apt-get install PHP5-dev (ou yum install PHP5-dev sous Centos)

Puis relancez l’install du package en version non-stable
S’il vous insulte à nouveau mais sur Make :

apt-get install make

Ensuite il ne reste plus qu’à activer ce module dans le PHP.ini
en ajoutant dans la rubrique des extensions :

extension=id3.so

Voilà le tour est joué PHP gère maintenant les tags ID3 via les fonctions ID3
Si tout s’est bien passé, un phpinfo() devrait vous afficher cette extension en plus :

02 – Configuration du VPN sous Mac OSX Snow Leopard Server (10.6.2)

20 mai 2010

Bon alors ayant moi même rencontré quelques soucis et voyant que beaucoup se heurtent à la configuration d’un petit VPN sous Snow Leopard Server voici une configuration qui fonctionne en PPTP :

Il faut lancer l’admin serveur puis aller dans VPN :

1/ Configuration PPTP (on défini une plage d’IP allouées au VPN :

2/ Réglages DNS et domaine de recherche pour les clients

3/ Port forwarding :

Si vous utilisez une box du type freebox, il faut aller dans la configuration du mode routeur et forwarder le port 1723 en TCP vers l’adresse IP locale de votre serveur Mac (ici : 192.168.1.200:1723)

Je vous recommande de lire la liste des ports TCP et UDP utilisés par les différentes application Apple à cette adresse

4/ Ne pas oublier de donner les droits d’utiliser le VPN aux clients ;)

PHP – Créer un fichier CSV ou Excel encodage UTF-8 / UTF-16LE

14 mai 2010

Voilà un petit bout de code qui permet de générer un simple fichier Excel en PHP
L’astuce est que l’encodage utilisé pour la page PHP est UTF-8 et donc lors de la génération on peut se retrouver avec des problèmes sur les caractères accentués.
En effet Excel utilise l’UTF-16LE et non UTF-8, je me suis plusieurs fois frotté à ce problème alors cette fois je note l’astuce, ça peut toujours servir à d’autres en plus d’assister ma pauvre mémoire interne ;)

//Voilà les en-tetes qui vont permettre à votre navigateur de reconnaitre le type de fichier et son nom (ici Export.xls)
header( "Content-type: application/vnd.ms-excel; charset=UTF-16LE" );
header('Content-Disposition: attachment; filename="Export.xls"');

$contenu =  "Description\tPrix Unitaire\tQuatité\tTotal\n"; // La premiere ligne de mon tableau \t change de cellule \n change de ligne

echo chr(255).chr(254).mb_convert_encoding( $contenu, 'UTF-16LE', 'UTF-8');  // On converti ma chaine UTF-8 vers UTF-16LE et on ajoute 2 caractères qui permettront à Excel d'identifier le fichier sans problème.

Et voilà c’est aussi simple que ça et c’est compatible Office Windows et Office Mac (peut-être pas Office 2004)

Couper un fichier MP3 avec FFMPEG via PHP

10 mai 2010

Ca fait bien longtemps que je n’ai pas posté, alors voici un petit bout de code bien sympathique ;)

Si vous avez FFMPEG d’installé sur votre serveur web (voir cet article pour l’installation )
Il est possible de découper des MP3 via un petit bout de code system sous PHP :

system ("ffmpeg -ss 0 -t 20 -i ".dirname(__FILE__)."/masource.mp3 ".dirname(__FILE__)."/monextrait.mp3", $res_var);

-ss : représentant le début à couper en secondes (ici le début de la chanson, départ à 0 secondes)
- t : représentant la durée à couper (ici 20 secondes)

Et pour les néophytes du PHP « dirname(__FILE__) » représente le chemin absolu vers le fichier source et le fichier de destination ( du genre /var/www/html/monsite ).