- 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.