Metadata-Version: 2.1
Name: mumbleice
Version: 1.5.0
Summary: Mumble bot for streaming to Icecast
Home-page: https://github.com/bitcastza/mumbleice
Keywords: mumble audio icecast streaming
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Other Audience
Classifier: Topic :: Multimedia :: Sound/Audio
Classifier: Topic :: Communications
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Environment :: Console
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENCE.md
Requires-Dist: pymumble
Requires-Dist: ffmpeg-python
Requires-Dist: pydub
Requires-Dist: pyaml-env

# MumbleIce

This is a mumble bot for streaming audio from a Mumble room to Icecast.

# Installing

## Production (Docker)

The Docker image is recommended for running in production. The configuration
file can be mounted to `/mumbleice.yml` or configuration can be done using
environment variables. The file location can be changed with the
`MUMBLEICE_CONFIG_FILE` environment variable.

All configuration options can be set using environment variables:

```bash
docker run -e MUMBLE_SERVER=mumble.server bitcast/mumbleice:dev
```

### Environment Variables

- **MUMBLE_SERVER**: The Mumble server to connect to.
- **MUMBLE_PORT**: The port which the Mumble server uses. Defaults to `64738`.
- **MUMBLE_USERNAME**: The username for the bot on Mumble. Defaults to
  `live-streamer`.
- **MUMBLE_PASSWORD**: The server password.
- **MUMBLE_CHANNEL**: The Mumble channel to join. Defaults to `Root`.
- **MUMBLE_COMMAND_PREFIX**: The command prefix that identifies commands to the
  bot. Defaults to `!`.
- **MUMBLE_MAX_SILENCE**: The number of seconds of silence in Mumble required
  before the Icecast stream is disconnected. A value less than 0 implies that
  the connection will never be disconnected. Defaults to `30`.
- **ICECAST_SERVER**: The Icecast server to connect to.
- **ICECAST_PORT**: The port which the Icecast server uses. Defaults to `8000`.
- **ICECAST_USERNAME**: The username to authenticate against Icecast with.
  Defaults to `source`.
- **ICECAST_PASSWORD**: The password to authenticate against Icecast with.
  Defaults to `hackme`.
- **ICECAST_MOUNT_POINT**: The mount point to use for streaming audio. Defaults
  to `/mumble`.
- **ICECAST_AUTOCONNECT**: Automatically start streaming to Icecast once it is
  connected to Mumble. Defaults to `false`.

## Development

Mumbleice requires Python 3.9 or later.

```bash
sudo apt install python3-dev python3-pip libopus0 virtualenv pre-commit
virtualenv -p python3 pyenv
pyenv/bin/pip install -e .
pre-commit install
cp mumbleice.yml.example mumbleice.yml
# Configure MumbleIce to connect to your mumble and Icecast servers
pyenv/bin/mumbleice -c mumbleice.yml
```
