Vous n'êtes pas identifié(e).
Mise à jour du script :
> calcul & affichage de l'audience maximale
> correction d'un bug qui empêchait la sauvegarde des données des serveurs Icecast.
Merci à HitsAndFun pour leur contribution !
Bonjour,
Merci pour le message !
Oui, l'option de filtrage est prévue.
Dans l'onglet Titrage -> Filtres, ajoutez l'entrée "jingles_*" pour ignorer tous les titres commençant par "jingles_".
Voir : handle_url_tag($matches[1])
Bonjour,
Merci pour votre retour !
Le temps de réaction entre le changement de titre aux studios et sur le player ne peut pas être davantage réduit.
Il dépend essentiellement de la fréquence d'actualisation de la lecture des metadonnées de votre player : ceci est tout à fait normal.
Bonne journée
Suite à notre conversation ce jour, je vous invite à mettre en place tout ce qui est décrit plus haut et à me recontacter une fois que vous aurez terminé tous vos tests afin de faire le point.
Si les tests ne sont pas concluants, vous me ferez parvenir par mail :
- votre adresse d'écoute (utilisée par les lecteurs audio)
- l'URL de votre script PHP
Puis nous procéderons à un dépannage via Teamviewer sur votre machine (assurez-vous de pouvoir y accéder lorsque nous serons en communication).
Bonjour,
Après avoir transféré le fichier PHP sur votre serveur Internet, vous créez les trois fichiers mentionnés en début du fichier PHP (onair.xml, etc...) dans le même répertoire que votre fichier PHP. Vous pouvez créer des fichiers vides ou non : ça n'a aucune importance vu que c'est le script PHP qui va les mettre à jour lorsqu'il sera appelé par Webradiotools.
Pour le CHMOD 777, il s'agit des permissions que vous donnerez à ces trois fichiers, en faisant un clic droit sur leur nom dans votre logiciel FTP afin de régler ces permissions au niveau maximum et ainsi leur permettre d'être modifiés automatiquement.
Bonjour,
Le script est fait pour votre serveur Internet (votre site Web). Pas besoin d'intervenir sur les serveurs audio (ce serait trop contraignant).
Placez-le là où vous voulez sur votre serveur Internet, et créez bien les fichiers indiqués dans le script avec permission 777.
Voici un exemple de méthode pour titrer sur un serveur différent de ceux pris en charge nativement par Webradiotools (comme handle_url_tag($matches[1]))
Prenons comme modèle l'URL de titrage suivante :
http:/ /metadatas.tv-radio.com/cgi-bin/metadatas-httprequest.pl?utilisateur=XXXXXX&artist_name=YYYYY&song_title=ZZZZZ&duration=X:YZ
Avec Webradiotools 2.0.5.0 ou version ultérieure :
1. Dans l'onglet Titrage -> Serveurs de diffusion, cliquez sur le bouton PHP... puis enregistrez le fichier sur votre disque dur.
Ce script utilise php 5 : utilisez l'extension php5 plutôt que php si votre serveur requiert cette extension pour les fichiers de ce type.
2. Ouvrez le fichier avec un éditeur basique (le bloc notes par exemple) puis remplacez-le comme suit :
<?php
//////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
///////////////////////// WebRadioTools //////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
///////////////////// http://www.webradiotools.soft-micro.fr ////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
$file_title ='title.txt'; // CHMOD 777
$file_broadcast='emission.txt'; // CHMOD 777
$file_onair ='onair.xml'; // CHMOD 777
function duree($secondes)
{
$result='';
$temps = $secondes % 3600;
$heures = ($secondes - $temps) / 3600 ;
$secondes = $temps % 60 ;
$minutes = ($temps - $secondes) / 60;
if ($heures!=0) $result.=$heures;
if ($result!='') $result.=':';
if ($minutes< 10) $result.='0'; $result.=$minutes;
if ($result!='') $result.=':';
if ($secondes< 10) $result.='0'; $result.=$secondes;
return $result;
}
if ((isset($_POST['titre'])) || ((isset($_POST['emission_titre'])) && (isset($_POST['emission_debut'])) && (isset($_POST['emission_duree'])) ))
{
if ((isset($_FILES['data']['name'])) && (isset($_FILES['data']['tmp_name'])))
{
@unlink($file_onair);
fclose(fopen($file_title, "w+"));
if ($zip = zip_open($_FILES['data']['tmp_name']))
{
while ($zip_entry = zip_read($zip))
if (zip_entry_open($zip, $zip_entry, "r"))
{
if( preg_match( '#^' . $dirFromZip .'.*#', dirname(zip_entry_name($zip_entry)) ) )
{
if ($fd = @fopen($file_onair, 'w+'))
{
$contenu=zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
fwrite($fd, $contenu);
fclose($fd);
try
{
$source = @simplexml_load_string($contenu);
// utilisateur XXXXXX à remplacer par votre identifiant
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, '[url=http://metadatas.tv-radio.com/cgi-bin/metadatas-httprequest.pl?utilisateur=XXXXXXXXXX&song_title=.urlencode(trim($source->onair->song->title)).&artist_name=.urlencode(trim($source->onair->song->artist->alias)).&duration=]http://metadatas.tv-radio.com/cgi-bin/metadatas-httprequest.pl?utilisateur=XXXXXXXXXX&song_title='.urlencode(trim($source->onair->song->title)).'&artist_name='.urlencode(trim($source->onair->song->artist->alias)).'&duration=[/url]'.urlencode(duree(intval($source->onair->song->average_duration))));
curl_setopt($ch, CURLOPT_HEADER, FALSE);
@curl_setopt($ch, CURLOPT_FORBID_REUSE, TRUE);
@curl_setopt($ch, CURLOPT_FRESH_CONNECT, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
@curl_setopt($ch, CURLOPT_FOLLOWLOCATION,true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,7);
unset($retour);
@curl_exec($ch);
curl_close($ch);
}
catch (Exception $e){}
}
zip_entry_close($zip_entry);
}
}
}
}
if (isset($_POST['titre']))
{
$title=stripslashes(trim($_POST['titre']));
if ($title!='')
{
if (file_exists($file_title)) {@unlink($file_title);}
fclose(fopen($file_title, "w+"));
$file = fopen($file_title, 'r+');
fwrite($file, $title);
fclose($file);
}
}
if ((isset($_POST['emission_titre'])) && (isset($_POST['emission_debut'])) && (isset($_POST['emission_duree'])))
{
$next_broadcast=stripslashes(trim($_POST['emission_titre']));
$next_broadcast_timestamp_start=stripslashes(trim($_POST['emission_debut']));
$next_broadcast_timestamp_end=stripslashes(trim($_POST['emission_duree']));
if (file_exists($file_broadcast)) {@unlink($file_broadcast);}
fclose(fopen($file_broadcast, "w+"));
$file = fopen($file_broadcast, 'r+');
fwrite($file, $next_broadcast_timestamp_start."\n");
fwrite($file, $next_broadcast_timestamp_end."\n");
fwrite($file, $next_broadcast);
fclose($file);
}
}
else
{
// You can edit this PHP file from here... // Vous pouvez éditer ce fichier PHP à partir d'ici...
$sautligne='<br/>';
$mode=trim($_GET['mode']);
if (($mode=='titre') || ($mode==''))
if ((file_exists($file_title)) && ($title=readfile($file_title)))
{
echo $title[0];
if ($mode=='') echo $sautligne.$sautligne;
}
if (($mode=='emission') || ($mode==''))
if (file_exists($file_broadcast))
{
$file = fopen($file_broadcast, 'r+');
$heure=fgets($file);
if ($heure!=-1)
{
echo date('l d/m H:i', $heure).' - '.fgets($file).' mn'.$sautligne;
echo fgets($file).$sautligne.$sautligne;
}
fclose($file);
}
// ... to here // ... jusqu'ici
}
b). Enregistrez le fichier et transférez-le sur votre serveur Web
3. Sur votre serveur Web, veillez à bien avoir créé un fichier onair.xml avec les permissions 777 (CHMOD 777).
4. Dans Webradiotools, indiquez l'URL du script php. Ainsi, à chaque mise à jour du titrage, le script de titrage que vous venez de modifier appellera le script de titrage de votre serveur audio pour lui indiquer les nouvelles informations.
Merci ! En espérant que tout puisse fonctionner, sinon donner des pistes de travail efficaces.
Pour les besoins de son service de webradios, Orange demande que lui soient envoyées régulièrement les informations du titre en cours sous la forme suivante :
<rol_notification>
<name>MyRadio</name>
<timeZone>Europe/Paris<timeZone>
<url>http://www.MyRadioWebSite.com</url>
<onair>
<start>29/05/2008 16:28:28</start>
<duration>244</duration>
<title>4 Minutes</title>
<artist>Madonna</artist>
<album>Hard Candy</album>
<cover>www.MyRadioWebSite.com/TheAlbumCover.jpg</cover>
<music>S</music>
<info>additionnal info</info>
<comment>your comments</comment>
</onair>
</rol_notification>
Webradiotools permet de générer en partie ce fichier automatiquement depuis la version handle_url_tag($matches[1], $matches[2]).
1. Dans l'onglet Titrage -> Serveurs de diffusion, cliquez sur le bouton PHP... puis enregistrez le fichier sur votre disque dur.
2. Ouvrez le fichier avec un éditeur basique (le bloc notes par exemple) puis éditez-le comme suit :
a). Après la ligne...
$file_onair ='onair.xml'; // CHMOD 777
...ajoutez :
$file_orange ='orange.xml'; // CHMOD 777
function convert_liveradio($file_source, $file_destination)
{
@unlink($file_destination);
try
{
$source = @simplexml_load_string(file_get_contents($file_source));
}
catch (Exception $e)
{
$source=false;
}
if ($source)
{
$destination = new SimpleXMLElement('<rol_notification></rol_notification>');
$destination_name=$destination->addChild('name'); $destination_name[0]='MyRadio';
$destination_timeZone=$destination->addChild('timeZone'); $destination_timeZone[0]='Europe/Paris';
$destination_url=$destination->addChild('url'); $destination_url[0]='http://www.MyRadioWebSite.com';
$destination_onair=$destination->addChild('onair');
$destination_onair_start=$destination_onair->addChild('start'); $destination_onair_start[0]=date('d/m/Y H:i:s', intval($source->onair->song->start));
$destination_onair_duration=$destination_onair->addChild('duration'); $destination_onair_duration[0]=intval($source->onair->song->average_duration);
$destination_onair_title=$destination_onair->addChild('title'); $destination_onair_title[0]=$source->onair->song->title;
$destination_onair_artist=$destination_onair->addChild('artist'); $destination_onair_artist[0]=$source->onair->song->artist->alias;
$destination_onair_cover=$destination_onair->addChild('cover'); $destination_onair_cover[0]='www.MyRadioWebSite.com/TheAlbumCover.jpg';
$destination_onair_music=$destination_onair->addChild('music'); $destination_onair_music[0]='S';
$destination_onair_info=$destination_onair->addChild('info'); $destination_onair_info[0]='additionnal info';
$destination_onair_comment=$destination_onair->addChild('comment'); $destination_onair_comment[0]='your comments';
unset($source);
fclose(fopen($file_destination, "w+"));
$fp = fopen($file_destination, 'r+');
fwrite($fp, $destination->asXML());
fclose($fp);
}
}
b). Remplacez la ligne...
zip_entry_close($zip_entry);
...par la ligne :
zip_entry_close($zip_entry); convert_liveradio($file_onair, $file_orange);
c). Enregistrez le fichier et transférez-le sur votre serveur Web
3. Sur votre serveur Web, créez un fichier vide orange.xml et donnez lui les permissions 777 (CHMOD 777).
4. Dans Webradiotools, indiquez l'URL du script php. Ainsi, à chaque mise à jour du titrage, le fichier orange.xml contiendra les infos demandées.
5. Il vous restera à rentrer manuellement les paramètres d'heure, d'identification de votre radio, etc., et à faire croiser les données du titre en cours avec votre base de données Web si vous souhaitez communiquer une URL d'image pour la pochette du titre en cours.
Note : La durée indiquée pour le titre en cours n'est qu'indicative : elle correspond à la donnée "durée" de handle_url_tag($matches[1], $matches[2]) que vous aurez renseignée au préalable dans Webradiotools (0 par défaut).
Bonjour,
Dans la version 2.0.6.0, il est possible d'exporter les paramètres du titre en cours au format XML.
handle_url_tag($matches[1])
Voici un tutoriel permettant de créer le fichier XML demandé par Orange :
handle_url_tag($matches[1])
Dépannage effectué ce jour.
Le problème provenait du script phphanalysebdd.php présenté sur handle_url_tag($matches[1]) , lequel, depuis sa dernière mise à jour, renvoyait des données erronées à Webradiotools qui ignorait alors les résultats.
Le script [url=http://www.webradiotools.soft-micro.fr/forum/attachment.php?item=13[/url] a été corrigé et mis à jour.
Merci !
Bonjour,
Les informations demandées sont en partie décrites à la page handle_url_tag($matches[1]) .
Elles sont reprises plus en détails dans les contrats SACEM, SCPP et SPPF.
La base de données présente sur ce site se constitue à partir des données transmises par les utilisateurs : elle est donc très incomplète.
Le code ISRC de chaque titre peut s'obtenir après des sites des organismes de défense des droits d'auteurs (des moteurs de recherche doivent être présents), mais le meilleur moyen est probablement d'obtenir ce code depuis le CD d'origine, à l'aide de l'outil d'analyse de CD intégré à Webradiotools.
Même si des trois organismes la SACEM est celui qui réclame le plus d'informations (plus ou moins obligatoires), c'est certainement celui dont le format des relevés est le moins contraignant.
Bonsoir,
La réaction peut être différente selon le type de serveur (Shoutcast, Icecast, Steamcast) : elle correspond au résultat d'analyse du fichier XML d'information de chaque serveur.
Le procédé est le suivant :
1. Webradiotools interroge le script d'analyse d'audience qui va interroger les différents serveurs d'écoute.
2. Selon la réponse des serveurs, si l'un deux présente un problème (fichier XML est inaccessible / corrompu ou s'il indique que le flux est stoppé), alors Webradiotools va appeler le script indiqué dans cette discussion permettant d'envoyer un mail ou un SMS d'alerte.
Je vous ai adressé un mail pour une tentative de dépannage via MSN.
Ces paramètres semblent tout à fait corrects.
Vous avez deux serveurs, mais l'un n'indique pas de capacité maximale (le 2è), alors que le premier est à 100 auditeurs maxi.
Utilisez-vous le système de mesure d'audience par l'ordinateur ou depuis un script PHP ?
Oui, c'est tout à fait réalisable par un plugin spécifique (mais pas directement par Webradiotools) communiquant les changements de titrage directement sur le port série (en RS232) pour modifier le titrage à distance à l'aide du fichier Webradiotools.txt.
Si vous êtes intéressé, ce développement spécifique ne pouvant pas se faire dans les mêmes conditions de distribution que Webradiotools, je vous invite à me contacter directement par mail à l'adresse indiquée sur Webradiotools.
Dans ses dernières versions, Webradiotools permet de lire l'audience directement sur l'ordinateur sans passer par un serveur Web.
Bonjour,
Il est probable que vous utilisiez un mode d'affichage avec une résolution de carte graphique différente de 96ppp.
Ce problème devrait être corrigé dans la version 2.0.5.5 publiée à l'instant : handle_url_tag($matches[1]) .
Mise à jour en ligne 2.0.5.0 : handle_url_tag($matches[1])
La mise à jour 2.0.5.0 devrait être publiée en fin de journée ce vendredi 14/01.
Bonjour,
Un bug de fuite mémoire a été signalé dans cette version 2.0.4.0 et devrait être corrigé dans la prochaine version, d'ici quelques jours.
D'ici là, il est préférable de redémarrer l'application une fois par jour manuellement pour éviter les soucis que vous décrivez.
Bonjour,
Cette option existe toujours, mais le fichier est dans un autre répertoire, du fait des obligations de sécurité sur Windows Vista et Seven.
Depuis WebRadioTools, tapez CTRL+R pour accéder au répertoire en question. Le fichier de titrage est WebRadioTools.txt.
Publication version 2.0.4.0 : l'analyse de l'audience peut se faire sans script.
handle_url_tag($matches[1])
En effet, il faut un peu programmer pour adapter selon les besoins, mais c'est indispensable.
Merci du retour !
Je suis surpris qu'il soit demandé en temps réel d'indiquer la durée de diffusion d'une diffusion qui n'est pas terminée.
Ceci veut dire que les extraits sonores dont la durée n'est pas prévue ne peuvent donc pas être comptés convenablement.
Par ailleurs, le format de date de diffusion est spécifique : JJ/MM/AAAA ; JJ/MM/AAAA ; J-M-AA ; etc. Il ne peut donc pas être correctement traité par WRT. Idem pour l'heure : il faut dans ce cas une programmation faite directement par les services de la radio.
Il me paraît bien meilleur d'utiliser l'historique transmis par WRT (moyennant un petit traitement PHP), qui, même s'il est fourni avec une poignée de minutes de décalage avec le titre en cours de diffusion, contient toutes les informations fiables.
Je doute que les services du fournisseur soient ainsi gênés pour ses propres enregistrements statistiques.
Je proposerais la méthode suivante (améliorable) :
Dans le fichier playlist.php, modifier la partie relative à la réception après POST du fichier XML :
> Récupération de la première entrée (= dernier titre d'historique) "playlist > entry" (voir le contenu du PHP pour modèle de script)
> Traitement des données et personnalisation (dates, etc.)
> Transmission au fournisseur
Propulsé par FluxBB