Puedes crear un tabla que se llame visits por ejemplo, con campos id autoincrementable, ip del visitante, id de la canción. Luego en el archivo listen.php puedes hacer una comprobación si la ip ya ha escuchado esa canción que no se vuelva a insertar:
PHP:
$realip = ($_SERVER['REMOTE_ADDR'] ? mysql_real_escape_string($_SERVER['REMOTE_ADDR']) : mysql_real_escape_string($_SERVER['X_FORWARDER_FOR']));
ctype_digit($_GET['id']) or die('El id es necesario');
if(!mysql_num_rows(mysql_query('SELECT id FROM visits WHERE ip = \''.$realip.'\' && song = \''.$_GET['id'].'\''))){
mysql_query('INSERT INTO visits (ip, song) VALUES (\''.$realip.'\', \''.$_GET['id'].'\')');
}
Luego, para obtener las visitas:
PHP:
echo 'Esta canción ha sido visitada ',mysql_num_rows(mysql_query('SELECT id FROM visits WHERE song = \''.$_GET['id'].'\'')),' veces';
No sé si sea exactamente lo que quieras, pero puede servir para darte una idea de cómo hacerlo.
Saludos