Page 2 of 3

Re: [Discord] Musicbot verliert Verbindung

Posted: Tue Nov 15, 2022 5:38 pm
by Mulano77
Ah alles klar, deshalb funktioniert der MP3Tag nicht ^^ Kann ich Dir mit irgendwelchen logs helfen?

Re: [Discord] Musicbot verliert Verbindung

Posted: Thu Nov 17, 2022 10:43 am
by Crypto90
Es gab einige Updates für unseren discord client binary. Unter anderem wurde die discord api library aktualisiert. Schau mal, in wie weit sich das Reconnect verhalten verbessert/verändert hat.

Zum MP3Tag Thema, inwieweit wäre eine Integration zum Auslesen von Metatags denn sinnvoll? Ist so etwas notwendig? Was für eine Verbesserung würde das für dich beinhalten diese zu sehen, statt dem Dateinamen/Pfad?
Ich sehe es eher problematisch, wenn manche Dateien Metatags haben und andere nicht. Dann ist das Resultat bunt gemischt und uneinheitlich. Zudem unterstützt der Bot auch andere Dateien als MP3.

Re: [Discord] Musicbot verliert Verbindung

Posted: Thu Nov 17, 2022 5:33 pm
by Mulano77
Crypto90 wrote: Thu Nov 17, 2022 10:43 am ...

Zum MP3Tag Thema, inwieweit wäre eine Integration zum Auslesen von Metatags denn sinnvoll? Ist so etwas notwendig? Was für eine Verbesserung würde das für dich beinhalten diese zu sehen, statt dem Dateinamen/Pfad?
Ich sehe es eher problematisch, wenn manche Dateien Metatags haben und andere nicht. Dann ist das Resultat bunt gemischt und uneinheitlich. Zudem unterstützt der Bot auch andere Dateien als MP3.
Ganz einfach, zum einem geht der Pfad zu den MP3-Dateien keinem etwas an :p zum anderen hätte ich vllt noch Verständnis, wenn nur der Dateiname ohne Pfad angezeigt wird. Ausserdem sieht es meiner Meinung nach ordentlicher aus, wenn da zB. "Rammstein - Benzin" erscheint anstatt der Pfad "Shinory/Rammstein/01.Benzin.mp3". Gerade bei einer gemischten Playliste wäre das von Vorteil. MP3Tag ist eigentlich schon Standard. Der MP3 Tag hat zB auch Vorteile, zB kann man mit dem IDv2 bzw v3 Tag ein Cover speichern welches angezeigt wird. Habe 100te MP3s die alle ein Coverbild gespeichert haben. Ist natürlich kein Muss, aber ein nettes Gimmick. Man hat ja auch im Webinterface ein Coverfenster.

Edit: Mir ist gerade im Webinterface aufgefallen, das der Player weiter läuft obwohl das Lied schon zu Ende ist. Gewollt?

Image

Edit 2:

grad war der Bot mittendrin für 3 Secunden im Discord offline
Log:
Code: Select all
time="2022-11-17T18:40:58+01:00" level=info msg="-1;2;Now playing: Shinory/Runrig/Runrig - A Dh'Innse Na Firinn.mp3"
time="2022-11-17T18:42:05+01:00" level=info msg="Received message content is empty."
2022/11/17 18:45:12 [DG0] voice.go:380:wsListen() voice endpoint rotterdam1474.discord.media:443 websocket closed unexpectantly, websocket: close 4014: Disconnected.
2022/11/17 18:45:12 [DG0] voice.go:199:Close() error closing websocket, websocket: close sent
time="2022-11-17T18:45:25+01:00" level=info msg="Received message content is empty."
time="2022-11-17T18:45:26+01:00" level=info msg="Reconnecting to last voice channel: Channel Name: Music is my Life | Channel ID: 1037361536303378472 | Guild ID: 1010951157830660197"
time="2022-11-17T18:45:26+01:00" level=error msg="Lost connection to voice server while sending. Reconnecting."
time="2022-11-17T18:45:26+01:00" level=info msg="Starting audio processing."
dgVoice: PCM Channel closedtime="2022-11-17T18:45:30+01:00" level=info msg="Received message content is empty."

Re: [Discord] Musicbot verliert Verbindung

Posted: Thu Nov 17, 2022 7:57 pm
by Crypto90
Wieso geht der Pfad niemanden etwas an?
Der Pfad ist relativ INNERHALB des music/ Ordners.
Wir sprechen hier nicht von einem absoluten Pfad des Servers. Der Stamm Root Ordner im Pfad ist immer innerhalb von music/, weiter hinaus ist nichts ersichtlich.

Discord dropped andauernd die Verbindungen, das ist normal. Passiert in 30 Minuten bis 3 Stunden Intervallen.
So ist die Technik von Discord und dessen Node Server Netz aufgebaut. Will man das nicht, sollte man kein Discord nutzen. Es lässt sich leider nicht vermeiden, dass discord Bots hin und wieder reconnecten müssen.
Wir haben erst heute dazu die Discord library auf den heutigen Stand gebracht, für den Fall, dass die Api Neuerungen hier etwas mehr stabilität und "keep alive" mit "heartbeats" bringen. Hier hat es in der letzten Zeit einige Änderungen im Api Code gegeben. Aber ganz vermeiden lassen sich die Reconnects eben nicht. Wenn discord den voice gateway beendet und einen neuen erstellt, müssen alle, clients sowie bots reconnecten. Der Discord Client verschleiert das nur etwas. Sieht man an den "kurz schlechtes Signal" und dann wieder "gutes Signal" Indikatoren.

Den Punkt nur den Dateinamen anzuzeigen, machen wir in Kürze als Option in die Einstellungen.
Dann zeigt es keinen relativen Pfad im music/ Ordner mehr an, sondern nur noch den Dateinamen. Das ist noch halbwegs sinnvoll.

Metatags aus Dateien auslesen ist sogar schon bei uns auf der Todo Liste. Genauso wie das Cover aus den Meta Infos auszulesen.

Ich werde mir das die Tage mal ansehen. So könnte man immer erst versuchen auf die Dateiinfos zu gehen, bevor man online ein mögliches Cover sucht.
Der Player kann bereits sämtliche Infos liefern, wir müssten nur das parsing dafür einbauen. Zum Teil nutzen wir das auch schon für die Duration und Bitrate. Oder wir integrieren mediainfo. mal sehen.



Der Player im Webinterface ist eine Visualisierung mit Javascript, kein realer player mit irgend welchen richtigen player Funktionen, der alles 1:1 exakt synchron wiedergibt. Sondern nur das Darstellt, was der player Prozess im Hintergrund macht.
Da es beides asynchrone Prozesse sind und miteinander abgeglichen werden, kann zu solchen "Fehlern" in der Abstimmung oder Timing Bugs kommen.

Ich werde das noch weiter optimieren. Aber keine Sorge, wenn nichts zu hören ist, spielt auch nichts ab, auch wenn die webinterface animation in diesem Zustand noch verweilt. Ein klick auf den Stop button setzt alles zurück.

Re: [Discord] Musicbot verliert Verbindung

Posted: Thu Nov 17, 2022 8:10 pm
by Crypto90
Spontan würde mir eine Integration von mediainfo gefallen und diese Informationen dann im Webinterface bei den jeweiligen Dateien anzeigen. z.B. als kleines mini modal Fenster neben dem Mauszeiger bei mouseover.
Und dann natürlich auch in den chat Ausgaben. Man könnte durchaus etwas schönes fürs Auge daraus basteln.

Re: [Discord] Musicbot verliert Verbindung

Posted: Fri Nov 18, 2022 9:10 am
by Mulano77
Also muss sagen, dieses mal wurde die ganze Playlist ohne Freeze abgespielt :) Das mit dem reconnect ist dann nunmal so. Finde es toll das ihr das mit Dem Tag in der ToDo Liste habt. kommen manchmal halt komische Coverbilder xD

Image

Ansonsten Super soweit... grad das mit dem Freeze hat doch etwas genervt :p

Edit: Nicht böse gemeint. Aber ich kapier das nicht ganz mit dem reconnect. Das Prinzip was Du sagtest schon, macht Sinn, aber warum nur bei dem Musicbot? Hab ja noch andere Bots im Discord die dies nicht machen. in der Log von Discord taucht nur der Musicbot auf. Hab zB auch nen eigenen NFSW-Bot, der regelmäßig aus einem Reddit-Kanal etwas postet, auch der hat keine reconnects und läuft auf meinem Server wie der Musicbot. Wie geschrieben, nicht falsch verstehen, möchte es nur verstehen. Lerne gern dazu :p

Re: [Discord] Musicbot verliert Verbindung

Posted: Fri Nov 18, 2022 11:31 pm
by Crypto90
Die Voice Server gateways von discord kappen die Verbindung nach einer Zeit. Das hat nichts mit bots zu tun, die nur etwas posten.
Der musicbot hat eine permanente Verbindung zu einem Voice Server Gateway und diese werden von discord gestoppt, terminiert, Neue gestartet und zwischen Voice gateways wird ständig hin und her gewechselt, vermutlich auch um load balancing bei discord zu betreiben.
Wenn wir den reconnect nicht machen, wäre der bot einfach weg aus dem Voice Channel. Edit: stimmt nicht ganz. Optisch würde er noch im Voice Channel „sitzen“, aber eben die Verbindung zum Voice Gateway wäre weg. Und diese bekommt man bis zuletzt nur wieder, wenn man reconnected.

Ich will aber in den nächsten 1-2 Tagen den reconnect in unserem code mal entfernen und es so mit der zuletzt aktualisierten Library testen die wir aktualisiert hätten. Hier wurde einiges geändert in Punkto reconnects, keep alive und server gateway switching.

Vielleicht brauchen wir unseren reconnect im Code somit nicht mehr.

UPDATE:
ich bin es bereits am testen mit der aktuellen library, ob wir den reconnect noch machen müssen.

Re: [Discord] Musicbot verliert Verbindung

Posted: Sat Nov 19, 2022 11:26 am
by Mulano77
Ah vielen Dank für die Erklärung :)

Re: [Discord] Musicbot verliert Verbindung

Posted: Mon Dec 26, 2022 10:08 pm
by Mulano77
so mal ein Review: Der Bot disconnected nicht mehr. seit 2 Wochen Online ohne Disconnect. Alle Achtung!!! Fehlt nur noch das ID3Tag ausgelesen werden können :-D

Re: [Discord] Musicbot verliert Verbindung

Posted: Tue Dec 27, 2022 4:28 pm
by Crypto90
Danke für die Rückmeldung.

Tags auslesen ist als Nächstes dran, wird beim nächsten Update sehr wahrscheinlich schon mit dabei sein.