๐Ÿ“ฆ justjake / node-screencapturekit

Apple ScreenCaptureKit for NodeJS

โ˜… 4 stars โ‘‚ 0 forks ๐Ÿ‘ 4 watching โš–๏ธ GNU General Public License v3.0
๐Ÿ“ฅ Clone https://github.com/justjake/node-screencapturekit.git
HTTPS git clone https://github.com/justjake/node-screencapturekit.git
SSH git clone git@github.com:justjake/node-screencapturekit.git
CLI gh repo clone justjake/node-screencapturekit
Jake Teton-Landis Jake Teton-Landis require main thread 102e7d7 1 years ago ๐Ÿ“ History
๐Ÿ“‚ main View all commits โ†’
๐Ÿ“ scripts
๐Ÿ“ Sources
๐Ÿ“ src
๐Ÿ“„ .gitignore
๐Ÿ“„ .npmrc
๐Ÿ“„ LICENSE
๐Ÿ“„ package.json
๐Ÿ“„ Package.swift
๐Ÿ“„ README.md
๐Ÿ“„ tsconfig.json
๐Ÿ“„ README.md

node-screencapturekit

Filter and select Mac screen content and stream it to NodeJS using Apple's ScreenCaptureKit.

Use the ScreenCaptureKit framework to add support for high-performance frame capture of screen ~and audio content~ to your Mac NodeJS app. The framework gives you fine-grained control to select and stream only the content that you want to capture. As a stream captures ~new video frames and audio samples, it passes them to your app as CMSampleBuffer objects that contain the media data and its related metadata. ScreenCaptureKit also provides a macOS-integrated picker for streaming selection and management, SCContentSharingPicker~.

Using

This is early days for the project. Install via Git:

npm add git://github.com/justjake/node-screencapturekit

There may be a version available in NPM but it probably is out of date and/or not code signed correctly.

For a demo of the available features, see the demo or read the source code.

See also the [API documentation for Apple's ScreenCaptureKit]()

Roadmap

  • Sharable content enumeration & filtering
  • Screenshot capture
  • Picker UI (if possible)
  • Built-in picker UI (SCContentSharingPicker)
  • Custom screen grab UI via SwiftUI
  • Tests
  • Binary distribution
  • Video streaming
  • Audio streaming

Development

Built with node-swift.

Get started:

npm install
npm start

Swift goes in ./Sources.

Typescript goes in ./src and builds into ./lib.