Weave Code
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

Getid3 Laravel Package

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.

View on GitHub
Deep Wiki
Context7

At a glance

Frequently asked questions about Getid3
How do I install getID3 in a Laravel project?
Use Composer to install via `composer require james-heinrich/getid3`. Since it lacks Laravel-specific integrations, wrap it in a Service Provider to bind the library as a singleton. Example: `app('getID3')` in your provider’s `register()` method.
Does getID3 work with Laravel 9+ (PHP 8.1+)?
While getID3 officially supports PHP 5.3+, it uses deprecated functions like `unpack()` and lacks type hints. For PHP 8.1+, wrap legacy calls (e.g., replace `unpack()` with `hex2bin()`) or use a compatibility layer like `spatie/fork`. Test thoroughly for deprecation warnings.
Can I use getID3 to process video files (MKV, MP4) in Laravel?
Yes, getID3 supports MKV, MP4, AVI, and other video formats. For large files, offload processing to Laravel Queues to avoid timeouts. Use `Storage::disk()->get()` to read files from S3/local storage before passing them to `getID3()`.
How do I store extracted metadata in Laravel’s database?
Cast metadata fields (e.g., `artist`, `album`) to Eloquent attributes using `protected $casts = ['metadata' => 'array']`. For complex schemas, normalize data into separate tables (e.g., `media_tags`) or store raw JSON in a `longtext` column.
Is getID3 suitable for real-time upload processing (e.g., user uploads)?
For real-time use, process files asynchronously with Laravel Queues or background workers (e.g., Supervisor). Avoid direct processing in routes to prevent timeouts. Cache results in Redis if reprocessing is costly.
How do I handle corrupt or unsupported files with getID3?
Check `getID3()->error` after processing. Log errors silently or surface them to users via a custom exception handler. Skip corrupt files or implement retries for transient issues (e.g., network timeouts).
Are there alternatives to getID3 for Laravel?
For audio: `ffmpeg-php` (via `php-ffmpeg/ffmpeg-php`) for advanced metadata/transcoding. For video: `symfony/mime` for basic MIME checks or `league/glide` for image/video thumbnails. For lightweight needs, `spatie/media-library` integrates with getID3 but offers simpler APIs.
How can I batch-process thousands of files with getID3?
Use Laravel’s `Artisan::command()` to create a CLI tool for bulk processing. Process files in chunks (e.g., 100 at a time) to manage memory. Store intermediate results in a database or queue jobs for each file.
Does getID3 support writing metadata (e.g., updating ID3 tags)?
Yes, getID3 can write ID3v1/v2, APEv2, VorbisComments, and Lyrics3 tags. Use `getID3()->tag->setTitle()`, then call `getID3()->tag->save()`. For Laravel, wrap this in a service class to handle file locking and error recovery.
How do I integrate getID3 with Laravel’s Filesystem (S3, local storage)?
Use Laravel’s `Storage` facade to read/write files. Example: `$file = Storage::disk('s3')->get('audio.mp3'); $metadata = getID3($file);`. For writing, pass the modified file back to `Storage::disk()->put()`. Avoid direct filesystem paths for portability.
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.
codraw/framework-extra-bundle
codraw/messenger
codraw/security
codraw/mailer
codraw/contracts
codraw/profiling
codraw/dependency-injection
codraw/tester
codraw/core
nexmo/api-specification
capell-app/block-library
axium/identity
cetria/laravel-dummy-models
cetria/reflection-helper
agropredict/sso-auth-bundle
evolvestudio/spam-protection
datacore/hub-sdk
develia/commons
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony