npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@100mslive/meeting-scribe

v0.0.1

Published

Record audio and video tracks of each peer in a meeting

Downloads

7

Readme

meeting-scribe

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.

Prerequisites

  • Need to have chrome installed on your system

Caveats

  • There will be no recording for the bot peer.
  • In interactive mode, don't use the launched chrome instance for joining as remote peers.

Features

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

Installation

To install meeting-scribe, follow these steps:

  1. Install using npm:
    npm install -g @100mslive/meeting-scribe
    OR, yarn:
    yarn global add @100mslive/meeting-scribe
    OR, pnpm:
    pnpm add -g @100mslive/meeting-scribe

Usage

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.

Command Line Options

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

Concepts

Adapters

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.

Available Adapters

Vendor | Bash Script --- | --- 100ms | meeting-scribe -u <YOUR_100ms_URL> -va 100ms livekit | meeting-scribe -u <YOUR_Livekit_URL> -va livekit

How to create your own vendor runner

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>

Support & Contributions

For support, feature requests, or contributions, please open an issue or pull request in the GitHub repository. Check CONTRIBUTING.md for setup instructions.

License

100ms meeting scribe is licensed under Apache License v2.0.