All Projects → jupyterlab-contrib → jupyter-videochat

jupyterlab-contrib / jupyter-videochat

Licence: BSD-3-Clause license
Video chat with peers inside JupyterLab

Programming Languages

typescript
32286 projects
python
139335 projects - #7 most used programming language
CSS
56736 projects
javascript
184084 projects - #8 most used programming language
shell
77523 projects

Labels

Projects that are alternatives of or similar to jupyter-videochat

random-redirect
Page that redirects to a random page that offers the service you are looking for
Stars: ✭ 54 (+0%)
Mutual labels:  jitsi
emrah-buster-templates
The templates of the emrah-buster installer.
Stars: ✭ 57 (+5.56%)
Mutual labels:  jitsi
nextcloud-talk-bot-framework
A framework for writing Nextcloud Talk chatbots with every language that supports gRPC.
Stars: ✭ 23 (-57.41%)
Mutual labels:  jitsi
awesome-jitsi
A curated list of wonderful resource links for Jitsi
Stars: ✭ 44 (-18.52%)
Mutual labels:  jitsi
jutsu
A jitsi meet component wrapper and custom hook moulded with react's chakra 💠
Stars: ✭ 148 (+174.07%)
Mutual labels:  jitsi
jitsi-meet-electron-sdk
Jitsi Meet SDK for Electron
Stars: ✭ 72 (+33.33%)
Mutual labels:  jitsi
jitsi-admin
Organize and fully controll your jitsi meet meetings. Make your meeting secure and be sure that only you and your fellows can join your meeting.
Stars: ✭ 76 (+40.74%)
Mutual labels:  jitsi
Docker Jitsi Meet
Jitsi Meet on Docker
Stars: ✭ 2,364 (+4277.78%)
Mutual labels:  jitsi
Matrix Docker Ansible Deploy
Matrix (An open network for secure, decentralized communication) server setup using Ansible and Docker
Stars: ✭ 2,541 (+4605.56%)
Mutual labels:  jitsi
Jitsi
Jitsi is an audio/video and chat communicator that supports protocols such as SIP, XMPP/Jabber, IRC and many other useful features.
Stars: ✭ 3,531 (+6438.89%)
Mutual labels:  jitsi
Jitsi Meet
Jitsi Meet - Secure, Simple and Scalable Video Conferences that you use as a standalone app or embed in your web application.
Stars: ✭ 17,247 (+31838.89%)
Mutual labels:  jitsi
Starrtc Android Demo
🚀starRTC,即时通讯(IM)系统,免费IM系统(含单聊,群聊,聊天室,文件传输),免费一对一视频聊天,VOIP,语音对讲(回音消除),直播连麦,视频直播,RTSP拉流,RTMP推流,webRTC服务端,在线教育,白板,小班课,在线会议,视频会议,视频监控,局域网直连(无需服务器),兼容webRTC, 支持webRTC加速,P2P高清传输,安卓、iOS、web互通,支持门禁对讲,可视对讲,电视盒子,树莓派,海思,全志,任天堂switch,云游戏,OTT设备,物联网平台,C语言自研方案,支持二次开发成类微信,类映客等APP,✨万水千山总是情,来个star行不行✨,更多示例请访问:
Stars: ✭ 3,038 (+5525.93%)
Mutual labels:  jitsi
jitsi-box
A Raspberry Pi based box to automate holding hybrid conferences with Jitsi
Stars: ✭ 15 (-72.22%)
Mutual labels:  jitsi
ohbm2020-posters
Centralized registry of Jitsi rooms and pdfs for OHBM 2020 posters.
Stars: ✭ 33 (-38.89%)
Mutual labels:  jitsi
jitsi-scalable-helm
Scalable jitsi helm chart
Stars: ✭ 28 (-48.15%)
Mutual labels:  jitsi
app
Platform for virtual meetups and virtual networking
Stars: ✭ 57 (+5.56%)
Mutual labels:  jitsi
iorestoacasa.work
Frontend of the video calling platform iorestoacasa.work
Stars: ✭ 36 (-33.33%)
Mutual labels:  jitsi
terraform aws jitsi meet
Deploy Jitsi Meet to AWS with Terraform
Stars: ✭ 19 (-64.81%)
Mutual labels:  jitsi

jupyter-videochat

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

documentation on readthedocs Extension status install from pypi install from conda-forge reuse from npm continuous integration interactive demo changelog contributing

jupyter-videochat screenshot

Requirements

  • python >=3.7
  • jupyterlab ==3.*

Install

Install the server extension and JupyterLab extension with pip:

pip install -U jupyter-videochat

...or conda/mamba:

conda install -c conda-forge jupyter-videochat

Usage

See the [Jitsi Handbook] for more about using the actual chat once launched.

View the Room List

JupyterLab

  • From the Main Menu...
    • Click File New Video Chat
  • From the Launcher...
    • Open a new JupyterLab Launcher
    • Scroll down to Other
    • Click the Video Chat launcher card

RetroLab

  • From the Main Menu...
    • Click File New Video Chat
  • From the RetroLab File Tree...
    • Click the New Video Chat button

Start a Chat

  • Provide your name and email (optional)
    • these will be saved in JupyterLab user settings for future usage
    • your email will be used to provide Gravatar icon
  • From one of the room providers, choose a room.
    • You may need to provide a room name

Stop a Chat

  • From the the Jitsi IFrame:
    • Click the red "hang up" button, or
  • From the Video Chat toolbar
    • Click the Disconnect Video Chat button

Troubleshoot

If the Jitsi frame actually loads, the [Jitsi Handbook] is the best source for more help.

I see the Lab UI, but the video chat IFrame doesn't load

Sometimes the Jitsi IFrame runs into issues, and just shows a white frame.

Try reloading the browser.

I see the UI but I'm missing rooms

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

... and restart the server.

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.

Architecture

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 pre-built or federated extension named jupyter-videochat
      • also distributed on npm
      • at JupyterLab runtime, some Plugins which can be independently disabled
        • jupyterlab-videochat:plugin which is required by:
        • jupyterlab-videochat:rooms-server
        • jupyterlab-videochat:rooms-public
        • jupyterlab-videochat:toggle-area

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.

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

JupyterLite Client Example

Note: JupyterLite is still alpha software, and the API is likely to change.

jupyter lite build

jupyter_lite_config_.json

{
  "LabBuildConfig": {
    "federated_extensions": ["https://pypi.io/.../jupyterlab-videochat-0.6.0.whl"]
  }
}

Add a runtime jupyter-lite.json (or a build time overrides.json) to disable server rooms.

{
  "jupyter-lite-schema-version": 0,
  "jupyter-config-data": {
    "disabledExtensions": ["jupyterlab-videochat:rooms-server"],
    "settingsOverrides": {
      "jupyterlab-videochat:plugin": {
        "disablePublicRooms": false
      }
    }
  }
}

This can then be tested with:

jupyter lite serve

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/jupyterlab-contrib/jupyter-videochat/demo?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 demo (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/jupyterlab-contrib/jupyter-videochat/demo?
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

JupyterLite Example

Additionally, ?JVC-PUBLIC=a-very-long-and-well-thought-key can be enabled, providing a similar experience, but for unobfuscated, publicly-visible rooms. Use with care, and as a moderator take additional whatever steps you can from within the Jitsi security UI, including:

  • lobbies
  • passwords
  • end-to-end encryption

Once properly configured above, a JupyterLite site can be git pushed to GitHub Pages, where a URL is far less obfuscated.

https://example.github.io/my-repo/lab?JVC-PUBLIC=a-very-long-and-well-thought-key
  • probably don't click on links shorter than about ten characters

Uninstall

pip uninstall jupyter-videochat

or

conda uninstall jupyter-videochat
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].