Video Chat with peers inside JupyterLab
Project description
jupyter-videochat
Video Chat with JupyterHub peers inside JupyterLab, powered by Jitsi.
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
- a
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
- can be overriden with the
jitsi_server
, an HTTPS host that serves the Jitsi web application, by defaultmeet.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...
- the Python Data Science Handbook as
master
- this project's repo, at
HEAD
(not recommended, as it's pretty minimal)
...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
Built Distribution
Hashes for jupyter_videochat-0.5.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0577793eb12fedd55d470f83dd913d5efe095f6a23478815423143e62534d3fa |
|
MD5 | 73ea193a55e15ebcd49c81f23b0c7df9 |
|
BLAKE2b-256 | fb965bb738ac05a84241dd87dcdf6427d4a8c34ad51cd1f1741a6025a11b2eb3 |