Pulling Track Information from Audio Streams Using PHP
Problem:
Is it feasible to extract track details from an audio stream using PHP, specifically from an AOL stream? Despite exploring available PHP functions, a viable solution remains elusive.
Answer:
Identifying the Stream Type
The provided stream is a SHOUTcast stream, which has its own mechanism for transmitting metadata. It's independent of ID3 tags.
Establishing a Direct Connection
To establish a direct connection with the server, use fsockopen(), ensuring to specify the correct port (usually 80 for AOL-hosted streams).
Sending the Request
Construct the request as follows:
GET /whatever HTTP/1.0 Icy-MetaData:1
Retrieving the Meta Interval
Examine the response headers for the icy-metaint value. This indicates the interval at which metadata is sent.
Decoding the Metadata
After receiving 8192 bytes of MP3 data, read the next byte. This signifies the start of the metadata and indicates its length. Multiply this value by 16 to determine the number of bytes to read.
Trim the resulting string to remove trailing zeros. The resulting string will contain metadata in the following format:
The above is the detailed content of Can PHP Extract Track Information from AOL SHOUTcast Streams?. For more information, please follow other related articles on the PHP Chinese website!