Python wrapper around the libsrtp library
Project Links
Meta
Author: Jeremy Lainé
Requires Python: >=3.10
Classifiers
Development Status
- 5 - Production/Stable
Intended Audience
- Developers
Operating System
- OS Independent
Programming Language
- Python
- Python :: 3
- Python :: 3.10
- Python :: 3.11
- Python :: 3.12
- Python :: 3.13
- Python :: 3.14
Topic
- Communications :: Telephony
- Security :: Cryptography
What is pylibsrtp?
pylibsrtp is a Python wrapper around libsrtp, making it possible to encrypt and decrypt Secure Real-time Transport Protocol (SRTP) packets from Python code.
SRTP is a profile of the Real-time Transport Protocol (RTP) which provides confidentiality, message authentication, and replay protection. It is defined by RFC 3711.
You can install pylibsrtp with pip:
$ pip install pylibsrtp
To learn more about pylibsrtp please read the documentation.
Example
#!/usr/bin/env python
from pylibsrtp import Policy, Session
key = (b'\x00' * 30)
rtp = b'\x80\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + (b'\xd4' * 160)
# protect RTP
tx_policy = Policy(key=key, ssrc_type=Policy.SSRC_ANY_OUTBOUND)
tx_session = Session(policy=tx_policy)
srtp = tx_session.protect(rtp)
# unprotect RTP
rx_policy = Policy(key=key, ssrc_type=Policy.SSRC_ANY_INBOUND)
rx_session = Session(policy=rx_policy)
rtp2 = rx_session.unprotect(srtp)
# check roundtrip worked!
assert rtp2 == rtp
Building pylibsrtp
If you wish to build pylibsrtp yourself, you will need libsrtp version 2.0 or better.
Linux
On Debian/Ubuntu run:
$ apt install libsrtp2-dev
On Fedora/CentOS run:
$ dnf install libsrtp-devel
macOS
On macOS run:
$ brew install srtp
You will need to set some environment variables to link against libsrtp:
export CFLAGS=-I$(brew --prefix openssl)/include -I$(brew --prefix srtp)/include
export LDFLAGS=-L$(brew --prefix openssl)/lib -L$(brew --prefix srtp)/lib
License
pylibsrtp is released under the BSD license.
1.0.0
Oct 13, 2025
0.12.0
Apr 06, 2025
0.11.0
Feb 02, 2025
0.10.0
Jan 24, 2024
0.9.1
Dec 01, 2023
0.9.0
Nov 30, 2023
0.8.0
Jan 21, 2023
0.7.1
Feb 02, 2022
0.7.0
Dec 30, 2021
0.6.8
Feb 14, 2021
0.6.7
Oct 15, 2020
0.6.6
Mar 14, 2020
0.6.5
Mar 07, 2020
0.6.4
Nov 25, 2019
0.6.3
Oct 31, 2019
0.6.2
Oct 31, 2019
0.6.1
Feb 07, 2019
0.6.0
Sep 07, 2018
Wheel compatibility matrix
Files in release
pylibsrtp-1.0.0-cp310-abi3-macosx_10_9_x86_64.whl (1.8MiB)
pylibsrtp-1.0.0-cp310-abi3-macosx_11_0_arm64.whl (2.1MiB)
pylibsrtp-1.0.0-cp310-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (2.6MiB)
pylibsrtp-1.0.0-cp310-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl (2.3MiB)
pylibsrtp-1.0.0-cp310-abi3-manylinux_2_28_i686.whl (2.2MiB)
pylibsrtp-1.0.0-cp310-abi3-musllinux_1_2_aarch64.whl (2.6MiB)
pylibsrtp-1.0.0-cp310-abi3-musllinux_1_2_i686.whl (2.3MiB)
pylibsrtp-1.0.0-cp310-abi3-musllinux_1_2_x86_64.whl (2.3MiB)
pylibsrtp-1.0.0-cp310-abi3-win32.whl (1.2MiB)
pylibsrtp-1.0.0-cp310-abi3-win_amd64.whl (1.5MiB)
pylibsrtp-1.0.0-cp310-abi3-win_arm64.whl (1.1MiB)
pylibsrtp-1.0.0.tar.gz (10.6KiB)