
# mp3-stream-title 

A lightweight Node.js utility to extract the current song title from an MP3 audio stream using ICY metadata. Useful for internet radio players, dashboards, or stream monitoring tools. 
## Features 

- Extracts `StreamTitle` from ICY metadata 
- No dependencies 
- Works with most MP3 shoutcast/icecast streams 
- Simple async API 

## Installation

 ```bash npm install mp3-stream-title 

Usage

// index.js import { getMp3StreamTitle } from 'mp3-stream-title';
const streamUrl = 'http://icecast.radio-browser.info:80/stream/rock';
async function printCurrentTrack() {
 try { 
const title = await getMp3StreamTitle(streamUrl);
console.log('Now playing:', title); 
} catch (err) {
 console.error('Failed to fetch title:', err); 
}
 } 
printCurrentTrack(); 

Make sure your Node.js environment supports ES modules (type: "module" in package.json), or adapt to CommonJS if needed.

API

getMp3StreamTitle(streamUrl: string): Promise<string>

Fetches the current StreamTitle from the given MP3 stream URL.

Parameters:

streamUrl — Full HTTP URL to the MP3 stream (must support ICY metadata)

Returns:

A Promise that resolves to the current song title (string), or "Unknown" if not available.

Notes

- The stream must support ICY metadata (e.g. icy-metaint header).

- Only works with HTTP streams (not HTTPS by default).

- The function reads the initial data block to extract metadata; it does not keep the stream open.

License

MIT License

Author

Created by Diaken(Kenan)

