Note that there are some explanatory texts on larger screens.

plurals
  1. PORead remote mp3 file information using php
    text
    copied!<p>I am working on a site which will fetch mp3 details from a remote url. I need to write a cron job so that it gets all the song information such as the file name, path, artist, genre, bitrate, playing time, etc and put it in a database table.</p> <p>I tried getid3 package, but this is very slow when fetching more than one url at a time and I get maximum execution error.</p> <p>Example:</p> <pre><code>require_once('getid/getid3/getid3.php'); $urls = array ('http://stackoverflow.com/test1.mp3','http://stackoverflow.com/test2.mp3''http://stackoverflow.com/test3.mp3'); foreach($urls as $ur){ $mp3_det = getMp3Info( $ur ); print_r ($mp3_det); } function getMp3Info ( $url ){ if($url){ /**********/ $filename = tempnam('/tmp','getid3'); if (file_put_contents($filename, file_get_contents($url, false, null, 0, 35000))) { if (require_once('getid/getid3/getid3.php')) { $getID3 = new getID3; $ThisFileInfo = $getID3-&gt;analyze($filename); unlink($filename); $bitratez = $ThisFileInfo[audio][bitrate] ? $ThisFileInfo[audio][bitrate] : ''; $headers = get_headers($url, 1); if ((!array_key_exists("Content-Length", $headers))) { return false; } // print $headers["Content-Length"]; $filesize= round($headers["Content-Length"]/1000); $contentLengthKBITS=$filesize*8; if ( $bitratez ){ $bitrate= round ( $bitratez/1000 ); $seconds=$contentLengthKBITS/$bitrate; $playtime_mins = floor($seconds/60); $playtime_secs = $seconds % 60; if(strlen($playtime_secs)=='1'){$zero='0';} $playtime_secs = $zero.$playtime_secs; $playtime_string=$playtime_mins.':'.$playtime_secs; } else $playtime_string='0:00'; // echo '&lt;pre&gt;'.print_r($ThisFileInfo, true).'&lt;/pre&gt;'; } $bitrate = $bitrate ? $bitrate : 0; $ret = array(); $ret['playtime'] = $playtime_string; $ret['filesize'] = $filesize; $ret['bitrate'] = $bitrate; return $ret; } } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload