Source code for metamoth.metamoth
"""Main module."""
import os
from typing import Union
from metamoth.artist import get_am_artist
from metamoth.chunks import parse_into_chunks
from metamoth.comments import get_am_comment
from metamoth.mediainfo import get_media_info
from metamoth.metadata import AMMetadata, assemble_metadata
from metamoth.parsing import parse_comment
__all__ = [
"parse_metadata",
]
PathLike = Union[os.PathLike, str] # pylint: disable=no-member
[docs]def parse_metadata(path: PathLike) -> AMMetadata:
"""Parse the metadata from an AudioMoth recording.
Parameters
----------
path : PathLike
Returns
-------
Metadata
Parse metadata from the recording at `path`. The metadata is
returned as a :py:class:`AMMetadata` object.
"""
with open(path, "rb") as wav:
riff = parse_into_chunks(wav)
media_info = get_media_info(wav, riff)
comment = get_am_comment(wav, riff)
artist = get_am_artist(wav, riff)
am_metadata = parse_comment(comment)
return assemble_metadata(str(path), media_info, am_metadata, artist)