james-heinrich/getid3
PHP library for reading and parsing audio/video file metadata. Extracts tags (ID3, APE, Lyrics3) and technical info from many formats including MP3, AAC/MP4, FLAC, Ogg (Vorbis/Opus), WAV/AIFF, AVI/ASF, MKV, and more.
getID3 for scalability (e.g., Kubernetes pods for batch processing).getID3 abstracts low-level parsing.demo.mysql.php).getID3 requires full file downloads.mutagen/ffmpeg; Node.js: music-metadata).ffprobe).getID3 may return partial data."This is a ‘Swiss Army knife’ for media metadata—saving us 6–12 months of dev time while future-proofing our media handling. For example:
Risks:
ffmpeg for edge cases."getID3 lets us focus on product logic, not reinventing media parsing. Key perks:
ffmpeg/exiftool in every workflow).demo.browse.php for prototyping, then integrate the core analyze()/writeTags() methods.user_rating ID3v2 frame).$fileinfo['error'].Integration Example:
// Upload handler for audio files
$getID3 = new getID3();
$fileInfo = $getID3->analyze($_FILES['audio']['tmp_name']);
// Store metadata in DB
db_store([
'title' => $fileInfo['id3v2']['title'][0],
'artist' => $fileInfo['id3v2']['artist'][0],
'duration' => $fileInfo['playtime_seconds'],
]);
// Auto-generate thumbnails from album art
if (isset($fileInfo['id3v2']['image'][0]['data'])) {
save_image($fileInfo['id3v2']['image'][0]['data'], 'album_art.jpg');
}
Tradeoffs:
memory_limit ≥ 12MB for full feature sets.Next Steps:
ffprobe CLI calls).How can I help you explore Laravel packages today?