Tool zur automatischen Auswertung der Stream-Zahlratespiele

cmfrydos
Beiträge: 6
Registriert: 20. Januar 2019, 01:30
Wohnort: Baden-Württemberg

Tool zur automatischen Auswertung der Stream-Zahlratespiele

Beitrag von cmfrydos »

Hallo liebe WB-Community,

Mir ist gestern im Stream aufgefallen, dass W.B. ja gerne Ratespiele macht, in denen die Zuschauer eine Zahl von ihm erraten sollen.
Derjenige Zuschauer gewinnt, dessen Zahl am Nächsten an der zu erratenden Zahl liegt.
Ich habe ein kleines Tool geschrieben, in das man die Stream Chats kopieren kann, um herauszufinden, welcher Spieler gewonnen hat.

Wichtig!
Leider ist das Programm abhängig, von dem Browser den man benutzt, da je nach Browser die Chatnachrichten anders kopiert werden.
Im Firefox (66) und Internet Explorer (11.706) funktioniert Twitch, aber auf Youtube sind leider alle Eingaben von Benutzern, deren Name mit einer Zahl enden, fehlerhaft.
Im Edge Browser (EdgeHTML 17.17134) funktionieren beide Plattformen problemlos, und ist deswegen zu empfehlen.

Weitere Browser kann ich bei Bedarf testen, und implementieren.

Bedienungsweise:
Bild
Zuerst wird im Feld 'Gewinnzahl' die zu erratende Zahl eingegeben.
Im Feld 'Chat' wird einfach der gesammte Twitch ODER Youtube Chat hineinkopiert.
D.h. man muss den Chat vom Kommando 'Start' bis Kommando 'Ende' im Browser markieren, und mit STRG+C kopieren (Taste 'Strg' und Taste 'C' gleichzeitig drücken, oder Rechtsklick->Kopieren), und dann mit STRG+V in das Feld 'Chat' eintragen.
Nicht wundern, man sieht in dem Feld dann nur das Ende der Kommentare, dennoch wurde alles hineinkopiert.

Dann macht man einen Klick auf 'Analysieren', und der Chat wird ausgewertet, und verschwindet dabei aus der Eingabemaske.
Jetzt geht man in den zweiten Chat (YT oder Twitch), und kopiert von da den Chat in das Programm.

Erneut auf 'Analysieren' klicken, und die untere Auflistung wird aktualisiert, und man sieht die Gewinner.

Bild

Beide Chats zusammen ins Feld zu kopieren, ohne dazwischen auf 'Analysieren' zu klicken, funktioniert leider nicht, da die Chats unterschiedlich erkannt und ausgewertet werden.

Möchte man später eine neue Runde, mit einer neuen Zahl spielen, kann man auf 'Neue Runde' klicken, und alle Daten werden gelöscht.
Alternativ kann man auch das Feld 'Gewinnzahl' bearbeiten, auch dann wird alles resettet.

Ein weiteres Feature ist, dass wenn mehrere Chatnachrichten von einem User gemacht werden, dieser unter 'Mehrfachabstimmungen' aufgeführt wird. Es kann auf Youtube allerdings vorkommen, dass zwei Benutzer denselben Namen haben! Deswegen die Anzeige bitte mit Vorsicht genießen. Nicht erkennen kann man zudem wenn ein Benutzer gleichzeitig auf Twitch und Youtube abstimmt, (oder mit mehreren Accounts), das lässt sich jedoch fast nicht nachvollziehen.

Installation:
Am einfachsten ist es das Zip herunterzuladen, zu entpacken, und die Datei ZahlenratenKonsole.exe auszuführen.
Die Datei ist allerdings für Windows 10 64Bit gemacht, und könnte auf anderen Systemen nicht funktionieren.
Falls das der Fall ist, einfach kurz anschreiben, dann kann ich schauen, ob ich es für andere Systeme bereitstellen kann.
Wen die Fehlerkonsole stört, kann die Datei Zahlenraten.exe ausführen, allerdings sind Fehler dann schwerer nachzuvollziehen.

ZIP-Datei: Link zum Zip (Google Drive) (Direkt oben rechts auf den Pfeil zum Herunterladen klicken, dann auf dem eigenen Rechner entpacken. )

Alternativ kann man das Skript Zahlenraten.py herunterladen, und mit Python3 (getestet mit 3.5) ausführen.
Python muss man dann allerdings vorher installiert haben. Download: https://www.python.org/downloads/
Diese Variante sollte auf allen Systemen, einschließlich Linux, funktionieren.

Skript: Link zum Skript (Google Drive) (Oben Rechts auf den Pfeil zum Herunterladen klicken, mit Doppelklick starten)
Icon Datei für Script:
WB.png
WB.png (423 Bytes) 8148 mal betrachtet
(Rechtsklick->'Grafik speichern unter' und im selben Ordner wie das Skript ablegen.
Die Datei ist im Zip bereits enthalten.)

Bekannte Bugs:
  1. Es kommt vor, dass wenn User Smileys auf Youtube posten, die Copy&Paste Ausgabe von Youtube irgendwie nicht legale UTF-8 Zeichen enthält, und die Analyse deswegen nicht möglich ist.
    Ich muss hier noch etwas nachforschen, denke aber, dass das Problem prinzipiell lösbar ist.
  2. Gibt man nur wenige Kommentare (<3) von Twitch ein, erfolgt keine Auswertung. Das Programm erkennt die Eingabe dann fehlerhaft als eine von Youtube. Lässt sich prinzipiell leider nicht lösen.
Vorausschau:
Es wäre natürlich mega cool, wenn man auf beiden Streams 'Bots' installieren könnte, die ganz automatisch die Streams verfolgen.
Dann hätte man zum Einen nicht die Beschränkung auf den Edge-Browser, zum Anderen spart man sich das manuelle Kopieren,
und könnte sogar live nachverfolgen, wie sich das Ranking entwickelt.
Leider kenne ich mich auf dem Gebiet nicht sonderlich aus, und müsste mich da ersteinmal reinfuchsen.
Vielleicht möchte ja jemand mit besseren Zeichenkünsten, das Icon (das mehr wie einen Dämonenbulle aussieht) ersetzen? :)

Viel Spaß beim Ausprobieren.
Wer möchte kann es einmal mit den folgenden Daten probieren:

Code: Alles auswählen

MaxMustermann: 1234
BöserBub: 3000
Ratekönig: 4200
AnnonymerAnnoholiker: 1800
BöserBub: 1000
AnnonymerAnnoholiker: Ich muss einfach gewinnen! (<- wird nicht ausgewertet)
Ich sollte euch allerdings warnen, dass man eigentlich keine fremden Programme oder Zip-Dateien auf seinem Rechner ausführen sollte, da diese Viren enthalten könnten!
Ich versichere euch aber, dass ich das Programm mit bestem Wissen und Gewissen erstellt habe, und es keine bösartigen Verhaltensweisen zeigen sollte ;)

Wer möchte, darf den Code anderweitig nutzen oder erweitern, damit habe ich kein Problem.
Über Wüsche, Anregungen und Feedback würde ich mich sehr freuen!

Viele Grüße,
Marvin S.

Edit: Den Facebookchat kann ich heute Abend noch testen. Vielleicht sollte ich noch eine Funktion einbauen, die den größten noch nicht abgedeckten Zahlenbereich ermittelt? Hehe, mache ich natürlich nicht. ;)
Ich habe leider zu spät bemerkt, dass es hier ein separates 'Hardware und Software' - Unterforum gibt, dort wäre es vll besser aufgehoben.
Benutzeravatar
Myxan
Beiträge: 3096
Registriert: 1. Mai 2015, 09:33
Wohnort: Tübingen

Re: Tool zur automatischen Auswertung der Stream-Zahlratespiele

Beitrag von Myxan »

Sehr schön :)
Schauen wir uns gerne an.
Danke vorweg schon einmal für Deine Mühen. \m/
Das große Karthago führte drei Kriege.
Es war noch mächtig nach dem ersten, noch bewohnbar nach dem zweiten. Es war nicht mehr auffindbar nach dem dritten.
Benutzeravatar
writingbull
Site Admin
Beiträge: 9860
Registriert: 14. September 2012, 08:50
Wohnort: Köln

Re: Tool zur automatischen Auswertung der Stream-Zahlratespiele

Beitrag von writingbull »

Marvin, das ist echt eine großartige Initiative! Bin dir da echt dankbar.

Ich habe die Kollegen aus der Tafelrunde gebeten, sich das anzuschauen. Ich selbst komme derzeit in dem 5-Liveabende-Rhythmus mit Anno 1800 derzeit leider zu nichts anderem.

Bloß eine Kleinigkeit schon mal vorneweg: Ich selbst nutze als Browser Chrome. Und dann noch die Frage, ob das Tool auch bei einer sehr hohen Anzahl von Chat-Postings läuft, also z.B. bei einer hohen 3-stelligen Zahl von Postings, die es auswerten muss.
Homepage * Twitch * YouTube * Twitter * Facebook
Möchtest du das Writing Bull Projekt unterstützen? - Patreon * Shoplink Gamesplanet
cmfrydos
Beiträge: 6
Registriert: 20. Januar 2019, 01:30
Wohnort: Baden-Württemberg

Re: Tool zur automatischen Auswertung der Stream-Zahlratespiele

Beitrag von cmfrydos »

Freut mich sehr, dass es gefällt :)

Bei Eingaben von etwa 1000 Kommentaren dauert es bei mir auf einem 7 Jahre alten Mittelklasse-Rechner eine knappe Sekunde bis der Chat aus der Zwischenablage im Programm ankommt, die Analyse geht dann aber innerhalb von Millisekunden.
Sollte also eigentlich kein Problem sein, länger dauert da das manuelle Markieren der Kommentare ;).
Aber auch dafür hat sich mittlerweile eine Lösung gefunden (siehe unten).

Chrome habe ich gerade getestet und zeigt leider die selbe Verhaltenweise wie Firefox und Internet Explorer,
dh. bei Youtube-Usern mit einer Zahl am Ende steht diese leider direkt vor der Chatnachricht.
Zur Verdeutlichung der Problematik:
Schreibt der User 'Max123' die Zahl 987, kommt beim Kopiervorgang 'Max123987' raus..
Also richtig funktionieren tut es bisher nur beim Edge-Browser, der allerdings auf allen Windows-Systemen standardmäßig installiert sein sollte.

Heute habe ich einen Fortschritt gemacht, und kann mich mit dem Programm an die Youtube-API sowie den Twitch-IRC verbinden, und bekomme so die Chattnachrichten aus beliebig vielen Channeln automatisch rein.

Ich brauche allerdings noch bis morgen, da ich die verschiedenen Chats noch zusammenbauen muss,
und ich zudem noch Abklären muss, ob ich das Programm einfach zu teilen darf bzw. sollte.
Es steckt dort nämlich ein Google-Developer Key drin, und ich muss noch recherchieren, ob der geheim gehalten werden sollte..
Zudem sollte ich mich vorher noch zu den AGB's von diesem Dienst von Google informieren.

Kleine Vorschau:
Bild
Als Test bin ich mal in einen deutschen, einen französischen und einen englischen Stream gegangen.
Die Authorisierungs-Leiste ist noch ein Prototyp und der Chat nicht schön formatiert, und bisher sind auch nur Twitch-Chats vollständig implementiert.
Im unteren Bereich plane ich das Zahlenraten sowie ein Kommando-Gewinnspiel zu implementieren, ähnlich wie das vom Nightbot.
Sollte dann auch auf allen Plattformen und Streams gleichzeitig funktionieren.

Mir ist natürlich bewusst, dass das Programm für die Anno-Giveaways zu spät kommt, und 'große', frei verfügbare Bots evtl. die bessere Wahl sind.

Aber ich glaube, dass es das Zahlenraten, und die gleichzeitige Verbindung sowohl in YT Chats und Twitch Chats so noch nicht gibt.

Jetzt muss ich aber schnell in den Anno Stream, ich werde morgen dann nochmal ein Update posten.

Viele Grüße,
Marvin
Benutzeravatar
writingbull
Site Admin
Beiträge: 9860
Registriert: 14. September 2012, 08:50
Wohnort: Köln

Re: Tool zur automatischen Auswertung der Stream-Zahlratespiele

Beitrag von writingbull »

Toi, toi, toi!
Homepage * Twitch * YouTube * Twitter * Facebook
Möchtest du das Writing Bull Projekt unterstützen? - Patreon * Shoplink Gamesplanet
cmfrydos
Beiträge: 6
Registriert: 20. Januar 2019, 01:30
Wohnort: Baden-Württemberg

Re: Tool zur automatischen Auswertung der Stream-Zahlratespiele

Beitrag von cmfrydos »

Danke fürs Anfeuern :)

OK, die Chats sind jetzt integriert, und die Gewinnspielfunktionen sind fast fertig.
Mittlerweile habe ich mich in die Developer AGB's eingelesen, und denke dass diese umsetzbar sind. #:-s
Allerdings hängt da ein ziemlicher Rattenschwanz dran, da ich Logos, Datenschutz-, und Kontaktinformationen einbinden muss, und es deswegen wahrscheinlich noch einen Tag dauert, bis ich das Programm hier bereitstellen darf.

Zudem darf ich den Developer-Key in die Open-Source Variante leider nicht einbetten, dh. wenn jemand diese Variante benutzen möchten, muss er sich vorher einen eigenen Key anfordern.
Das geht aber recht schnell, und kostet nichts.
Wegen Transparenz möchte ich allerdings nicht darauf verzichten, den Code zu teilen.

In der .exe Version ist der Key dann mit drinnen, und Klauen wäre von der YT-AGB untersagt. Wird schon gut gehen :-BD

Vielleicht kann mir ein Moderator heute Abend zuflüstern, wie viele am Nightbot-Codewort-Gewinnspiel teilgenommen haben? Dann lasse ich meinen Bot mit dem gleichen Codewort nebenbei laufen, und teste, ob ihm auch keine Nachrichten entgehen.

Edit - Fortschritt am 14.04:
Der Test gestern hat gut geklappt, und habe mittlerweile von den Features fast alles fertig.
Heute, beim Einblenden der notwendigen Logos bin ich leider in Versuchung geraten, die Twitch-Emoticons mit in den Chat zu bauen.
Obwohl der Chat garnicht der Hauptzweck ist 8-} Am (Nicht-)Prokrastinieren sollte ich mal arbeiten.
Dafür sieht Alles jetzt etwas bunter aus:

Bild

Dabei ist mir aufgefallen, wie sachlich deine Community beim Chatten ist. Sonst ist auf Twitch der ganze Chat immer mit Emoticons voll ^^

Als nächstes mache ich dann noch die Anmeldemasken nach den Richtlinien von Twitch und Youtube fertig.

Aufgefallen ist mir leider, dass die Youtube-API in der Menge der Livechat-Anfragen beschränkt ist.
Für einen einzelnen Nutzer reicht die Menge für einen Stream am Abend aus, aber wenn Mehrere es benutzen wird es etwas knapp.
Da muss ich noch etwas recherchieren..
Benutzeravatar
Desert
Beiträge: 8
Registriert: 11. April 2019, 04:03
Wohnort: Duisburg

Re: Tool zur automatischen Auswertung der Stream-Zahlratespiele

Beitrag von Desert »

Coole Sache und toller Beitrag von dir! Kommt bestimmt gut an und wird den Kanal von Writing Bull noch attraktiver machen als er eh schon ist!