python-vlc
VLC bindings for python.
What it is and what it does
python-vlc is a ctypes-based wrapper around libvlc, the core media engine of VLC. It exposes VLC's media playback and control functionality to Python through two interfaces: high-level wrapper classes (MediaPlayer, Instance, Media) that provide a more Pythonic API, and raw ctypes access to the underlying libvlc functions for advanced use. The module is generated from libvlc's public API headers and is designed to work with libvlc 3.* versions.
You use it to programmatically play, pause, and control audio and video files from Python, or to build media applications that need VLC's codec support and playback capabilities. It requires libvlc to be installed on your system; the Python package itself is just the binding layer.
Use it for:
- Build a Python desktop or web application that plays video or audio files without reimplementing codec support.
- Automate media playback in tests or batch processing workflows that need to verify video/audio output.
- Create a custom media player UI in Python that delegates playback to VLC's proven engine.
- Control VLC playback programmatically from a Python script (play, pause, seek, volume, etc.).
- Access VLC's media information API to read metadata or properties from audio/video files.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Python ctypes-based bindings to libvlc that let you control VLC media playback and access its API from Python code.
Yes, if you need to control VLC playback from Python and libvlc 3.* is available on your target platform. The package is stable and has no known vulnerabilities, but maintenance is aging (676 days since last release). Verify that libvlc 3.* installation is straightforward for your deployment environment before committing.
Install
python-vlc on PyPI
pip
pip install python-vlcuv
uv add python-vlcpoetry
poetry add python-vlcInstalling python-vlc
Before you install
Low install friction; distributed as a pure Python wheel. Maintenance is aging—676 days since last release—but the repository remains active and the package is marked Production/Stable.
License in practice
Licensed under LGPL-2.1+, a copyleft license. You may use and modify the package freely, but any derivative work must also be licensed under LGPL-2.1+ or compatible, and source code must be made available.
Quickstart
pip install python-vlc
import vlc
player = vlc.MediaPlayer('file:///tmp/foo.avi')
player.play()
Requires libvlc 3.* to be installed on the system; the Python module is only a ctypes wrapper around the native library.
Verify before relying
- Whether libvlc 3.* is available on all target platforms or if installation is straightforward.
- Compatibility with Python versions beyond 2 and 3 (requires_python is unspecified in metadata).
Package facts
| License | LGPL-2.1+ (copyleft) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | aging — 676 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 211,685/month — #9,478 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: python_vlc-3.0.21203-py3-none-any.whl
Keywords: vlc, video
Tags
More Multimedia packages
MoviePy is a Python library for video editing…
permissive · top 5,000 on PyPI
tinytagReads metadata (artist, title, duration,…
permissive · top 5,000 on PyPI
xhtml2pdfConverts HTML and CSS to PDF documents using…
permissive · top 5,000 on PyPI
ffmpyffmpy is a Python wrapper around FFmpeg that…
permissive · top 5,000 on PyPI
piexifPiexif reads, writes, and manipulates EXIF…
permissive · top 5,000 on PyPI
torch-audiomentationsProvides PyTorch-native audio data augmentation…
permissive · top 5,000 on PyPI
python-mpvPython ctypes-based interface to the mpv media…
copyleft · top 15,000 on PyPI
aiovlcControl VLC media player over a telnet…
permissive · top 15,000 on PyPI
pyfmodexPyfmodex provides Python bindings to the FMOD…
permissive · top 15,000 on PyPI
pyobjc-framework-MediaPlayerProvides Python bindings to macOS's MediaPlayer…
permissive · top 15,000 on PyPI
pyobjc-framework-AVKitProvides Python bindings to macOS's AVKit…
permissive · top 15,000 on PyPI
PlexAPIUnofficial Python bindings for the Plex API…
permissive · top 15,000 on PyPI
streamlinkStreamlink extracts video streams from various…
permissive · top 15,000 on PyPI
typed-ffmpegA Python wrapper around FFmpeg with full type…
permissive · top 15,000 on PyPI