EveryPlay is a Windows media player built with Python + PySide6 (Qt for Python) that uses VLC’s libVLC runtime (DLLs + plugins) for playback—meaning it can play almost any video/audio format that VLC supports.
It also ships with several custom-made companion tools (also written in Python) for converting, tagging, disc playback/ripping, and detailed media/codec inspection.
- Plays almost anything (VLC-powered)
If VLC can play it, EveryPlay usually can too—because it uses the same libVLC engine. - Modern GUI (PySide6 / Qt for Python)
- Playlist support
- Fullscreen mode + auto-hide controls (like VLC)
- Volume control
- Drag & drop media files into the playlist
- Extra Tools menu that launches bundled companion tools
EveryPlay relies on VLC’s codecs/demuxers, so supported formats depend on your bundled VLC runtime (bin/VLClibs) and its plugins.
That generally includes (not limited to):
- Video containers: MP4, MKV, AVI, MOV, WEBM, MPEG/MPG, TS/M2TS, FLV, WMV, and more
- Audio formats: MP3, WAV, FLAC, AAC, OGG, M4A, and more
- Disc media: DVD Video and Audio CDs (via VLC)
If you’re unsure whether something is supported, test it in VLC—if VLC plays it, EveryPlay likely will too.
EveryPlay is essentially:
- A PySide6 GUI application (Windows-only)
- Embedding libVLC (from
bin/VLClibs) into a Qt video widget - Controlling playback (play/pause/seek/volume/fullscreen) through
python-vlcbindings - Launching companion tools from the Tools menu (EXEs in
bin/)
Because VLC does the heavy lifting, EveryPlay doesn’t need separate codec packs.
EveryPlay expects this folder structure next to the main EXE:
EveryPlay/
EveryPlay.exe
bin/
VLClibs/
libvlc.dll
libvlccore.dll
plugins/
...VLC plugin folders...
ToolResources/
ffmpeg/
ffmpeg.exe
ffprobe.exe
cdda2wav/
cdda2wav.exe
DiscTool.exe
MediaInfoTool.exe
MetadataTagEditorTool.exe
VideoConverterTool.exe
- Bitness must match:
Your EveryPlay build (Python/EXE) must match the VLC runtime bitness (64-bit with 64-bit, or 32-bit with 32-bit). - The Tools menu only shows the tool EXEs in the root of
bin/.
It ignores resource folders likeVLClibs/andToolResources/.
All tools are made for Windows and are designed to be dropped into the root of bin/.
Purpose: Convert one file or a whole folder using FFmpeg—no command line needed.
How it works:
- Scans a file/folder and builds a conversion queue
- Runs ffmpeg.exe to convert (or remux) each item
- Supports common output profiles (examples):
- MP4 (H.264 + AAC)
- MKV (H.265 + AAC)
- WEBM (VP9 + Opus)
- MP3 / WAV (audio-only)
- Copy streams (fast remux)
Uses:
ToolResources/ffmpeg/ffmpeg.exeToolResources/ffmpeg/ffprobe.exe(duration/progress help)
Purpose: View & edit tags (title/artist/album/year/genre/comment) and optionally embed cover art for supported audio formats.
How it works:
- Reads tags using ffprobe
- Writes tags by doing a fast remux with ffmpeg (
-c copy) and metadata fields - Can embed cover art for common audio formats (depends on container support)
Uses:
ToolResources/ffmpeg/ffmpeg.exeToolResources/ffmpeg/ffprobe.exe
Purpose: One tool with two modes:
- Plays DVD Video and Audio CDs using VLC’s libVLC runtime.
- Includes volume control (0–200% like VLC) and keyboard volume adjustment.
Uses:
bin/VLClibs/(libVLC DLLs + plugins)
- Audio CD ripping using
cdda2wav.exe- Produces WAV tracks, then (optionally) converts via ffmpeg to MP3/FLAC
- DVD mode (best-effort)
- Copies
VIDEO_TSif the disc is readable/unprotected - Optional “best-effort” conversion of a VOB file to MP4
- Copies
Uses:
ToolResources/cdda2wav/cdda2wav.exeToolResources/ffmpeg/ffmpeg.exebin/VLClibs/(for playback mode)
Note: DVD ripping can be limited by disc encryption/protection. This tool only performs basic copy/convert workflows.
Purpose: Show detailed information about a loaded media file, including container details, stream list, and codecs.
How it works:
- Runs ffprobe on the selected file
- Displays:
- Container + duration + bitrate
- Per-stream codec name/long name
- Video resolution/FPS/pixel format
- Audio sample rate/channels/bitrate
- Subtitle language (if present)
- Also shows raw JSON output for deep inspection
Uses:
ToolResources/ffmpeg/ffprobe.exe
- Python 3.x (Windows)
- PySide6 (Qt for Python GUI)
- python-vlc (libVLC bindings)
- VLC libVLC runtime (DLLs + plugins in
bin/VLClibs/)
- PySide6 (GUI)
- FFmpeg (
ffmpeg.exe+ffprobe.exe)
- PySide6 (GUI)
- FFmpeg (
ffmpeg.exe+ffprobe.exe)
- PySide6 (GUI)
- VLC libVLC runtime (playback)
cdda2wav.exe(Audio CD ripping)- FFmpeg (
ffmpeg.exe) (format conversion) - (optional) ffprobe if you expand features later
- PySide6 (GUI)
- FFmpeg (
ffprobe.exe)
- Windows 10/11
- Python 3.x
pippackages:pip install PySide6 python-vlc
- Copy VLC runtime files into:
bin/VLClibs/libvlc.dllbin/VLClibs/libvlccore.dllbin/VLClibs/plugins/(entire plugins folder)
- Copy tool resources into:
bin/ToolResources/ffmpeg/ffmpeg.exebin/ToolResources/ffmpeg/ffprobe.exebin/ToolResources/cdda2wav/cdda2wav.exe
From your project folder:
python EveryPlay.py(Or whatever your main script is named.)
You can compile each tool and the main player with PyInstaller. A basic example:
pyinstaller --noconsole --onefile EveryPlay.py
pyinstaller --noconsole --onefile bin/VideoConverterTool.py
pyinstaller --noconsole --onefile bin/MetadataTagEditorTool.py
pyinstaller --noconsole --onefile bin/DiscTool.py
pyinstaller --noconsole --onefile bin/MediaInfoTool.pyAfter compiling, ensure your release folder still contains:
bin/VLClibs/(VLC runtime + plugins)bin/ToolResources/(ffmpeg/ffprobe/cdda2wav)- the tool EXEs in
bin/
Tip: If you don’t want “onefile” mode, remove
--onefileand ship the generated folder instead.
- Black screen / no playback
- Your VLC plugins folder may be missing or in the wrong place.
- Make sure
bin/VLClibs/plugins/exists and contains VLC plugin subfolders.
- Tool doesn’t start
- Make sure tool EXEs are directly in
bin/(not inside subfolders).
- Make sure tool EXEs are directly in
- FFmpeg features not working
- Confirm
ffmpeg.exeandffprobe.exeare inbin/ToolResources/ffmpeg/
- Confirm
- Audio CD ripping fails
- Some
cdda2wavbuilds require different device arguments depending on hardware. - Try another cdda2wav build if your drive isn’t detected correctly.
- Some
- 32-bit / 64-bit mismatch
- Everything must match (EveryPlay EXE + VLC runtime + tools).
EveryPlay is built on top of several third-party projects:
- VLC / libVLC (VideoLAN) — required for playback
- FFmpeg — required for convert + tag + media info tools
- cdda2wav — required for Audio CD ripping
Each of these has its own license/terms. When redistributing EveryPlay with these components, make sure you include the required license texts and comply with their redistribution rules.
EveryPlay = because it can play almost every video/audio format (thanks to VLC).