Mumble-Ruby-Pluginbot – Youtube, Internetradio, Musik – alles per Mumble steuerbar

Der Mumble-Ruby-Pluginbot (im weiteren Text als Pluginbot bezeichnet) ist ein auf Mumble-Ruby basierter und in Ruby geschriebener, vielseitiger Bot für Mumble, der headless auf einem Linux-System läuft und komplett über Mumble steuerbar ist.

Er wird aktuell ständig weiterentwickelt von dafoxia und ist lizenziert unter der MIT-Lizenz.

Die Hauptaufgabe aktuell ist der Dienst als Musikbot. Über Plugins kann jedoch weitere Funktionalität hinzugefügt werden.

Der Pluginbot wird per Music Player Daemon (MPD) mit Musik gespeist, die er als Benutzer eines Mumble-Servers an eben diesen streamt.

Wieso sollte ich diesen Musikbot und nicht einen der unzähligen anderen verwenden?

Ganz einfach, weil man sich mit diesem Bot out of the Box bei der riesigen Musiksammlung von Youtube bedienen kann.

Und das Beste daran: Nicht nur der Betreiber des Bots kann neue Musik hinzufügen, sondern jeder Benutzer, auf den der Bot reagiert.

Man braucht keinerlei Interface, um den Bot zu bedienen, Musik aus anderen Quellen hinzuzufügen oder um Musik zur Playlist hinzuzufügen. All dies funktioniert über Textbefehle direkt an den Bot per Mumble-Chat.

Musik von Youtube herunterladen

Um z. B. die Musik eines Videos in die Sammlung zu packen, schreibt man an den Bot

.ytlink https://www.youtube.com/watch?v=FPKG88FvU6U

Der Pluginbot analysiert diese URL und antwortet dem Benutzer. Danach wird normalerweise das Video heruntergeladen und das Audio extrahiert. Existiert das Video bereits im Dash-Format, so wird lediglich die Audiospur heruntergeladen.

Im Hintergrund arbeitet für das Youtube-Plugin das Programm youtube-dl.

Statt eines einzigen Videos kann man auch eine ganze Playlist angeben, die dann analysiert und heruntergeladen wird.

Bei Youtube suchen

Man kann aber auch Musik bei Youtube suchen lassen über den Bot, z. B. schreibt man diesem:

.yts deine tolle Musik

Einige Sekunden später (je nach Internetverbindung des Bots) erhält man eine Antwort, bei der jedes Video durchnummeriert ist.

Möchte man das dritte Video hinzufügen, schreibt man an den Bot:

.yta 2

Zwei deshalb, weil die Zählung bei 0 anfängt :)

Man kann aber auch alle Suchergebnisse auf einmal herunterladen lassen mit:

.yta all

Soundcloud?

Aktuell kann sich der Pluginbot zusätzlich per SoundCloud-Plugin von SoundCloud bedienen.

Um ein Lied von SoundCloud hinzuzufügen, schreibt man an den Bot:

.soundcloud URL

Und andere Plattformen?

Es ist möglich, weitere Plugins zu schreiben z. B. für Bandcamp und alle anderen Dienste, mit denen youtube-dl klarkommt.

Radio?

Es ist auch möglich, einen Radiostream über den Bot abspielen zu lassen, aktuell jedoch nur .pls-Dateien.

Normale Musik?

Man kann natürlich dem im Hintergrund laufenden MPD auch Zugriff auf die eigene Musiksammlung geben.

Und sonst?

Der Pluginbot ermöglicht die komplette Steuerung des im Hintergrund laufenden Music Player Daemon (MPD). Auch dessen Einstellungen lassen sich im laufenden Betrieb anpassen, wie z. B. Repeat, Lautstärke, Crossfade, aktueller Song und vieles mehr.

Alle Möglichkeiten erhält man mit:

.help mpd

Befindet sich der Bot in einem anderen Kanal, aus dem man ihn als Benutzer wegen mangelnder Berechtigungen nicht zu sich verschieben kann, so schreibt man einfach .ch für „come here“ an diesen. Schon betritt er den Kanal.

Was aktuell vom Bot gespielt wird, befindet sich immer in der Warteschlange (queue). Diese kann man anzeigen lassen mit:

.queue

Um sie zu löschen, gibt es den .clear Befehl. Für das nächste Lied schreibt man .next, für das vorherige .prev, usw.

Eine vermutlich große Liste aller Musikstücke in der Sammlung erhält man mit:

.songlist

Sollte das AntiFlood-Modul für den Mumble-Moderator auf dem Server laufen, so sorgt der Bot selbst dafür, nicht wegen Spams vom Server geworfen zu werden und verteilt die Liste auf mehrere kleine Nachrichten.

Sendet der Bot aktuell gar nichts und befindet sich etwas in der Queue, so startet man ihn mit:

.play

Der Bot lässt sich übrigens so einstellen, dass er die Musik stoppt, sobald ein unregistrierter Benutzer den Kanal betritt; und per Voreinstellung reagiert er auch nicht auf unregistrierte Benutzer.

Playlisten

Mit dem Befehl .playlists kann man sich alle gespeichert Playlisten anzeigen lassen und mit .playlist ID eine laden; dabei wird die aktuelle Queue durch die Lieder in der Playlist ersetzt.

Ganz frisch ist der Befehl .saveplaylist NAME, mit dem man die aktuelle Queue als Playlist abspeichern lassen kann.

Informationen zum aktuellen Titel

Per Voreinstellung werden Informationen zum aktuellen Titel im Kommentar des Bots angezeigt. Zusätzlich lässt sich einstellen, dass der Bot den aktuellen Titel im Chat anzeigt. Bei Youtube-Videos wird sogar das Vorschaubild im Kommentar angezeigt.

mumble-ruby-pluginbot-running

Und was ist mit Störern?

Wenn es auf dem Mumble-Server einen Störer gibt, der den Bot „kaputtsteuert“, so lässt sich mit .history eine Liste der letzten Befehle und der Benutzer anzeigen, die diese an den Bot gesendet haben. Ist der Störer ausgemacht, lässt er sich auf die schwarze Liste setzen und wird fortan vom Bot ignoriert.

Wie fügt man Musik aus der Sammlung hinzu?

Hierfür gibt es den Befehl .where, der anhand eines Suchstrings Musik in der lokalen Sammlung findet. Mit dem Befehl .add gefolgt von einem Suchstring wird diese Musik zur aktuellen Queue hinzugefügt.

Detaillierte Hilfe

Der Pluginbot antwortet auf .help mit einem allgemeinen Hilfetext. Für jedes Plugin gibt es einen eigenen Hilfetext; so ruft man z. B. die Hilfe für das Youtube-Plugin auf mittels:

.help youtube

Oder die Hilfe zum Steuern der Bots mit:

.help control

Codecs

Im Gegensatz zu anderen Musikbots, die auch Mumble-Ruby basieren, hat dieser Bot sowohl Unterstützung für den neuen Opus-Codec, der in Mumble verwendet wird, als auch für den älteren CELT-Codec, der noch auf vielen älteren Mumble-Servern Verwendung findet.

Installation

Für die nicht gerade triviale Installation gibt es eine Anleitung in meinem Wiki; diese funktioniert einwandfrei via Copy&Paste, sofern man nur einen Bot benötigt. Will man mehrere Bots erstellen, so finden sich in jedem dafür notwendigen Schritt Notizen dazu.

Die Anleitung wurde erfolgreich getestet mit einem Debian ‚Wheezy‘ 7 (oldstable) und mit einem Debian ‚Jessie‘ 8 (stable). Ubuntu sollte ebenso funktionieren.

Ausserdem haben andere Menschen die Anleitung auf einem BananaPi und einem RaspberryPi erfolgreich ausprobiert.

Neben der Installationsanleitung, die sich hier findet, gibt es noch eine Anleitung zur Konfiguration der mitgelieferten Plugins, siehe hier, und eine weitere Anleitung zur Nutzung der Plugins, siehe hier.

Auf der Hauptseite finden sich allgemeine Informationen zum Pluginbot, siehe hier.

Den Quelltext des Mumble-Ruby-Pluginbots gibt es auf GitHub, siehe hier.

Wer  Bugs findet oder Ideen hat, trägt diese bitte direkt bei GitHub im Projekt ein.

Fazit

Auf den ersten Blick sieht das alles schwierig aus, aber schon nach kurzer Eingewöhnung können selbst Menschen ohne technischen Hintergrund den Bot mit den für sie benötigen Befehlen selbst steuern.

Ich habe früher den eigenen Superbot für Bots verwendet, aber mittlerweile kann der Mumble-Ruby-Pluginbot sehr viel mehr und ist schöner zu benutzen.

PS: Der Bot kann noch viel mehr, aber das kann ich hier nicht alles in den Artikel packen :)

Ähnliche Themen …

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.