Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

PyOgg

PyOgg provides bindings for Xiph.org's OGG Vorbis, OGG Opus and FLAC audio file formats.

It comes bundled with the required dynamic libraries (.dll) in the Windows WHEEL (.whl) distributions.

The required libraries include the OGG library (e.g. libogg.dll) and at least either OGG Opus' libraries (e.g. libopus.dll, libopusfile.dll) and / or OGG Vorbis' libraries (e.g. libvorbis.dll, libvorbisfile.dll) to support Opus and Vorbis respectively, or the FLAC C library (e.g. libFLAC.dll) for FLAC support.

You can install PyOgg using PyPI.

pip install PyOgg

All the functions, structures and datatypes are the same as in the C++ implementation, except for some that couldn't be translated. If you want to use them natively you will have to use ctypes' data types. Please refer to the official documentation and the C++ headers.

You can import the various functions from pyogg.ogg, pyogg.vorbis, pyogg.opus and pyogg.flac or use the predefined classes and functions from pyogg.

PyOgg is not capable of playing files, however, you can use OpenAL for normal or even 3D playback with PyOpenAL.

Here's a reference for PyOgg's own classes and functions:

<class> pyogg.VorbisFile(path)
	# opens and reads an OGG Vorbis file to a buffer. 
		<str> path # path to the file (can be relative or absolute)

	<int> VorbisFile.channels
		# how many audio channels the audio data has (1 = mono, 2 = stereo, etc.)

	<int> VorbisFile.frequency
		# audio frequency (e.g. 48000, 44100, etc.)

	<str or bytes> VorbisFile.buffer
		# audio data

	<int> VorbisFile.buffer_length
		# length of the buffer

<class> pyogg.OpusFile(path)
	# opens and reads an OGG Opus file to a buffer. 
		<str> path # path to the file (can be relative or absolute)

	<int> OpusFile.channels
		# how many audio channels the audio data has (1 = mono, 2 = stereo, etc.)

	<int> OpusFile.frequency
		# audio frequency (always 48000)

	<opus_int16_p> OpusFile.buffer
		# audio data

	<int> OpusFile.buffer_length
		# length of the buffer

<class> pyogg.FlacFile(path)
	# opens and reads a FLAC file to a buffer. 
		<str> path # path to the file (can be relative or absolute)

	<int> FlacFile.channels
		# how many audio channels the audio data has (1 = mono, 2 = stereo, etc.)

	<int> FlacFile.frequency
		# audio frequency (e.g. 48000, 44100, etc.)

	<FLAC__int16_Array> FlacFile.buffer
		# audio data

	<int> FlacFile.buffer_length
		# length of the buffer

<class> pyogg.VorbisFileStream(path)
	# opens an OGG Vorbis file and prepares it for repeated reading. 
		<str> path # path to the file (can be relative or absolute)

	<vorbis.OggVorbis_File> VorbisFileStream.vf
		# Vorbis audio file stream

	<int> VorbisFileStream.channels
		# how many audio channels the audio data has (1 = mono, 2 = stereo, etc.)

	<int> VorbisFileStream.frequency
		# audio frequency (always 48000)

	<method> get_buffer() -> [buffer, buffer_length] or None
		# reads some audio data into a buffer (to set the buffer size, see pyoggSetStreamBufferSize)
		# if the file reaches it's end this method returns None
			<str or bytes> buffer # a buffer containing some audio data
			<int> buffer_length   # length of the buffer

	<method> clean_up() -> None
		# deletes the buffer and closes the file

<class> pyogg.OpusFileStream(path)
	# opens an OGG Opus file and prepares it for repeated reading. 
		<str> path # path to the file (can be relative or absolute)

	<opus.OggOpusFile> OpusFileStream.of
		# Opus audio file stream

	<int> OpusFileStream.channels
		# how many audio channels the audio data has (1 = mono, 2 = stereo, etc.)

	<int> OpusFileStream.frequency
		# audio frequency (always 48000)

	<method> get_buffer() -> [buffer, buffer_length] or None
		# reads some audio data into a buffer (to set the buffer size, see pyoggSetStreamBufferSize)
		# if the file reaches it's end this method returns None
			<opus_int16_p> buffer # a buffer containing some audio data
			<int> buffer_length   # length of the buffer

	<method> clean_up() -> None
		# deletes the buffer and closes the file

<class> pyogg.FlacFileStream(path)
	# opens a FLAC file and prepares it for repeated reading. 
		<str> path # path to the file (can be relative or absolute)

	<FLAC__StreamDecoder> FlacFileStream.decoder
		# FLAC audio file stream decoder

	<int> FlacFileStream.channels
		# how many audio channels the audio data has (1 = mono, 2 = stereo, etc.)

	<int> FlacFileStream.frequency
		# audio frequency (e.g. 48000, 44100, etc.)

	<method> get_buffer() -> [buffer, buffer_length] or None
		# reads some audio data into a buffer (to set the buffer size, see pyoggSetStreamBufferSize)
		# if the file reaches it's end this method returns None
			<FLAC__int16_Array> buffer # a buffer containing some audio data
			<int> buffer_length   # length of the buffer

	<method> clean_up() -> None
		# deletes the buffer and closes the file

<method> pyogg.pyoggSetStreamBufferSize(size)
	# changes the maximum size for stream buffers (initially 8192)
		<int> size # how much data each stream buffer holds

Metadata

Release files for PyOgg 0.6.14a1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for PyOgg 0.6.14a1
File Size Uploaded
PyOgg-0.6.14a1.tar.gz 35.1 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for PyOgg 0.6.14a1
File Interpreter ABI Platform
PyOgg-0.6.14a1-py2.py3-none-win_amd64.whl Python 3, Python 2 none Windows x86-64 Details
PyOgg-0.6.14a1-py2.py3-none-win32.whl Python 3, Python 2 none Windows x86-32 Details

Total release size: 2.2 MB

Release files / PyOgg-0.6.14a1.tar.gz

Download URL PyOgg-0.6.14a1.tar.gz
Size 35.1 kB
Tags Source
SHA-256 checksum
How to use checksums
8294b34aa59c90200c4630c2cc4a5b84407209141e8e5d069d7a5be358e94262
BLAKE2b-256 checksum
How to use checksums
1a1307358440dc3e94a71f3cd0f734e90b41392cc125de1571a99c4f8b594ccb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.2

Release files / PyOgg-0.6.14a1-py2.py3-none-win_amd64.whl

Download URL PyOgg-0.6.14a1-py2.py3-none-win_amd64.whl
Size 1.1 MB
Tags Python 2 Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
40f79b288b3a667309890885f4cf53371163b7dae17eb17567fb24ab467eca26
BLAKE2b-256 checksum
How to use checksums
521434b6b82684f26e517f6947d9c1d43e64dbf1630954f284ffd9912f4c46c8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.2

Release files / PyOgg-0.6.14a1-py2.py3-none-win32.whl

Download URL PyOgg-0.6.14a1-py2.py3-none-win32.whl
Size 1.0 MB
Tags Python 2 Python 3 Windows x86-32
SHA-256 checksum
How to use checksums
794db340fb5833afb4f493b40f91e3e0f594606fd4b31aea0ebf5be2de9da964
BLAKE2b-256 checksum
How to use checksums
19b8aa50bedf5628dc66a88a3aa6554b91a3f931baf2b221ece3a8525278b667
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.2
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page