A exif-inspired tool/library to read metadata from audio files. It prints text information onto the terminal and can also recreate image data for viewing
- MP3
- FLAC
Run the following command, passing the path to the audio file:
bin/metadata-reader <path-to-audio-file>The program provides options such as:
- Printing metadata information.
- Printing the audio frame data.
- Extracting and saving album art to
/tmpfor viewing.
-
MP3 Frame List Explanation
- Currently, users need to look up frame codes (e.g.,
APICfor image data) to understand what each code means - Add explanations of each code directly to the output.
- Currently, users need to look up frame codes (e.g.,
-
MP3 Frame Header Reading
- This functionality is not yet implemented (
mp3_lut.c).
- This functionality is not yet implemented (
-
Image Format Support
- Currently limited to only JPEG files.
- Add support for additional image formats.
-
Consistent naming for functions
- Some functions start with id3 and others with ID3.
-
Update README to include updated Menu-driver program
- Option showing MP3FrameHeader is not present in the webp.
-
Add support for other music formats
- ogg
- wav
- m4a
- aiff
Functions available for external usage are marked with a + symbol.
-
get_id3tag(char *filename) -> ID3Tag*- Accepts the path to an MP3 file.
- Returns an
ID3Tagstruct if an ID3 tag is present. - Returns
NULLif no ID3 tag is present.
-
ID3_Free(ID3Tag *tag) -> void- Releases memory allocated for an
ID3Tagstruct. - Call this function when the struct is no longer needed.
- Releases memory allocated for an
-
id3_tagcheck(char *filename) -> int- Checks for the presence of an ID3 tag in the file.
- Returns
1if present, otherwise0.
-
show_id3tagheader(ID3Tag *tag) -> void- Prints ID3 tag header information to the terminal.
-
get_mp3FrameHeader(char *filename) -> MP3FrameHeader*- Accepts the path to an MP3 file.
- Returns a
MP3FrameHeaderstruct if file is MP3. - Returns
NULLif file is not MP3.
-
MP3FrameHeader_FREE(MP3FrameHeader *mfhd) -> MP3FrameHeader*- Releases memory allocated for a
MP3FrameHeaderstruct. - Call this function when the struct is no longer needed.
- Releases memory allocated for a
-
program_demo(char *filename) -> void- Menu-driven program that prints ID3 tag and MP3FrameHeader information.
- Can serve as a reference for using the
ID3TagandMP3FrameHeaderstruct.
-
get_FLACMetadata(char *filename) -> FLACMetadata- Accepts the path to a FLAC file.
- Returns a
FLACMetadatastruct containing metadata.
-
clean_FLACMetadata(FLACMetadata *metadata) -> void- Frees memory allocated for a
FLACMetadatastruct. - Call this function when the struct is no longer needed.
- Frees memory allocated for a
-
flac_check(char *filename) -> int- Checks if the file is a valid FLAC file.
- Returns
1if valid, otherwise0.
-
view_FLACMetadata(char *filename) -> void- Menu-driven program that prints FLAC metadata.
- Can serve as a reference for using the
FLACMetadatastruct.



