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
python >=3.6
jupyterlab ==3.*
Install
Install the server extension and JupyterLab extension with pip
:
pip install -U jupyter-videochat
...or conda
:
conda install -c conda-forge jupyter-videochat
Troubleshoot
If you are seeing the frontend extension but it is not working, check that the server extension is enabled:
jupyter server extension list
jupyter server extension enable --sys-prefix --py jupyter_videochat
If you launch your Jupyter server with
jupyter notebook
, as Binder does, the equivalent commands are: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
If you do not see jupyterlab-videochat
, the best course of action is to
uninstall and reinstall, and carefully watch the log
output.
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. Additionally, access to
globally-accessible public rooms may be enabled.
Binder Client Example
For example, to enable all third-party features, public rooms, and open in the
main
area by default:
-
create an
overrides.json
{ "jupyter-videochat:plugin": { "interfaceConfigOverwrite": null, "configOverwrite": null, "disablePublicRooms": false, "area": "main" } }
-
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
File details
Details for the file jupyter-videochat-0.5.1.tar.gz
.
File metadata
- Download URL: jupyter-videochat-0.5.1.tar.gz
- Upload date:
- Size: 37.7 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
Algorithm | Hash digest | |
---|---|---|
SHA256 | c38cbc46e245fb53452226a4f6804f9e06171acd0fd1c60c5d3e751f7f881236 |
|
MD5 | 878f8c64785680d1623422846b53c4ee |
|
BLAKE2b-256 | 5c48c2052e089e5a83ade72d12e9002c1244ee57bcefeea2cfc0ee49b435f174 |
File details
Details for the file jupyter_videochat-0.5.1-py3-none-any.whl
.
File metadata
- Download URL: jupyter_videochat-0.5.1-py3-none-any.whl
- Upload date:
- Size: 42.9 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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 536834d14ba419ddf8c8270bdefff136ecda35e2d49e10cb0e9c1db194fca9a4 |
|
MD5 | d5bbe448ba5ff9737e6ce4774afd5539 |
|
BLAKE2b-256 | 27431a3550e2ab28a45e29ff4982258a8f4589545e41ff911f1c63ba9f95a212 |