Gitpedia

PyAudioWPatch

🐍 PyAudio | PortAudio fork with WASAPI loopback support πŸ”Š Record audio from speakers on Windows

From s0d3sΒ·Updated May 20, 2026Β·View on GitHubΒ·

> If you’re looking for a hosted desktop recording API, consider checking out [Recall.ai](https://www.recall.ai/product/desktop-recording-sdk?utm_source=github&utm_medium=sponsorship&utm_campaign=s0d3s-pyaudiowpatch), an API that records Zoom, Google Meet, Microsoft Teams, in-person meetings, and more. > ✨ This repo is sponsored by Recall.ai ✨ The project is written primarily in C, distributed under the Other license, first published in 2022. Key topics include: audio, loopback, pyaudio, python, record-speaker-output.

Latest release: v0.2.12.8β€” v0.2.12.8 β¨Έ Modern Snake πŸ“³
January 14, 2026View Changelog β†’

❀ Recall.ai - API for desktop recording

If you’re looking for a hosted desktop recording API, consider checking out Recall.ai, an API that records Zoom, Google Meet, Microsoft Teams, in-person meetings, and more. <br><br>
✨ This repo is sponsored by Recall.ai ✨

<div align="center"> <!---![PyAudioWasapiLoopbackPatch](assets/snake-350_patch.png)--> <img alt="PyAudio Wasapi Loopback Patch" src="https://raw.githubusercontent.com/s0d3s/PyAudioWPatch/media_content_distribution/assets/snake_trace_clear.svg" height="414"/>

PyAudioWPatch

This fork will allow you to use the WASAPI device as loopback using PyAudio.
<br>
So you can use speakers to record audio ✨

Last Commit
Wheels
Downloads
Py Version
Latest release

</div>

<br /><br />

For whom?

If you want to record sound from speakers in python, then this fork is for you. You can get recording from any device that supports WASAPI, for example, you can even record audio from Bluetooth headphones🎧

PyAudioW(indows|ASAPI)Patch come only with WMME, DirectX and WASAPI support
if you need more -> create an issue

How

The Windows Audio Session API (WASAPI) allows you to use output devices (that support this API) in loopback mode. At the time of release, it was impossible to achieve this using the original version of PyAudio.

Note: Now WASAPI loopback devices are duplicated at the end of the list as virtual devices. That is, to record from speakers, you need to use not just a WASAPI device, but its loopback analogue. All loopback devices are input devices.

How to use

Read -> Install -> Enjoy! ↣ Press ⭐

Installation

bash
pip install PyAudioWPatch

Wheels are available for Windows, Python 3.{7,8,9,10,11,12,13}.<br />
All wheels support APIs: WMME, WASAPI, DirectX(DSound).

In code

With new features:

python
import pyaudiowpatch as pyaudio with pyaudio.PyAudio() as p: # Open PyA manager via context manager with p.open(...) as stream: # Open audio stream via context manager # Do some stuff ...

Or in original PyAudio way:

python
import pyaudiowpatch as pyaudio p = pyaudio.PyAudio() stream = p.open(...) # Do some stuff ... stream.stop_stream() stream.close() # close PyAudio p.terminate()

Difference with PyAudio

  • The behavior of all standard methods is unchanged
  • Added several life-improving methods
  • Fixed problem with name encoding
  • Ability to record audio from WASAPI loopback devices (see example)

More detailed

Examples:

<!--- - [Play sine, using \'new context manager'](examples/pawp_play_sine_using_context_manger.py) - [Record from audio from default speakers](examples/pawp_record_wasapi_loopback.py) - [Cross-platform concept (Not example)](examples/pawp_crossplatform_concept.py)-->

Sources

The following were taken as a basis:

How to build manually

  • Build PortAudio (using the instructions in the README)
  • Install python
  • run in the PyAudioWPatch directory:
    bush
    python setup.py install
  • ???
  • Profit.

Also you can build wheels:

  • pip install cibuildwheel
  • Run in Cygwin:
    bash
    ./cygwin_cibuildwheel_build.sh
  • Get your wheels in the ./wheelhouse folder

<div align="center">

Star History

Star History Chart

Origin README

</div> <img align="right" width="200" style="margin-left: 3px" src="https://people.csail.mit.edu/hubert/pyaudio/images/snake-300.png">

PyAudio

PyAudio provides Python bindings for PortAudio v19, the cross-platform audio I/O library. With PyAudio, you can easily use Python to play and record audio on a variety of platforms, such as GNU/Linux, Microsoft Windows, and Apple macOS.

PyAudio is distributed under the MIT License.

Installation

See the INSTALLATION file in the source distribution for details. In summary, install PyAudio using pip on most platforms.

Windows

sh
python -m pip install pyaudio

This installs the precompiled PyAudio library with PortAudio v19 19.7.0 included. The library is compiled with support for Windows MME API, DirectSound, WASAPI, and WDM-KS. It does not include support for ASIO. If you require support for APIs not included, you will need to compile PortAudio and PyAudio.

macOS

Use Homebrew to install the prerequisite portaudio library, then install PyAudio using pip:

sh
brew install portaudio pip install pyaudio

GNU/Linux

Use the package manager to install PyAudio. For example, on Debian-based systems:

sh
sudo apt install python3-pyaudio

Alternatively, if the latest version of PyAudio is not available, install it using pip. Be sure to first install development libraries for portaudio19 and python3.

Building from source

See the INSTALLATION file.

Documentation & Usage Examples

License

PyAudio is distributed under the MIT License. See LICENSE.txt.

Contributors

Showing top 1 contributor by commit count.

View all contributors on GitHub β†’

This article is auto-generated from s0d3s/PyAudioWPatch via the GitHub API.Last fetched: 6/1/2026