How to read and update audio tag data uploaded files using php library.
How to read and update audio tag data uploaded files using php library.
Note : uploaded file must be audio songs.
- Download audio_tag_library from here.
- Create folder uploaded_songs inside folder audio_tag_library
- Let's create index.php file inside folder audio_tag_library
<?php
if (isset($_POST['submit']))
{
$myFile = $_FILES['my_file'];
$fileCount = count($myFile["name"]);
$image_array=array();
//target directory for image save
$target_dir = "uploaded_songs/";
//filename
$fname = $myFile["name"];
//filename changed with time function
$target_file = $target_dir . time() . $fname;
//move uploaded file in to target folder
if(move_uploaded_file($myFile["tmp_name"],$target_file))
{
//song path
$song_path = $target_file;
require_once('audio_data/class/demo.audioinfo.class.php');
$audio = new AudioInfo();
getid3_lib::IncludeDependency('audio_data/class/' . 'write.php', __FILE__, true);
/**
* Chnage album name after upload
*/
$getID3 = new getID3;
$OldThisFileInfo = $getID3->analyze($song_path);
getid3_lib::CopyTagsToComments($OldThisFileInfo);
$ValidTagTypes = array();
if(array_key_exists('fileformat', $OldThisFileInfo)) {
switch ($OldThisFileInfo['fileformat']) {
case 'mp3':
case 'mp2':
case 'mp1':
$ValidTagTypes = array('id3v1', 'id3v2.3', 'ape');
break;
case 'mpc':
$ValidTagTypes = array('ape');
break;
case 'ogg':
if (!empty($OldThisFileInfo['audio']['dataformat']) && ($OldThisFileInfo['audio']['dataformat'] == 'flac')) {
//$ValidTagTypes = array('metaflac');
// metaflac doesn't (yet) work with OggFLAC files
$ValidTagTypes = array();
} else {
$ValidTagTypes = array('vorbiscomment');
}
break;
case 'flac':
$ValidTagTypes = array('metaflac');
break;
case 'real':
$ValidTagTypes = array('real');
break;
default:
$ValidTagTypes = array();
break;
}
}
if (isset($OldThisFileInfo['tags'])) {
$TagFormatsToWrite = array_keys($OldThisFileInfo['tags']);
}
if (!empty($TagFormatsToWrite)) {
$TagFormatsToWrite_final = array();
foreach ($ValidTagTypes as $ValidTagType) {
if (count($ValidTagTypes) == 1) {
$TagFormatsToWrite_final[] = $ValidTagType;
} else {
switch ($ValidTagType) {
case 'id3v2.2':
case 'id3v2.3':
case 'id3v2.4':
if (isset($OldThisFileInfo['tags']['id3v2'])) {
$TagFormatsToWrite_final[] = $ValidTagType;
}
break;
default:
if (isset($OldThisFileInfo['tags'][$ValidTagType])) {
$TagFormatsToWrite_final[] = $ValidTagType;
}
break;
}
}
}
} else {
$TagFormatsToWrite_final = $ValidTagTypes;
}
if (!empty($TagFormatsToWrite_final)) {
$tagwriter = new getid3_writetags;
$tagwriter->filename = $song_path;
$tagwriter->tagformats = $TagFormatsToWrite_final;
$tagwriter->overwrite_tags = true;
$tagwriter->remove_other_tags = false;
$tagwriter->tag_encoding = 'UTF-8';
$commonkeysarray = array('title', 'artist', 'year', 'comment');
foreach ($commonkeysarray as $key) {
if (!empty($OldThisFileInfo['comments'][$key])) {
$TagData[strtolower($key)][] = implode(', ', $OldThisFileInfo['comments'][strtolower($key)]);
}
}
$TagData['album'][] = 'www.animex44.blogspot.in';
$tagwriter->tag_data = $TagData;
}
$audioDtls = $audio->Info($song_path);
echo "";
print_r($audioDtls);
echo "";
$audioTagDtls = array();
if( isset($audioDtls['tags']['id3v1']) ){
$audioTagDtls[] = $audioDtls['tags']['id3v1'];
}
elseif( isset($audioDtls['tags']['id3v2']) ){
$audioTagDtls[] = $audioDtls['tags']['id3v2'];
}
elseif( isset($audioDtls['tags']['ID3v2.4']) ){
$audioTagDtls[] = $audioDtls['tags']['ID3v2.4'];
}
elseif( isset($audioDtls['tags']['ID3v2.2']) ){
$audioTagDtls[] = $audioDtls['tags']['ID3v2.2'];
}
elseif( isset($audioDtls['tags']['ID3v2.3']) ){
$audioTagDtls[] = $audioDtls['tags']['ID3v2.3'];
}
elseif( isset($audioDtls['tags']['ID3v3']) ){
$audioTagDtls[] = $audioDtls['tags']['ID3v3'];
}
echo "";
print_r($audioTagDtls);
echo "";
$audioalbum = ( isset($audioTagDtls[0]['album']) && !empty($audioTagDtls[0]['album']) )?$audioTagDtls[0]['album']:array();
$audiotitle = ( isset($audioTagDtls[0]['title']) && !empty($audioTagDtls[0]['title']) )?$audioTagDtls[0]['title']:array();
$audioband = ( isset($audioTagDtls[0]['band']) && !empty($audioTagDtls[0]['band']) )?$audioTagDtls[0]['band']:array();
$audioartist = ( isset($audioTagDtls[0]['artist']) && !empty($audioTagDtls[0]['artist']) )?$audioTagDtls[0]['artist']:array();
$audioyear = ( isset($audioTagDtls[0]['year']) && !empty($audioTagDtls[0]['year']) )?$audioTagDtls[0]['year']:array();
$audiogenre = ( isset($audioTagDtls[0]['genre']) && !empty($audioTagDtls[0]['genre']) )?$audioTagDtls[0]['genre']:array();
$audiocomposer = ( isset($audioTagDtls[0]['composer']) && !empty($audioTagDtls[0]['composer']) )?$audioTagDtls[0]['composer']:array();
$audiolyricist = ( isset($audioTagDtls[0]['lyricist']) && !empty($audioTagDtls[0]['lyricist']) )?$audioTagDtls[0]['lyricist']:array();
if(!empty($audioalbum))
{
for($al=0; $al<count($audioalbum); $al++)
{
$audioAlbumDtlsArr = array();
$audioAlbumDtlsArr['attribute_key'] = 'album';
$audioAlbumDtlsArr['attribute_val'] = $audioalbum[$al];
}
}
echo "";
print_r($audioAlbumDtlsArr);
echo "";
}
else
{
echo "Uploading failed";
}
}
?>
No comments: