Skip to main content

Video Chat with peers inside JupyterLab

Project description

jupyter-videochat

Video Chat with JupyterHub peers inside JupyterLab, powered by Jitsi.

install from pypi reuse from npm continuous integration interactive demo

This extension is composed of:

  • a Python package named jupyter_videochat, which offers:
    • a jupyter_server extension which provides convenient, configurable defaults for rooms on a JupyterHub
    • a JupyterLab federated extension named jupyter-videochat
      • also distributed on npm
      • for more about the TypeScript/JS API, see CONTRIBUTING

jupyter-videochat screenshot

Requirements

  • jupyterlab ==3.*

Install

Install the serverextension and labextension with pip:

pip install jupyter_videochat

Troubleshoot

If you are seeing the frontend extension but it is not working, check that the server extension is enabled:

jupyter serverextension list
jupyter serverextension enable --sys-prefix --py jupyter_videochat

If the server extension is installed and enabled but you are not seeing the frontend, check the frontend is installed:

jupyter labextension list

Uninstall

pip uninstall jupyter_videochat

Configuration

Server Configuration

In your jupyter_server_config.json (or equivalent .py or conf.d/*.json), you can configure the VideoChat:

  • room_prefix, a prefix used for your group, by default a URL-frieldy version of your JupyterHub's hostname
    • can be overriden with the JUPYTER_VIDEOCHAT_ROOM_PREFIX environment variable
  • jitsi_server, an HTTPS host that serves the Jitsi web application, by default meet.jit.si
  • rooms, a list of Room descriptions that everyone on your Hub will be able to join

Example

{
  "VideoChat": {
    "room_prefix": "our-spiffy-room-prefix",
    "rooms": [
      {
        "id": "stand-up",
        "displayName": "Stand-Up",
        "description": "Daily room for meeting with the team"
      },
      {
        "id": "all-hands",
        "displayName": "All-Hands",
        "description": "A weekly room for the whole team"
      }
    ],
    "jitsi_server": "jitsi.example.com"
  }
}

Client Configuration

In the JupyterLab Advanced Settings panel, the Video Chat settings can be further configured, as can a user's default displayName and email. The defaults provided are generally pretty conservative, and disable as many third-party services as possible.

Binder Client Example

For example, to enable all thirdy-party features:

  • create an overrides.json

    {
      "jupyter-videochat:plugin": {
        "interfaceConfigOverwrite": null,
        "configOverwrite": null
      }
    }
    
  • Copy it to the JupyterLab settings directory

    # postBuild
    mkdir -p ${NB_PYTHON_PREFIX}/share/jupyter/lab/settings
    cp overrides.json ${NB_PYTHON_PREFIX}/share/jupyter/lab/settings
    

Start a Meet by URL

Appending ?jvc=room-name to a JupyterLab URL will automatically open the Meet (but not fully start it, as browsers require a user gesture to start audio/video).

Binder URL Example

On Binder, use the urlpath to append the argument, ensuring the arguments get properly URL-encoded.

https://mybinder.org/v2/gh/yuvipanda/jupyter-videochat/HEAD?urlpath=tree%3Fjvc%3DStand-Up
                                                         # URL-encoded  [? ] [=  ]

nbgitpuller

If you have two repos (or branches) that contain:

  • content that changes frequently
  • a stable environment

...you can use nbgitpuller to have fast-building, (almost) single-click URLs that launch right into JupyterLab showing your meeting and content. For example, to use...

...and launch directly into JupyterLab showing

  • the Preface notebook
  • the Office Hours room

...the doubly-escaped URL would be something like:

https://mybinder.org/v2/gh/yuvipanda/jupyter-videochat/HEAD?
urlpath=git-pull
  %3Frepo%3Dhttps%253A%252F%252Fgithub.com%252Fjakevdp%252FPythonDataScienceHandbook
  %26branch%3Dmaster
  %26urlpath%3Dlab%252Ftree%252FPythonDataScienceHandbook%252Fnotebooks%252F00.00-Preface.ipynb
  %253Fjvc%253DOffice%2BHours

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

jupyter-videochat-0.5.0.tar.gz (36.8 kB view details)

Uploaded Source

Built Distribution

jupyter_videochat-0.5.0-py3-none-any.whl (42.3 kB view details)

Uploaded Python 3

File details

Details for the file jupyter-videochat-0.5.0.tar.gz.

File metadata

  • Download URL: jupyter-videochat-0.5.0.tar.gz
  • Upload date:
  • Size: 36.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.6.0.post20210108 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.6

File hashes

Hashes for jupyter-videochat-0.5.0.tar.gz
Algorithm Hash digest
SHA256 e50cdde598e20d7af28eaa78cd10102e625c37ef70c6d7add3d94fc5270cbbdb
MD5 93b48dd0b234190374373df46761677c
BLAKE2b-256 470029e4ce04c9ea75bc981b7cb6c604338b88fac1947cd07b0476ee3464bb59

See more details on using hashes here.

File details

Details for the file jupyter_videochat-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: jupyter_videochat-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 42.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.6.0.post20210108 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.6

File hashes

Hashes for jupyter_videochat-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0577793eb12fedd55d470f83dd913d5efe095f6a23478815423143e62534d3fa
MD5 73ea193a55e15ebcd49c81f23b0c7df9
BLAKE2b-256 fb965bb738ac05a84241dd87dcdf6427d4a8c34ad51cd1f1741a6025a11b2eb3

See more details on using hashes here.

Supported by

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