phonic 1.1.2 copy "phonic: ^1.1.2" to clipboard
phonic: ^1.1.2 copied to clipboard

A pure Dart package for audio file metadata manipulation.

Phonic #

A unified audio metadata tagging library for Dart that provides a format-agnostic interface for reading and writing audio metadata tags across different container formats. Work with MP3, FLAC, OGG, Opus, and MP4 files using a single, consistent API without needing to understand the complexities of ID3, Vorbis Comments, or MP4 atoms.

✨ Key Features #

  • 🎡 Format Agnostic - Unified API across ID3v1, ID3v2.x, Vorbis Comments, MP4 atoms
  • πŸ–ΌοΈ Smart Artwork - Lazy loading and memory-optimized image handling
  • ⚑ Performance - Streaming operations for large collections
  • πŸ”§ Type Safe - Strong typing with Dart enums and sealed classes
  • πŸ›‘οΈ Robust - Comprehensive error handling and validation
  • πŸ“Š Capability Aware - Format-specific constraint handling

πŸ“¦ Supported Formats #

Format Extension Container Read Write Artwork
MP3 .mp3 ID3v1/v2.x βœ… βœ… βœ…
FLAC .flac Vorbis Comments βœ… βœ… βœ…
OGG Vorbis .ogg Vorbis Comments βœ… βœ… βœ…
Opus .opus Vorbis Comments βœ… βœ… βœ…
MP4/M4A .mp4, .m4a MP4 Atoms βœ… βœ… βœ…

πŸ”§ Installation #

Add phonic to your pubspec.yaml:

dependencies:
  phonic: <latest>

πŸ“– Quick Start #

import 'package:phonic/phonic.dart';

// Load and read metadata
final audioFile = await Phonic.fromFile('song.mp3');
final title = audioFile.getTag(TagKey.title);
print('Title: ${title?.value}');

// Modify and save
audioFile.setTag(TitleTag('New Title'));
final updatedBytes = await audioFile.encode();
await File('updated_song.mp3').writeAsBytes(updatedBytes);

audioFile.dispose();

πŸ“š Documentation #

Core Topics #

Advanced Topics #

Reference #

🀝 Contributing #

We welcome contributions! Areas where help is needed:

  • Additional format support (FLAC, OGG, MP4)
  • Testing and bug fixes
  • Documentation improvements
  • Performance optimizations

πŸ“„ License #

This project is licensed under the MIT License - see the LICENSE file for details.


Phonic - Because metadata should be simple, not format-dependent.

1
likes
150
points
327
downloads

Publisher

verified publisherzooper.dev

Weekly Downloads

A pure Dart package for audio file metadata manipulation.

Homepage
Repository (GitHub)
View/report issues

Topics

#audio #metadata #id3 #mp3 #vorbis

Documentation

API reference

Funding

Consider supporting this project:

buymeacoffee.com

License

MIT (license)

Dependencies

collection, convert, equatable

More

Packages that depend on phonic