Skip to content

JIMMI - The Jitsi Integrated Musicbot Management Interface is an open source management interface that provides a music bot for jitsi, the free video conferencing platform. Together with him, you can get your party started πŸŽ‰

License

Notifications You must be signed in to change notification settings

Music-Bot-for-Jitsi/Jimmi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

94 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation


Jimmi
Hi, I'm JIMMI!

Built with ❀️ and 🍺 by Pius, Tjark, Philipp and contributors

A music bot interface for your meeting in Jitsi.

πŸ€– Who is Jimmi?

Do you remember JIM? The Jitsi Integrated Musicbot?

I am Jimmi! Your Jitsi Integrated Musicbot Management Interface.

πŸŽ‰ How does Jimmi help me?

An awesome Jitsi Meet Party has never been so easy! - Go to app.jimmi.party fill in the party location and start listening to your music with your friends!

⚠️ Remember that you have to install the browser extension before. See below for how to install.

✨ Features

At the moment Jimmi only supports simple music playback but he already has an extension system which offers much room for improvement. For the beginning, this is how music playback looks like in the management interface:

Media playback in management interface

πŸš€ Get started!

Caused by the Cross-Origin Resource Sharing (CORS) restrictions you need a browser extension to load external YouTube videos into your session.

There have been approaches to circumvent this CORS issues, e.g. the v2 release of Jimmi that you can treet like an April Fool because it was unmaintainable and very resource intensive. For the sake of simplicity and security, it has been decided to deal with the CORS restrictions using the declarativeNetRequest feature of Manifest V3.

Jimmi should support all browsers supporting Manifest V3. If your browser doesn't work, feel free to submit an issue.

Installation

Installation of the extension depends on your browser and is easiest in Chromium/Google Chrome which is explained below:

  1. Call chrome://extensions/ in your browser
  2. On the right hand side of the navigation bar activate the Developer mode
  3. Then press Load unpacked
  4. Select the browser folder
  5. Navigate to app.jimmi.party and let the party begin!

Usage

Jimmi is a chat bot. You can ask him to !play some music which will search some music on YouTube (or rather invidious). For a full list of features, use the !help command.

To ensure access to audio devices, please use the form on the app startpage to connect to a Jitsi instance. If you just reload the page https://app.jimmi.party/#/bot/my.jitsi.instance/my-conference (or connect to it directly) you might run into issues with autoplay.

Caveats

Jimmi uses a randomized list of Invidious instances to play back music. Those instances are run by volunteers and might suffer from bugs or downtime. If you notice that a specific instance is not functioning, please report this as an issue.

Another unresolved issue is that googlevideo (where the music tracks are fetched from) might return 403 forbidden for some videos (idk why). In that case you wont be able to play that specific video and have to choose another song - Sorry for the inconvenience.

Jitsi is complicated. YouTube too. If you experience any further problems, feel free to report problems using GitHub issues or discussions and submit pull requests if you have the required knowledge ;)

How it works

Jimmi acts as a regular Jitsi user that would join your meeting. The main difference is, that his microphone output is simulated 😲 Jimmi uses the integrated MusicPlugin to interact with the invidious (selfhosted YouTube) API and fetch video information. The audio track of the requested YouTube video is then embedded into the Jimmi web interface and piped into the microphone input. That way, Jimmi can broadcast the music stream to all participants!

ToDo's

  • A ton πŸ˜„
  • Add further plugins (Jokes, mini-games)
  • Audio playback: Select sampling rate & Codec
  • Invidious Instances: Implement instance chooser
  • Web Interface: Add msuic selection into GUI
  • Error Handling: Show proper messages for common issues (CORS, missing extension, audio device access, missing video stream, ...)

πŸ“˜ License

Jimmi is licensed under GNU Affero General Public License v3.0!

About

JIMMI - The Jitsi Integrated Musicbot Management Interface is an open source management interface that provides a music bot for jitsi, the free video conferencing platform. Together with him, you can get your party started πŸŽ‰

Topics

Resources

License

Stars

Watchers

Forks