Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

audio-metadata

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

audio-metadata

A library for reading and, in the future, writing metadata from audio files.

  • 0.11.1
  • PyPI
  • Socket score

Maintainers
1

audio-metadata

PyPI
GitHub CI Codecov
Docs - Stable Docs - Latest

audio-metadata is a library for reading and, in the future, writing audio metadata.

Why another audio metadata library? / Why not just use mutagen et al?

Clean and understandable code, nice API, and good UX (user experience) are the focal points of audio-metadata. One or more of these things I feel are lacking from already existing alternatives enough to want to write something from scratch with them in mind. Also, there are certain features not present in other solutions that would be prohibitively painful to add.

So, why should I use it?

Features and functionality that set it apart:

  • Uses the Python standard load(s)/dump(s) API.
    • Can load filepaths, os.PathLike objects, file-like objects, and bytes-like objects.
  • Metadata objects look like a dict and act like a dict.
    • Some common libraries shadow the representation of a dict and/or dict methods but do not behave like a dict.
    • Supports attribute-style access that can be mixed with dict key-subscription.
  • All metadata objects have user-friendly representations.
    • This includes humanized representations of certain values like filesize, bitrate, duration, and sample rate.
>>> import audio_metadata

>>> metadata = audio_metadata.load('05 - Heart of Hearts.flac')

>>> metadata
<FLAC ({
	'filepath': '05 - Heart of Hearts.flac',
	'filesize': '44.23 MiB',
	'pictures': [],
	'seektable': <FLACSeekTable (37 seekpoints)>,
	'streaminfo': <FLACStreamInfo ({
		'bit_depth': 16,
		'bitrate': '1022 Kbps',
		'channels': 2,
		'duration': '06:03',
		'md5': '3ae700893d099a5d281a5d8db7847671',
		'sample_rate': '44.1 KHz',
	})>,
	'tags': <VorbisComment ({
		'album': ['Myth Takes'],
		'artist': ['!!!'],
		'bpm': ['119'],
		'date': ['2007'],
		'genre': ['Dance Punk'],
		'title': ['Heart of Hearts'],
		'tracknumber': ['05'],
	})>,
})>

>>> metadata['streaminfo']
<FLACStreamInfo ({
	'bit_depth': 16,
	'bitrate': '1022 Kbps',
	'channels': 2,
	'duration': '06:03',
	'md5': '3ae700893d099a5d281a5d8db7847671',
	'sample_rate': '44.1 KHz',
})>

>>> metadata.streaminfo.bitrate
1022134.0362995076

>>> metadata.streaminfo['duration']
362.9066666666667

>>> metadata['streaminfo'].sample_rate
44100

Installation

pip install -U audio-metadata

Usage

For the release version, see the stable docs.
For the development version, see the latest docs.

The high-level API and basic usage are covered, but more advanced features/functionality need documentation.

TODO

If you're willing to contribute your time to work on audio-metadata, you can:

Appreciation

Showing appreciation is always welcome.

Thank

Say Thanks

Get your own thanks inbox at SayThanks.io.

Contribute

Contribute by submitting bug reports, feature requests, or code.

Help Others/Stay Informed

Discourse forum

Referrals/Donations

Digital Ocean Namecheap PayPal

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc