Skip to content

A Python-based screen recording and playback tool inspired by Nvidia ShadowPlay, featuring real-time recording, UI components, and replay functionality.

Notifications You must be signed in to change notification settings

Issac-Moses/Shadow-play

Repository files navigation

🎥 Shadow Recorder (NVIDIA ShadowPlay Alternative)

License Python Platform Status

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.

✨ Features

  • 🖥️ 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 Structure

  • 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

🚀 Installation

  1. Clone the repository
    git clone https://github.com/Issac-Moses/Shadow-play.git
    cd Shadow-play
  2. Install dependencies
    pip install -r requirements.txt
  3. (Optional) Install FFmpeg -Some features require ffmpeg. Download it from FFmpeg.org and add it to your system PATH.

▶️ Usage

  • Run with GUI
    python run_gui.py
  • Run in headless mode
    python headless_runner.py
    

Hotkeys (default)

  • Ctrl + Shift + R → Start/Stop Recording
  • Ctrl + Shift + S → Take Screenshot
  • Ctrl + Shift + Q → Quit -- (Soon configurable from settings ⚙️)

📦 Build into EXE

  • 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.

📸 Screenshots

🛣️ Roadmap

  • Settings page for hotkey customization
  • Add webcam overlay (PiP mode)
  • Export directly to MP4 with FFmpeg
  • Cross-platform support (Linux, Mac)

🤝 Contributing

  • Contributions are welcome!
  1. Fork the repo
  2. Create a new branch (feature/my-feature)
  3. Commit your changes
  4. Push and open a PR 🚀

⚖️ License

  • This project is licensed under the MIT License.
  • You’re free to use, modify, and distribute it as long as proper credit is given.

💡 Credits

⭐ Support

  • If you like this project, consider giving it a ⭐ on GitHub — it helps a lot!