A lightweight screen recording tool built in Python, inspired by NVIDIA ShadowPlay.
It allows you to record your screen, capture audio, and take instant screenshots with hotkeys — without the bloat of large recording software.
- 🖥️ Screen Recording (with optional system & microphone audio)
- 🎙️ Audio Capture using
sounddevice
+soundfile
- ⌨️ Global Hotkeys for start/stop recording & screenshots
- 📸 Screenshot Support with customizable save paths
- ⚡ Lightweight & Fast (uses
mss
+opencv-python
for efficient capture) - 🖼️ GUI Mode (PyQt5 interface) and Headless Mode (CLI)
- 📂 Customizable Output Folders for recordings & screenshots
- 🛠️ Works entirely offline, no external services required
- Project/
- │── assets/ # Icons, logos, UI images
- │── recorder/ # Core screen/audio recorder
- │── ui/ # PyQt5 GUI implementation
- │── main.py # Entry point
- │── run_gui.py # Run with GUI
- │── headless_runner.py # Run without GUI
- │── requirements.txt # Dependencies
- │── README.md # Project documentation
- Clone the repository
git clone https://github.com/Issac-Moses/Shadow-play.git cd Shadow-play
- Install dependencies
pip install -r requirements.txt
- (Optional) Install FFmpeg -Some features require ffmpeg. Download it from FFmpeg.org and add it to your system PATH.
- Run with GUI
python run_gui.py
- Run in headless mode
python headless_runner.py
- Ctrl + Shift + R → Start/Stop Recording
- Ctrl + Shift + S → Take Screenshot
- Ctrl + Shift + Q → Quit -- (Soon configurable from settings ⚙️)
- You can bundle the project into a standalone .exe using PyInstaller:
pyinstaller --noconsole --onefile --icon=assets/logo.ico run_gui.py
- The output .exe will be located in the dist/ folder.
- Settings page for hotkey customization
- Add webcam overlay (PiP mode)
- Export directly to MP4 with FFmpeg
- Cross-platform support (Linux, Mac)
- Contributions are welcome!
- Fork the repo
- Create a new branch (feature/my-feature)
- Commit your changes
- Push and open a PR 🚀
- This project is licensed under the MIT License.
- You’re free to use, modify, and distribute it as long as proper credit is given.
- OpenCV for frame processing
- mss for fast screen capture
- PyQt5 for GUI
- sounddevice for audio recording
- If you like this project, consider giving it a ⭐ on GitHub — it helps a lot!