meeting-scribe is a powerful, yet experimental, tool designed for joining WebRTC-based calls seamlessly. Its primary functionality includes recording individual audio and video tracks during online meetings. Currently in its developmental phase, it offers a glimpse into the potential of automated meeting recordings. This tool is best suited for developers, tech enthusiasts, and early adopters who are interested in exploring new technologies in the realm of online communication.
NOTE: This tool is still in experimental stage, and hence not meant for production usage yet. Things may break, and the interface may change without supporting backward compatibility.
- Need to have chrome installed on your system
- There will be no recording for the bot peer.
- In interactive mode, don't use the launched chrome instance for joining as remote peers.
- Join WebRTC Calls: Easily join any WebRTC-based meeting with a simple command.
- Individual Track Recording: Records and stores individual audio and video tracks for each participant.
- Easy Installation: Quick and straightforward setup process.
- CLI Support: Easy-to-use CLI for quick interactions.
To install meeting-scribe, follow these steps:
- Install using npm:
OR, yarn:
npm install -g @100mslive/meeting-scribe
OR, pnpm:yarn global add @100mslive/meeting-scribe
pnpm add -g @100mslive/meeting-scribe
After installation, you can run meeting-scribe from any directory using the following command:
meeting-scribe -u https://amar-livestream-641.app.100ms.live/streaming/meeting/dcm-zlrx-pee -va 100ms
Note: Above is a sample meeting url, please login to 100ms to create your own meeting room.
-
-u, --url
: The meeting URL to join (required) -
-va, --vendor-adapter
: This is used to load default vendors like, 100ms, livekit. If you create your own vendor please add the class name as vendor adapter -
-f, --loader-file
: This need to have a location of a loader js file. It must contain class which need to passed to vendor adapter -
-o, --output-dir
: The directory to store recordings. It will contain final audio/video recording data for every track in a meeting. (default:$cwd/meeting-scribe/output
) -
-d, --downloads-dir
: The directory used by the browser as its default downloads directory. Our extension will download audio/video data periodically inside this directory. (default:$cwd/meeting-scribe/downloads
) -
-i, --interactive
: By default, the browser opens in headless mode and the meeting-scribe joins the call automatically. But, this functionality is not supported for all vendors yet. Check Available Adapters to know about which vendors are supported in headless mode currently. So, for other vendors, it is desirable that the bot at least opens up the given meeting link without performing any UI interaction like filling up the participant name, clicking on the Join button, etc. The user can then manually do the UI interactions to allow the bot to join the meeting. After joining, the bot can start recording as soon as remote peers are available in the call (Please ensure that remote peers do not join the meeting from the same browser instance from which the bot has joined the call). To enable such interactive mode, use this option. -
-h, --help
: Print help on the command line.
To see all available options:
meeting-scribe --help
meeting-scribe uses the concept of adapters to join meetings for any specific vendor. To support new vendors (like Teams, Google Meet, etc.), one needs to write the adapter for that particular vendor. To write new adapter please check examples.
Vendor | Bash Script |
---|---|
100ms | meeting-scribe -u <YOUR_100ms_URL> -va 100ms |
livekit | meeting-scribe -u <YOUR_Livekit_URL> -va livekit |
Create your own adapter file which contain a class with two mandatory methods. Below is a template.
// this what user needs to add
class VendorLoader {
pageAccess; // puppeteer page of loaded url
setPageAccess(pageAccess) {
this.pageAccess = pageAccess;
}
async onLoad() {
// your automation loader code goes here
// this will responsible to join room
}
}
module.exports = {
VendorLoader,
};
Running your own vendor execution code.
meeting-scribe --url <YOUR_VENDOR_MEETING_URL> -f <FILE_PATH> -va <VENDOR_CODE_CLASSNAME || VendorLoader>
For support, feature requests, or contributions, please open an issue or pull request in the GitHub repository. Check CONTRIBUTING.md for setup instructions.
100ms meeting scribe is licensed under Apache License v2.0.