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-rightmiddle-left,middle,middle-rightbottom-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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file recap_capture-0.4.0.tar.gz.
File metadata
- Download URL: recap_capture-0.4.0.tar.gz
- Upload date:
- Size: 36.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
14fb08cc860b4d5485e30975a98698287d0a141ceac24a25978b41d6e4f25a10
|
|
| MD5 |
1eba1fb0bd9e6b921e6b0528c1c440db
|
|
| BLAKE2b-256 |
7c24109cfaa2cadb147938e3e40696b5fccdbdd9ca57497a5fc5614b86fb17b0
|
Provenance
The following attestation bundles were made for recap_capture-0.4.0.tar.gz:
Publisher:
release.yml on Lexian-droid/recap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
recap_capture-0.4.0.tar.gz -
Subject digest:
14fb08cc860b4d5485e30975a98698287d0a141ceac24a25978b41d6e4f25a10 - Sigstore transparency entry: 1204525170
- Sigstore integration time:
-
Permalink:
Lexian-droid/recap@43c9612aef27d444016174a12415ecf016dcbc9f -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/Lexian-droid
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@43c9612aef27d444016174a12415ecf016dcbc9f -
Trigger Event:
push
-
Statement type:
File details
Details for the file recap_capture-0.4.0-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: recap_capture-0.4.0-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 235.1 kB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
07d1e25f94a4b2cc4226bb1cc0673067a5728e462e9f2897844b55ed650c4cc2
|
|
| MD5 |
f1632013f3844ff63ade3d3e4894f965
|
|
| BLAKE2b-256 |
b821904df38e450487e7bbb3e973e37fca601dd4b0a4ef0de038299dc1ecbcdb
|
Provenance
The following attestation bundles were made for recap_capture-0.4.0-cp313-cp313-win_amd64.whl:
Publisher:
release.yml on Lexian-droid/recap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
recap_capture-0.4.0-cp313-cp313-win_amd64.whl -
Subject digest:
07d1e25f94a4b2cc4226bb1cc0673067a5728e462e9f2897844b55ed650c4cc2 - Sigstore transparency entry: 1204525195
- Sigstore integration time:
-
Permalink:
Lexian-droid/recap@43c9612aef27d444016174a12415ecf016dcbc9f -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/Lexian-droid
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@43c9612aef27d444016174a12415ecf016dcbc9f -
Trigger Event:
push
-
Statement type:
File details
Details for the file recap_capture-0.4.0-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: recap_capture-0.4.0-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 235.5 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4b5cdf5ab6c0270065aea45ce3d23741e9b489d926efc1069fa2bedc0cd23ee0
|
|
| MD5 |
d97faf150f83af27c89084d432425532
|
|
| BLAKE2b-256 |
a8edcd4010bd03d1fcb0ce9f2c104ecb006edcee563146affceb6351c584ff1b
|
Provenance
The following attestation bundles were made for recap_capture-0.4.0-cp312-cp312-win_amd64.whl:
Publisher:
release.yml on Lexian-droid/recap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
recap_capture-0.4.0-cp312-cp312-win_amd64.whl -
Subject digest:
4b5cdf5ab6c0270065aea45ce3d23741e9b489d926efc1069fa2bedc0cd23ee0 - Sigstore transparency entry: 1204525222
- Sigstore integration time:
-
Permalink:
Lexian-droid/recap@43c9612aef27d444016174a12415ecf016dcbc9f -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/Lexian-droid
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@43c9612aef27d444016174a12415ecf016dcbc9f -
Trigger Event:
push
-
Statement type:
File details
Details for the file recap_capture-0.4.0-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: recap_capture-0.4.0-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 234.9 kB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f68f6fca36059ba4f2dad52f37c5f28965926d4c08a504f1b7cb29e88637483c
|
|
| MD5 |
aaee969f8247995f858d3f0b32cd9193
|
|
| BLAKE2b-256 |
1e145ececade9a14ac5adae37880286ddaba199910eaa49b519b837f21e33052
|
Provenance
The following attestation bundles were made for recap_capture-0.4.0-cp311-cp311-win_amd64.whl:
Publisher:
release.yml on Lexian-droid/recap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
recap_capture-0.4.0-cp311-cp311-win_amd64.whl -
Subject digest:
f68f6fca36059ba4f2dad52f37c5f28965926d4c08a504f1b7cb29e88637483c - Sigstore transparency entry: 1204525184
- Sigstore integration time:
-
Permalink:
Lexian-droid/recap@43c9612aef27d444016174a12415ecf016dcbc9f -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/Lexian-droid
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@43c9612aef27d444016174a12415ecf016dcbc9f -
Trigger Event:
push
-
Statement type:
File details
Details for the file recap_capture-0.4.0-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: recap_capture-0.4.0-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 234.7 kB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b98ded01930a56a356292ca58e8e808ab253084c709b86a3f97460c37a824b24
|
|
| MD5 |
79a6d8be7cf683ed5304279065ce35d4
|
|
| BLAKE2b-256 |
ff9e6fe5515c3a0a13b6488d65989e799abb63f4c89c832746d62f64c4881694
|
Provenance
The following attestation bundles were made for recap_capture-0.4.0-cp310-cp310-win_amd64.whl:
Publisher:
release.yml on Lexian-droid/recap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
recap_capture-0.4.0-cp310-cp310-win_amd64.whl -
Subject digest:
b98ded01930a56a356292ca58e8e808ab253084c709b86a3f97460c37a824b24 - Sigstore transparency entry: 1204525209
- Sigstore integration time:
-
Permalink:
Lexian-droid/recap@43c9612aef27d444016174a12415ecf016dcbc9f -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/Lexian-droid
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@43c9612aef27d444016174a12415ecf016dcbc9f -
Trigger Event:
push
-
Statement type: