Question

J'ai un site Web qui lit des mp3 dans un lecteur Flash.Si un utilisateur clique sur « Lecture », le lecteur Flash télécharge automatiquement un mp3 et commence à le lire.

Existe-t-il un moyen simple de savoir combien de fois un extrait de chanson particulier (ou n'importe quel fichier binaire) a été téléchargé ?


Le lien de lecture est-il un lien vers le fichier MP3 réel ou à un code JavaScript qui apparaît un lecteur?

Si ce dernier, vous pouvez facilement ajouter votre propre code de journalisation pour y suivre le nombre de coups.

Si le premier, vous aurez besoin de quelque chose qui peut suivre le journal du serveur Web lui-même et faire cette distinction.Mon plan d'hébergement est livré avec webalizer, qui le fait bien.

C'est un code javascript qui répond à cela.

Cependant, il serait bien de savoir comment suivre les téléchargements en utilisant l'autre méthode (sans changer d'hôte).

Était-ce utile?

La solution

Le plus drôle, c'est que j'ai écrit une galerie multimédia php pour toute ma musique il y a 2 jours.J'avais un problème similaire.j'utilise http://musicplayer.sourceforge.net/ pour le joueur.Et la playlist est construite via php.Toutes les demandes de musique y vont dans un script appelé xfer.php?file=WHATEVER

$filename = base64_url_decode($_REQUEST['file']);
header("Cache-Control: public");
header('Content-disposition: attachment; filename='.basename($filename));
header("Content-Transfer-Encoding: binary");
header('Content-Length: '. filesize($filename));

//  Put either file counting code here. either a db or static files

//

readfile($filename);  //and spit the user the file


function base64_url_decode($input) {
    return base64_decode(strtr($input, '-_,', '+/='));
}

Et lorsque vous appelez des fichiers, utilisez quelque chose comme :

function base64_url_encode($input) {
     return strtr(base64_encode($input), '+/=', '-_,');
}

http://us.php.net/manual/en/function.base64-encode.php

Si vous utilisez du javascript ou un lecteur flash (JW Player par exemple) qui nécessite que le lien réel soit un fichier mp3 ou autre, vous pouvez ajouter le texte "&type=.mp3" pour que le lien final devienne quelque chose comme :"www.example.com/xfer.php?file=34842ffjfjxfh&type=.mp3".De cette façon, il semble qu'il se termine par une extension mp3 sans affecter le lien du fichier.

Autres conseils

Utilisez vos fichiers journaux httpd.Installer http://awstats.sourceforge.net/

Utilisez bash :

grep mp3 /var/log/httpd/access_log | wc

Si votre chanson/fichier binaire a été servi par Apache, vous pouvez facilement récupérer le access_log pour connaître le nombre de téléchargements.Un simple script post-logrotate peut récupérer les journaux et conserver vos statistiques de comptage dans une base de données.Cela présente un avantage en termes de performances en ne se trouvant pas dans le chemin du code de votre demande en direct.Faire des choses non critiques comme des statistiques hors ligne est une bonne idée pour faire évoluer votre site Web vers un grand nombre d'utilisateurs.

Vous pouvez même configurer une directive Apache .htaccess qui convertit les requêtes *.mp3 en chaîne de requête avec laquelle dubayou travaille.Cela pourrait être un moyen élégant de conserver la demande directe tout en pouvant intégrer la fonction de journalisation dans la réponse.

Le lien de lecture est-il un lien vers le fichier mp3 réel ou vers un code javascript qui fait apparaître un lecteur ?

Dans ce dernier cas, vous pouvez facilement y ajouter votre propre code de journalisation pour suivre le nombre d’accès.

Dans le premier cas, vous aurez besoin de quelque chose qui puisse suivre le journal du serveur Web lui-même et faire cette distinction.Mon plan d'hébergement est livré avec webalizer, qui le fait très bien.

Existe-t-il une base de données pour votre bibliothèque musicale ?Si un code serveur s'exécute lors du téléchargement du mp3, vous pouvez y ajouter du code supplémentaire pour augmenter le nombre de lectures.Vous pouvez également demander à Javascript de faire une deuxième requête pour incrémenter le nombre de lectures, mais cela pourrait conduire des personnes/robots à incrémenter faussement le nombre de lectures.

Je travaillais pour un site de radio Internet et nous utilisions des tableaux séparés pour suivre l'heure à laquelle chaque chanson était jouée.Nos flux étaient alimentés par un script Perl exécutant Icecast, nous déclenchions donc une requête de base de données à chaque fois qu'une nouvelle piste commençait à jouer.Ensuite, pour calculer le nombre de lectures, nous exécuterions une requête pour compter combien de fois l'identifiant d'une chanson se trouvait dans le journal de lecture.

Le problème que j'ai eu avec des choses comme AWStats / la lecture des journaux du serveur Web est que les téléchargements volumineux peuvent souvent être divisés en morceaux de données dans les journaux.Cela rend assez difficile le rapprochement du nombre exact de téléchargements.

Je suggère Google Analytics Suivi des événements, car cela sera enregistré une fois par clic sur un lien de téléchargement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top