All Projects → thebigmunch → audio-metadata

thebigmunch / audio-metadata

Licence: MIT license
A library for reading and, in the future, writing audio metadata. https://audio-metadata.readthedocs.io/

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to audio-metadata

loudgain
ReplayGain 2.0 loudness normalizer based on the EBU R128/ITU BS.1770 standard (-18 LUFS, FLAC, Ogg, MP2, MP3, MP4, M4A, AAC, ALAC, Opus, ASF, WMA, WAV, AIFF, WavPack, APE)
Stars: ✭ 127 (+209.76%)
Mutual labels:  mp4, mp3, id3v2, wav, ogg-vorbis, flac, opus, m4a
audio-tag-analyzer
Extracts metadata music metadata found in audio files
Stars: ✭ 18 (-56.1%)
Mutual labels:  metadata, mp3, flac, id3, vorbis, m4a
libwinmedia
[Archived] A cross-platform simple media playback library for C/C++.
Stars: ✭ 35 (-14.63%)
Mutual labels:  mp3, flac, ogg, vorbis, opus, m4a
nipper
🌶 💽 Nipper - Youtube playlist (& video) ripper
Stars: ✭ 23 (-43.9%)
Mutual labels:  mp4, mp3, ogg, vorbis, opus
Atldotnet
Fully managed, portable and easy-to-use C# library to read and edit audio data and metadata (tags) from various audio formats, playlists and CUE sheets
Stars: ✭ 180 (+339.02%)
Mutual labels:  metadata, mp4, mp3, wav, flac
simple-web-audio-recorder-demo
A simple HTML/JS demo that uses WebAudioRecorder.js to record audio on a web page
Stars: ✭ 141 (+243.9%)
Mutual labels:  mp3, wav, ogg-vorbis, ogg, vorbis
dart-tags
ID3 Tag parser written on the pure dart language.
Stars: ✭ 35 (-14.63%)
Mutual labels:  metadata, mp3, id3v2, id3v1, id3
Music Metadata
Stream and file based music metadata parser for node. Supporting a wide range of audio and tag formats.
Stars: ✭ 455 (+1009.76%)
Mutual labels:  metadata, mp4, mp3, wav, flac
uos
United Open-libraries of Sound. United procedures for open-source audio libraries. For FPC/Lazarus/fpGUI/MSEgui.
Stars: ✭ 112 (+173.17%)
Mutual labels:  mp3, wav, flac, ogg, opus
sox.js
📢 NodeJS wrapper for the SoX audio tool
Stars: ✭ 18 (-56.1%)
Mutual labels:  mp3, wav, flac, ogg
laravel-getid3
A Laravel package to extract metadata from media files. mp3, aac, etc. It can be used with files stored on different disks such as local disk, S3 etc.
Stars: ✭ 50 (+21.95%)
Mutual labels:  id3v2, id3v1, id3, audio-metadata
aplay-
a simple BitPerfect player
Stars: ✭ 23 (-43.9%)
Mutual labels:  mp4, mp3, flac, m4a
Symphonia
Pure Rust multimedia format demuxing, tag reading, and audio decoding library
Stars: ✭ 191 (+365.85%)
Mutual labels:  mp4, mp3, wav, flac
mp3tag.js
MP3 tagging library written in pure JavaScript for Node.js and browsers
Stars: ✭ 39 (-4.88%)
Mutual labels:  mp3, id3v2, id3v1, id3
Ni Media
NI Media is a C++ library for reading and writing audio streams.
Stars: ✭ 158 (+285.37%)
Mutual labels:  mp4, mp3, wav, flac
Mediafile
A unified reader of metadata from audio & video files.
Stars: ✭ 138 (+236.59%)
Mutual labels:  mp4, mp3, wav, flac
Audioplayer
Audio Player for Nextcloud and ownCloud
Stars: ✭ 179 (+336.59%)
Mutual labels:  mp4, mp3, wav, flac
Youtube-DL-GUI
Graphical User Interace built around youtube-dl CLI
Stars: ✭ 38 (-7.32%)
Mutual labels:  mp3, wav, flac, opus
slibs
Single file libraries for C/C++
Stars: ✭ 80 (+95.12%)
Mutual labels:  mp4, mp3, flac, m4a
Av Converter
[av-converter.com] Audio and Video Converter, and YouTube downloader. Convert to MP3, MP4, AAC, FLAC, AC3, WAV, etc.
Stars: ✭ 97 (+136.59%)
Mutual labels:  mp4, mp3, wav, flac

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].