문제

플래시 플레이어에서 mp3를 재생하는 웹사이트가 있습니다.사용자가 '재생'을 클릭하면 Flash Player가 자동으로 mp3를 다운로드하여 재생을 시작합니다.

특정 노래 클립(또는 바이너리 파일)이 몇 번이나 다운로드되었는지 추적하는 쉬운 방법이 있습니까?


Play 링크는 실제 MP3 파일 또는 플레이어를 나타내는 일부 JavaScript 코드에 대한 링크입니까?

후자의 경우, 자신의 로깅 코드를 쉽게 추가하여 적중 수를 추적 할 수 있습니다.

전자의 경우 웹 서버 로그 자체를 추적하고 구별 할 수있는 것이 필요합니다.내 호스팅 계획에는 웹 발거가 함께 제공됩니다.

이에 대한 답변을 제공하는 것은 자바스크립트 코드입니다.

그러나 다른 방법(호스트를 전환하지 않고)을 사용하여 다운로드를 추적하는 방법을 알아두면 좋을 것입니다.

도움이 되었습니까?

해결책

재미있는 점은 제가 이틀 전에 모든 음악에 대한 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

실제 링크가 mp3 파일 등이 필요한 일부 자바스크립트나 플래시 플레이어(예: JW 플레이어)를 사용하는 경우 "&type=.mp3" 텍스트를 추가하여 최종 링크가 다음과 같이 되도록 할 수 있습니다."www.example.com/xfer.php?file=34842ffjfjxfh&type=.mp3".그렇게 하면 파일 링크에 영향을 주지 않고 mp3 확장자로 끝나는 것처럼 보입니다.

다른 팁

httpd 로그 파일을 사용하십시오.설치하다 http://awstats.sourceforge.net/

배쉬를 사용하세요:

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

노래/바이너리 파일이 Apache에서 제공되는 경우 access_log를 통해 쉽게 다운로드 수를 확인할 수 있습니다.간단한 post-logrotate 스크립트는 로그를 수집하고 DB에서 개수 통계를 유지할 수 있습니다.이는 라이브 요청 코드 경로에 있지 않으므로 성능상의 이점이 있습니다.오프라인 통계와 같이 중요하지 않은 작업을 수행하는 것은 웹 사이트를 많은 수의 사용자로 확장하는 것이 좋습니다.

*.mp3 요청을 dubay가 작업 중인 쿼리 문자열로 변환하는 Apache .htaccess 지시문을 설정할 수도 있습니다.이는 직접 요청을 유지하면서도 로그 기능을 응답에 슬립스트림할 수 있는 우아한 방법일 수 있습니다.

재생 링크가 실제 mp3 파일에 대한 링크입니까, 아니면 플레이어를 팝업하는 일부 자바스크립트 코드에 대한 링크입니까?

후자의 경우, 거기에 자신만의 로깅 코드를 쉽게 추가하여 적중 횟수를 추적할 수 있습니다.

전자의 경우 웹 서버 로그 자체를 추적하고 구별할 수 있는 것이 필요합니다.내 호스팅 계획에는 이 작업을 훌륭하게 수행하는 webalizer가 포함되어 있습니다.

귀하의 음악 라이브러리에 대한 데이터베이스가 있습니까?mp3를 다운로드할 때 실행되는 서버 코드가 있는 경우 거기에 추가 코드를 추가하여 재생 횟수를 늘릴 수 있습니다.재생 횟수를 늘리기 위해 자바스크립트가 두 번째 요청을 하도록 할 수도 있지만 이로 인해 사람/로봇이 잘못 횟수를 늘릴 수 있습니다.

나는 인터넷 라디오 사이트에서 일했고, 모든 노래가 재생된 시간을 추적하기 위해 별도의 테이블을 사용했습니다.우리의 스트림은 icecast를 실행하는 Perl 스크립트로 구동되었으므로 새 트랙이 재생되기 시작할 때마다 데이터베이스 요청을 트리거했습니다.그런 다음 재생 횟수를 계산하기 위해 재생 로그에 노래 ID가 몇 번이나 있는지 계산하는 쿼리를 실행합니다.

AWStats/웹 서버 로그 읽기와 같은 문제는 대용량 다운로드가 로그 내의 데이터 청크로 분할될 수 있다는 것입니다.이로 인해 정확한 다운로드 수를 조정하는 것이 매우 어렵습니다.

Google Analytics를 제안하고 싶습니다. 이벤트 추적, 다운로드 링크를 클릭할 때마다 한 번 등록됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top