Package selection guidance compiled from public package information, community data, and project usage.
Audiotagger is a Flutter/Dart package that enables reading and writing ID3 tags in MP3 files. It provides access to metadata such as title, artist, album, and more, returning data either as a Map object or a structured Tag object. Ideal for audio management apps, it supports basic tag manipulation without requiring external dependencies. The library is lightweight and focused on core functionality, making it suitable for developers needing straightforward ID3 tag handling in their music applications.
Use cases
Editing MP3 metadata
Reading song information
Batch tag updates
Music app development
Metadata extraction from audio files
Key features
Read and write ID3 tags
Supports Map and Tag object output
Lightweight and simple API
No external dependencies
Cross-platform compatibility
Suitable for
Flutter developers working with audio files
Apps needing MP3 metadata management
Simple tag editing tools
Audio library integrations
Desktop and mobile audio applications
Considerations
Limited to ID3 tags (not other formats)
No support for advanced tag types
Platform-specific file access required
Does not handle other audio formats
Requires manual error handling for file operations
Original README
Original README snapshot from the linked source repository. Visit the repository for the latest content.
audiotagger
This library allow you to read and write ID3 tags to MP3 files.
Based on JAudiotagger library.
You can write the ID3 tags from a Map.
To reset a field, pass an empty string ("").
If the value is null, the field will be ignored and it will not be written.
voidsetTagsFromMap() async {
final path = "storage/emulated/0/Music/test.mp3";
final tags = <String, String>{
"title": "Title of the song",
"artist": "A fake artist",
"album": "", //This field will be reset"genre": null, //This field will not be written
};
final result = await tagger.writeTagsFromMap(
path: path,
tags: tags
);
}
You can write the ID3 tags from a Tag object.
To reset a field, pass an empty string ("").
If the value is null, the field will be ignored and it will not be written.
voidsetTags() async {
final path = "storage/emulated/0/Music/test.mp3";
final tag = Tag(
title: "Title of the song",
artist: "A fake artist",
album: "", //This field will be reset
genre: null, //This field will not be written
);
final result = await tagger.writeTags(
path: path,
tag: tag,
);
}
You can write a single tag field by specifying the field name.
To reset the field, pass an empty string ("").
If the value is null, the field will be ignored and it will not be written. \
voidsetTags() async {
final path = "storage/emulated/0/Music/test.mp3";
final result = await tagger.writeTag(
path: path,
tagField: "title",
value: "Title of the song"
);
}
This library is developed and maintained by Nicolò Rebaioli
:globe_with_meridians: My website
:mailbox: [niko.reba@gmail.com](mailto:niko.reba@gmail.com)