]> git.0d.be Git - botaradio.git/blobdiff - README.md
also accept files according to their extension
[botaradio.git] / README.md
index 7cd81a849d6d46e24d151de7ac3af26740c8fd50..80f229edde5a220e1723ff99d877ff234d172d27 100644 (file)
--- a/README.md
+++ b/README.md
-# botamusique
+# botaradio
 
-Botamusique is a mumble bot which goal is to allow users to listen music together with its audio output.
-Predicted functionalities will be ones you could expect from any classic music player.
+Botaradio is a fork of botamusique, a [Mumble](https://www.mumble.info/) music bot.
+Its functionalities are those people would expect from any classic music player,
+Botaradio is itself focused on functionalities expected in a broadcast radio
+context.
 
-Bot the can play :
-- Radio station from url
-- Radio station from http://www.radio-browser.info API (query from > 24k stations)
-- Youtube/Soundcloud URL (everything supported by youtube-dl)
-- Local folder (disabled, I need to work on the web interface)
+References to Botamusique are still present all around the source code, and
+this document, they pretty much apply.
 
------
-## Menu
-1. [Web Interface](#web-interface)
-2. [Installation](#installation)
-3. [Update](#udpate)
-4. [Generate a certificate](#optional-generate-a-certificate)
-5. [Starting the bot](#starting-the-bot)
-6. [Custom commands](#custom-commands)
-7. [Known issues](#known-issues)
-8. [Contributors](#contributors)
 
+## Features
 
-### Web interface
-* Disabled by default. It's working but ugly (I'm not a web developer).
+1. **Support multiple music sources:**
+    - Music in local folders (which can be uploaded through the web interface).
+    - Youtube/Soundcloud URLs and playlists (everything supported by youtube-dl).
+    - Radio stations from URL and http://www.radio-browser.info API (query from > 24k stations).
+2. **User-friendly web remote control interface.** Powered by Flask. Which supports
+    - Playlist management,
+    - File management,
+    - Upload files, etc.
+3. **Powerful command system.** Commands and words the bot says are fully customizable. Support partial-match for commands.
+4. **Ducking.** The bot would automatically lower its volume if people are talking.
+
+
+## Screenshots
 
-You need to create a folder for all your music. Organize your music by subfolder.
-The main folder needs to be declared in the config (with a '/' at the end)
-You can enable the web interface into the configuration.ini file.
+![botamusique in Mumble channel](https://user-images.githubusercontent.com/2306637/75210917-68fbf680-57bd-11ea-9cf8-c0871edff13f.jpg)
+
+![botamusique web interface](https://user-images.githubusercontent.com/2306637/75210648-9b592400-57bc-11ea-851a-c56907acf702.jpg)
+
+
+-----
+## Menu
+1. [Installation](#installation)
+1. [Configuration](#configuration)
+1. [Web Interface](#web-interface)
+1. [Starting the bot](#starting-the-bot)
+1. [Update](#update)
+1. [Known issues](#known-issues)
+1. [Contributors](#contributors)
 
 ### Installation
-1. You need python 3 with opuslib and protobuf (look at the requirement of pymumble)
-2. The Bot uses ffmpeg, so you know what you have to do if ffmpeg isn't in your package manager. I personally use [this repository](http://repozytorium.mati75.eu/) on my raspberry.
 
-To Install botamusique (stable and build-in auto-update):
+#### Dependencies
+1. Install python3.
+1. Install [Opus Codec](https://www.opus-codec.org/) (which should be already installed if you installed Mumble or Murmur, or you may try to install `opus-tools` with your package manager).
+1. Install ffmpeg. If ffmpeg isn't in your package manager, you may need to find another source. I personally use [this repository](http://repozytorium.mati75.eu/) on my raspberry.
+
+#### Install botamusique
+Stable release (**recommended**):
 ```
-curl -Lo botamusique.tar.gz https://azlux.fr/botamusique/sources.tar.gz
+curl -Lo botamusique.tar.gz http://packages.azlux.fr/botamusique/sources.tar.gz
 tar -xzf botamusique.tar.gz
 cd botamusique
 python3 -m venv venv
 venv/bin/pip install wheel
+venv/bin/pip install -r pymumble/requirements.txt
 venv/bin/pip install -r requirements.txt
 ```
 
-For the master version, you can use Git installation commands (no build-in auto-update allowed):
+Testing version (from master):
 ```
-apt install python3-venv ffmpeg libjpeg-dev zlibc zlib1g zlib1g-dev
 git clone --recurse-submodules https://github.com/azlux/botamusique.git
 cd botamusique
 python3 -m venv venv
 venv/bin/pip install wheel
+venv/bin/pip install -r pymumble/requirements.txt
 venv/bin/pip install -r requirements.txt
 ```
 
-### Update
-If using the recommanded install, you can send to the bot `!update`(command by default)
 
-If using git, you need to make the update manually:
+### Configuration
+Please copy `configuration.example.ini` into `configuration.ini`, follow the instructions in the file and uncomment options you would like to modify. Please DO NOT MODIFY `configuration.default.ini`, since options undefined in `configuration.ini` will fall back into `configuration.default.ini`. This file will be constantly overridden in each update.
+
+#### Basic settings
+1. Usually, the first thing is to set the Murmur server you'd like the bot to connect to. You may also specify which channel the bot stays, and tokens used by the bot.
 ```
-git pull --all
-git submodule update
-venv/bin/pip install --upgrade -r requirements.txt
+[server]
+host = 127.0.0.1
+port = 64738
+````
+
+2. You need to specify a folder that stores your music file. The bot will look for music and upload files into that folder. You also need to specify a temporary folder to store music files download from URLs.
+```
+[bot]
+music_folder = music_folder/
+tmp_folder = /tmp/
+```
+
+#### Sections explained
+- `server`: configuration about the server. This will be overridden by the `./mumbleBot.py` parameters.
+- `bot`: basic configuration of the bot, eg. name, comment, folder, default volume, etc.
+- `webinterface`: basic configuration about the interface.
+- `commands`: you can customize the command you want for each action (eg. put `help = helpme` , the bot will respond to `!helpme`)
+- `radio`: a list of default radio (eg. play a jazz radio with the command `!radio jazz`)
+- `strings`: you can customize all words the bot can say.
+- `debug`: option to activate ffmpeg or pymumble debug. (Can be very verbose)
+
+#### (Optional) Generate a certificate
+Otherwise, you wouldn't able to register the bot into your Murmur server.
+Please do the following:
+`openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout botamusique.pem -out botamusique.pem -subj "/CN=botamusique"`
+
+
+### Web interface
+**Disabled by default** for performance and security reasons. You need to enable it in `configuration.ini`.
+```
+[webinterface]
+enabled = True
 ```
 
+Default binding address is
+```
+listening_addr = 127.0.0.1
+listening_port = 8181
+```
+
+You can access the web interface through http://127.0.0.1:8181 if you keep it unchanged.
+
+Note: Listening to address `127.0.0.1` will only accept requests from localhost. If you would like to accept requests from the public internet, you need to set it to `0.0.0.0`, and set up username and password to impose access control. In addition, if the bot is behind a router, you should also properly set forwarding rules in you NAT configuration to forward requests to your router to the bot.
 
-### (Optional) Generate a certificate
-`$ openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout botamusique.pem -out botamusique.pem -subj "/CN=botamusique"`
 
 ### Starting the bot
-`$ venv/bin/python mumbleBot.py -s HOST -u BOTNAME -P PASSWORD -p PORT -c CHANNEL -C /path/to/botamusique.pem`
+If you have set up everything in your `configuration.ini`, you can
+`venv/bin/python mumbleBot.py --config configuration.ini`
+
+Or you can
+`venv/bin/python mumbleBot.py -s HOST -u BOTNAME -P PASSWORD -p PORT -c CHANNEL -C /path/to/botamusique.pem`
+
+If you want information about auto-starting and auto-restarting of the bot, you can check out the wiki page [Run botamusique as a daemon In the background](https://github.com/azlux/botamusique/wiki/Run-botamusique-as-a-daemon-In-the-background).
 
-The bot listen to the 8181 port so you should redirect to this one in you NAT configuration to let others peoples access the web interface. (DISABLED)
+**For the detailed manual of using botamusique, please see the [wiki](https://github.com/azlux/botamusique/wiki).**
 
-If you want information about autoStart and auto-Restart the bot, [you can have help on the wiki.](https://github.com/azlux/botamusique/wiki/AutoStart---AutoRestart)
 
-### Custom commands
-You can copy the file `configuration.default.ini` to `configuration.ini` and customize all variable. Everything can be change but don't remove the default file.
+### Update
+If you enable `audo_check_update`, the bot will check for updates every time it starts.
+If you are using the recommended install, you can send `!update` to the bot (command by default).
+
+If you are using git, you need to update manually:
+```
+git pull --all
+git submodule update
+venv/bin/pip install --upgrade -r requirements.txt
+```
 
-you have the section :
-- server : configuration about the server and bot name. This is overrided by the `./mumbleBot.py` parameters.
-- bot : basic configuration of the bot : comment, folder, volume at start ....
-- webinterface : basic configuration about the interface (disabled by default)
-- command : you can customize the command you want for each action (if you put `help = helpme` , the bot will response to `!helpme` )
-- radio : here you can have a list of default radio ( I can play a jazz radio with the command `!radio jazz`)
-- rbquery : search http://www.radio-browser.info API for listed radio stations - eg: `!rbquery nora`
-- rbplay : Play a specific radio station by ID (from rbquery) - eg: `!rbplay 96748`
-- strings : you can customize all string the bot can say.
-- debug : option to activate ffmpeg or pymumble debug. (Can be very verbose)
 
 ### Known Issues
 
-During installation, you can have the error:
+1. During installation, you may encounter the following error:
 ```
 ImportError: libtiff.so.5: cannot open shared object file: No such file or directory
 ```
-You need to install a missing system librairie: `apt install libtiff5`
+You need to install a missing library: `apt install libtiff5`
+
+2. In the beginning, you may encounter the following error even if you have installed all requirements:
+```
+Exception: Could not find opus library. Make sure it is installed.
+```
+You need to install the opus codec (not embedded in all system): `apt install libopus0`
+
 
-### Contributors
-If you want to participate, You're welcome to fork and pull requests (fixes and new features).
+### Contributors (botamusique)
+If you want to participate, You're welcome to fork and submit pull requests (fixes and new features).
 
-The following people joined the collaborators for a faster development, big thanks:
-- @slipenbois
+The following people joined the collaborators for a faster development, big thanks to them:
+- @TerryGeng
 - @mertkutay
 
-Feel free to ask me if you want to help activelly without using pull requests. 
+Feel free to ask me if you want to help actively without using pull requests.