Skip to main content

Headless screen and audio capture library and CLI for Windows

Project description

recap

Headless screen and audio capture library and CLI for Windows.

Features

  • Record an entire monitor via Windows Graphics Capture (WGC)
  • Record a single window via WGC (real window capture, not desktop crop)
  • Record system audio via WASAPI loopback
  • Video-only, audio-only, or audio+video modes
  • CLI tool (recap) and importable Python library
  • Uses FFmpeg for encoding/muxing only

Installation

pip install -e .

FFmpeg must be available on PATH or specified via --ffmpeg.

Releasing

GitHub Actions will publish the package to PyPI when you push a tag that starts with v, for example v0.1.1.

Before the first release, configure PyPI Trusted Publishing for this repository and approve the pypi environment in GitHub.

CLI Usage

# Check environment
recap doctor

# List available capture targets
recap monitors
recap windows
recap devices

# Record primary monitor with audio
recap record --output recording.mp4

# Record a specific window
recap record --window-title "Notepad" --output notepad.mp4

# Record video only
recap record --video-only --output silent.mp4

# Record a 1280x720 crop from the top-left of the selected source
recap record --crop-size 1280x720 --crop-position top-left --output cropped.mp4

# Record a centered 1280x720 crop from a specific window
recap record --window-title "Notepad" --crop-size 1280x720 --crop-position middle --output notepad-cropped.mp4

# Record audio only
recap record --audio-only --output audio.wav

# Record for 30 seconds
recap record --duration 30 --output clip.mp4

Crop positions

--crop-position supports:

  • top-left, top-middle, top-right
  • middle-left, middle, middle-right
  • bottom-left, bottom-middle, bottom-right

Center aliases are also accepted (center, top-center, middle-center, etc.).

Library Usage

from recap import Recorder, RecordingConfig

config = RecordingConfig(output="recording.mp4")
recorder = Recorder(config)
recorder.start()
# ... do work ...
recorder.stop()
recorder.wait()

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

recap_capture-0.2.1.tar.gz (23.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

recap_capture-0.2.1-py3-none-any.whl (25.6 kB view details)

Uploaded Python 3

File details

Details for the file recap_capture-0.2.1.tar.gz.

File metadata

  • Download URL: recap_capture-0.2.1.tar.gz
  • Upload date:
  • Size: 23.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for recap_capture-0.2.1.tar.gz
Algorithm Hash digest
SHA256 2ae958326e3b83f274b14dbd7169b38d719adea47dc8865a33500a5fbcd37ceb
MD5 47331e23db4d850f8c4bc3b80a7d0a20
BLAKE2b-256 05b59d9f9f527d7916801de928bd28ef2476ffce93612f57adc27a700611cfa9

See more details on using hashes here.

Provenance

The following attestation bundles were made for recap_capture-0.2.1.tar.gz:

Publisher: release.yml on Lexian-droid/recap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file recap_capture-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: recap_capture-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 25.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for recap_capture-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 db5a8a0520396e3932a2b64ca0a12a4b6ad1035db43a34957541219efefc3eca
MD5 6c5e624fd81933ecc850784dd36724f9
BLAKE2b-256 1b722b522d45d3ca3b5cacdf66b43aaa4e91ea86fa6b2a73ef6473e438f79e14

See more details on using hashes here.

Provenance

The following attestation bundles were made for recap_capture-0.2.1-py3-none-any.whl:

Publisher: release.yml on Lexian-droid/recap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page