Let me briefly talk about the ID3 tag of MP3 first, because it is mainly used to operate this thing.
At the beginning, MP3 did not have information about singers, years, albums, etc. as we see today.
There are only some simple parameters such as yes/no to indicate whether it is private or copyrighted, etc. This has brought a lot of inconvenience to MP3-related work. In 1996, a foreigner proposed to append a piece of data after each MP3, using To store the above information, it later developed into id3 v1. As far as I know, it has reached 1.1 now. I’d better check it out myself.
It’s still an old habit to use metadata to introduce DLL. I’ve posted about it before. If you don’t know, please check it yourself.
Look at the code
<!--METADATA TYPE=typelib
UUID=00000205-0000-0010-8000-00AA006D2EA4
NAME=ADODB Type Library
-->
<%
Function ConvertBin(Binary)
'This function converts a binary byte into an ASCII byte.
for i = 1 to LenB(Binary)
strChar = chr(AscB(MidB(Binary,i,1)))
ConvertBin = ConvertBin & strChar
Next
End Function
dimobjStream
dim strTag, strSongName, strArtist, strAlbum, strYear, _
strComment, strGenre, strFile
'Specify the folder to iterate through, displaying all the MP3s
Const folder = C:/mp3s/
'Grab the folder information
Dim objFSO, objFolder, objFile
Set objFSO = Server.CreateObject(Scripting.FileSYstemObject)
Set objFolder = objFSO.GetFolder(folder)
'Create the Stream object
set objStream = Server.CreateObject(ADODB.Stream)
objStream.Type = adTypeBinary
'Loop through the files in the folder
For Each objFile in objFolder.Files
'Open the stream
objStream.Open
objStream.LoadFromFile objFile.Path
'Read the last 128 bytes
objStream.Position =objStream.size - 128
'Read the ID3 v1 tag info
strTag = ConvertBin(objStream.Read(3))
if ucase(strTag) = TAG then
strSongName = ConvertBin(objStream.Read(30))
strArtist = ConvertBin(objStream.Read(30))
strAlbum = ConvertBin(objStream.Read(30))
strYear = ConvertBin(objStream.Read(4))
strComment = ConvertBin(objStream.Read(30))
end if
'Display the results
response.write <table><tr><td colspan=2><h3> & _
ID3 Tag info for:</td></tr><tr> & _
<td colspan=2> & objFile.Name & </td></tr>
response.write <tr><td><b>Artist: </b></td> & _
<td> & strArtist & </td></tr>
response.write <tr><td><b>Track: </b></td> & _
<td> & strSongName& </td></tr>
response.write <tr><td><b>Album: </b></td> & _
<td> & strAlbum & </td></tr>
response.write <tr><td><b>Year: </b></td> & _
<td> & strYear & </td></tr>
response.write <tr><td><b>Comment: </b> & _
</td><td> & strComment & </td></tr>
response.write </table>
objStream.Close
Response.Write <p><hr><p>
Next
Set objStream = Nothing'Clean up...
%>
Try it yourself