我有一个在flash播放器中播放mp3的网站。 如果用户点击“播放”,则Flash播放器会自动下载并开始播放。

有没有一种简单的方法可以跟踪特定歌曲片段(或任何二进制文件)的下载次数?


播放链接是指向实际mp3文件的链接还是弹出播放器的一些javascript代码?

如果是后者,您可以轻松地在其中添加自己的日志记录代码以跟踪其命中数。

如果是前者,您将需要能够跟踪Web服务器日志本身并进行区分的内容。 我的托管计划附带了Webalizer,它做得很好。

它是一个javascript代码,所以答案。

但是,知道如何使用其他方法跟踪下载(没有切换主机)会很好。

===============>>#1 票数:38 已采纳

有趣的是我2天前为我的所有音乐写了一个php媒体库。 我遇到了类似的问题。 我正在为玩家使用http://musicplayer.sourceforge.net/ 播放列表是通过php构建的。 所有音乐请求都有一个名为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, '-_,', '+/='));
}

当您调用文件时,请使用以下内容:

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

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

如果你正在使用一些javascript或一个flash播放器(例如JW播放器),它需要实际的链接是一个mp3文件或其他什么,你可以附加文本“&type = .mp3”,这样最终的linke就变成了这样的东西:“www .example.com的/ xfer.php?FILE = 34842ffjfjxfh&类型= .MP3" 。 这样看起来它以mp3扩展名结尾而不影响文件链接。

===============>>#2 票数:28

使用您的httpd日志文件。 安装http://awstats.sourceforge.net/

===============>>#3 票数:25

使用bash:

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

===============>>#4 票数:13

如果您的歌曲/二进制文件由apache提供,您可以轻松地访问access_log以查找下载次数。 一个简单的post-logrotate脚本可以grep日志并在db中维护计数统计信息。 这具有性能优势,因为它不在您的实时请求代码路径中。 对离线统计等非关键性事项进行扩展是一个好主意,可以将您的网站扩展到大量用户。

===============>>#5 票数:12

您甚至可以设置Apache .htaccess指令,将* .mp3请求转换为dubayou正在使用的查询字符串。 它可能是保持直接请求的优雅方式,并且仍然能够将日志功能整合到响应中。

===============>>#6 票数:6

播放链接是指向实际mp3文件的链接还是弹出播放器的一些javascript代码?

如果是后者,您可以轻松地在其中添加自己的日志记录代码以跟踪其命中数。

如果是前者,您将需要能够跟踪Web服务器日志本身并进行区分的内容。 我的托管计划附带webalizer,它做得很好。

===============>>#7 票数:3

我使用AWStats /通过Web服务器日志读取的问题是,大量下载通常可以在日志中的数据块中拆分。 这使得很难协调确切的下载次数。

我建议使用Google Analytics 事件跟踪 ,因为这会在每次点击下载链接时注册一次。

===============>>#8 票数:3

你的音乐库有数据库吗? 如果在下载mp3时有任何服务器代码运行,那么您可以在那里添加额外的代码来增加播放次数。 您也可以让javascript发出第二个请求以增加播放次数,但这可能会导致人/机器人错误地增加计数。

我曾经在互联网广播网站工作,我们使用单独的表来跟踪每首歌曲播放的时间。 我们的流由运行icecast的perl脚本提供支持,因此每次新轨道开始播放时我们都会触发数据库请求。 然后,为了计算播放次数,我们将运行一个查询来计算歌曲ID在播放日志中的次数。

  ask by Grant translate from so

未解决问题?本站智能推荐:

关注微信公众号