Skip to main content

streaming mp3 decoder

Project description


This library implements streaming MP3 decompression using the LAME library.


PyPI CircleCI Coveralls


First, make sure you have the LAME libraries and headers installed.


brew install lame


apt install libmp3lame-dev

Install with pip

pip install streamp3


To begin decoding an MP3, construct an MP3Decoder, passing it in a binary stream or bytes object. You can then access the bit_rate, sample_rate, and num_channels properties for information about the MP3.

from streamp3 import MP3Decoder

with open('my.mp3', 'rb') as mp3_file:
    decoder = MP3Decoder(mp3_file)
    print(decoder.bit_rate, decoder.sample_rate, decoder.num_channels)

You can then read samples from the stream directly using the read() method or use the decoder as an iterator. Samples are returned as bytes objects, which are 16-bit PCM encoded, with samples interleaved across channels. This example streams an MP3 file to the system speaker using PyAudio.

import pyaudio
from streamp3 import MP3Decoder

with open('my.mp3', 'rb') as mp3_file:
    decoder = MP3Decoder(mp3_file)

    audio = pyaudio.PyAudio()
    device = audio.get_default_output_device_info()
    speaker =,

    for chunk in decoder:



We generally use pyenv to create virtual environments. The following script creates a virtual environment for the project and installs dependencies.

pyenv install 3.6.4
pyenv virtualenv 3.6.4 streamp3
pip install -r requirements.txt


The project uses for installation and is deployed to PyPI. The project can be built for installation with the following command:

python clean --all; rm -r ./dist
python sdist bdist_wheel

The wheel and source distribution can then be uploaded to PyPI using twine.

twine upload --repository-url= dist/*


Copyright 2018 Pylon, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

streamp3-0.1.12.tar.gz (10.9 kB view hashes)

Uploaded source

Built Distribution

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page