Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Get Id3 Laravel Package

nass600/get-id3

nass600/get-id3 is a Laravel/PHP wrapper around the getID3 library that makes it easy to extract metadata and ID3 tags from audio and video files. Use it to read duration, bitrate, codecs, artwork, and other media details in Laravel apps.

View on GitHub
Deep Wiki
Context7

PHP library for handling audio/video files metadata such as mp3, avi, flac... This library provides both reading and writing metadata, based on ID3 tags, to audio/video files

Frequently asked questions about Get Id3
How do I install nass600/get-id3 in a Laravel application?
Install it with Composer using composer require nass600/get-id3. There is no service provider or facade to register because the package is a thin wrapper around the procedural getID3 API. Verify the PHP version constraint against your production PHP minor version and confirm the package autoloads correctly before using it. Prefer testing installation in a non-critical branch first, since the package has very little ecosystem traction.
Does nass600/get-id3 support Laravel 10 and Laravel 11?
The package itself is not Laravel-version-aware, so compatibility depends mainly on its PHP constraint and Composer resolving cleanly in your application. Laravel 10 and 11 require PHP 8.1 or newer, so check that the wrapper allows your PHP version. Run a time-boxed spike on the exact Laravel and PHP versions you deploy before committing to it. Because there is no Laravel integration layer, there is nothing Laravel-specific that would break, but the underlying getID3 library still needs to run on a supported PHP version.
Is nass600/get-id3 a Laravel-native package with a service provider or facade?
No. It is a thin Composer wrapper around the GPL-licensed getID3 library and does not ship a service provider, facade, config file, or queue integration. The recommended approach is to define your own MetadataExtractor interface and implement a GetId3MetadataExtractor adapter, then bind it in your application service provider. This keeps domain code decoupled so you can swap in ffprobe or a managed media API later.
What license does nass600/get-id3 use and is GPL-2.0 safe for a SaaS product?
The wrapper depends on the GPL-2.0-licensed getID3 library, which is the dominant architectural constraint. Internal-only SaaS use is generally considered lower risk, but distributing a product that includes GPL code can impose copyleft obligations. Legal review is mandatory before adoption, especially for on-premise, appliance, or source-disclosure deployment models. Do not adopt it without confirming the license fits your distribution model.
How do I read MP3 ID3 tags and audio metadata in PHP with this package?
You call the procedural getID3 API through the wrapper to analyze a local file path and receive an array of metadata such as duration, bitrate, codec, and ID3v2 tags. The API is straightforward for basic extraction, but the package adds little beyond the upstream james-heinrich/getID3 library. Normalize the raw array into a stable DTO with fields like duration, bitrate, codec, dimensions, and tags. That keeps your application independent of the package's output format.
Can nass600/get-id3 extract metadata from video files like MP4, AVI, and FLAC?
Yes. The underlying getID3 library parses audio and video containers and tags, including MP3, AVI, FLAC, and other formats, returning duration, bitrate, codecs, artwork, and related details. Accuracy varies by container, so compare output against ffprobe on a representative media corpus before relying on it. For video-heavy workloads, ffprobe via symfony/process is often a better fit.
Does nass600/get-id3 work with S3 uploads or streamed files in Laravel?
getID3 expects a local file path, so streamed or S3-backed uploads must first be persisted to a temporary local disk. Design your ingest pipeline to store the upload, run extraction, then clean up the temporary file. Test behavior against both local and S3-backed temporary files, because path handling and cleanup differ. Run extraction in a queued job rather than synchronously in the HTTP request path.
Is nass600/get-id3 actively maintained, or should I use upstream getID3 directly?
The wrapper has around 58 GitHub stars, zero dependents, and low visible activity, so treat it as an unvetted dependency and check the last release date and open issue count. It adds little beyond the upstream james-heinrich/getID3 library, so depending on upstream directly is usually the safer choice. If you keep the wrapper, confirm it tracks upstream getID3 security fixes rather than pinning an old version. Wrap it behind your own adapter either way.
How do I handle performance and security when parsing large or untrusted media files?
Parsing user-supplied media exposes you to malformed containers, decompression bombs, parser bugs, and resource exhaustion on large video files. Run extraction in an isolated queued job with strict timeouts and memory limits, and never execute it synchronously in a web request. Benchmark the largest expected file, such as a 2 GB video, before setting limits. Define a fallback path for when extraction fails or times out.
What are the best alternatives to nass600/get-id3 for media metadata extraction?
Consider upstream james-heinrich/getID3, php-ffmpeg, ffprobe invoked through symfony/process, or a managed media API depending on your accuracy and scaling needs. Each avoids the wrapper's maintenance risk, and ffprobe-based approaches usually give more reliable video metadata. Keep a MetadataExtractor interface in your application so switching implementations is a one-class change. Start with a spike comparing accuracy and performance against your own media corpus.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console