[HowTo] Wie erstelle ich meinen EIGENEN Twitch Bot

Herzlich Willkommen auf StreamTalk.de, deiner Community rund um Twitch, Hitbox und Co.

Bei uns kannst Du deine Gedanken zu Twitch, Hitbox und Co. mit anderen teilen und Dich über interessante Themen rund ums Streaming austauschen, z.B. Chatbots, Donations, Sponsoring, Overlays, etc. Erhalte Hilfe und wertvolle Tipps für den Aufbau deines Streaming Channels. Außerdem kannst du deinen Stream in einem eigenen Bereich bei uns vorstellen oder nach Partnern für gemeinsame Projekte suchen.

Wir würden uns freuen, wenn du ein Teil dieser großartigen Community wirst: Jetzt registrieren



Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklärst du dich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Hey,

    in diesem Tutorial zeige ich euch wie ihr mit der TMIJS API einen eigenen Twitch Bot erstellen könnt.

    1. Programme die man benötigt

    1.1 Atom
    1.2 Node.JS (sehr wichtig)

    1.1 Ihr braucht ein Programm womit ihr eine js. + gegebenenfalls eine .bat Datei erstellen + bearbeiten könnt.
    Dazu empfehle ich euch:
    Atom
    Kleiner Tipp: falls ihr Atom noch NICHT benutzt, ich empfehle es euch! Es ist einfach & einfach gut :D

    1.2 Ihr braucht Node.JS, weil der ganze Bot auf Node aufgebaut ist.
    Node.JS



    2. Erste Schritte

    2.1 Erstellung eines Ordners
    2.2 .json Beschreibung erstellen

    2.1 Um einen Ordner zu erstellen braucht ihr erst mal die Eingabeaufforderung ( CMD ).

    Schritt 1: Gehe auf deinen Desktop oder sonst dort hin, wo du den Ordner erstellen willst.
    Dazu benutzt du das Kommando: CD C:\Users\DEINNAME\Desktop
    Das wichtige dabei ist das du aufpasst ob es auf der richtigen Festplatte ist, und dazu musst du noch deinen Namen einfügen.

    2.2 Um eine .json Beschreibung zu erstellen benötigen wir Node.JS
    Dazu gehen wir zuerst mit dem Kommando: CD C:\Users\DEINNAME\Desktop\DEINORDNER
    Du musst dazu noch deinen Namen + deinen Ordner den du eben in 2.1 erstellt hast ganz hinten beim Kommando einfügen.
    Dann benutzt ihr das Kommando: npm init
    Hier könnt ihr Name, Version, Beschreibung & mehr des Bots festlegen.
    Wenn ihr bei einigen Sachen, z.B entry point, nichts eingeben wollt, drückt einfach ENTER.
    Wenn ihr fertig seid, müsste in dem Ordner nun eine package.json Datei sein.

    3. Es geht los!

    3.1 Atom Ordner öffnen + app.js erstellen
    3.2 Module installieren
    3.3 Twitch Verbindung

    3.1 Ihr startet zunächst Atom, dann geht ihr oben Links auf File > Open Project Folder > einfach den Ordner auswählen den ihr auf dem Desktop erstellt habt.
    Dann öffnet den Ordner auf der Linken Seite

    Nachdem ihr den Ordner geöffnet habt, macht ihr einfach Rechtsklick
    auf den Ordner > new File > nennt sie app.js

    3.2
    Nun öffnen wir wieder die Eingabeaufforderung und geben dort im Pfad des Twitch-Bots ein:
    npm install tmi.js
    Wenn ihr dies gemacht habt, seht ihr im Twitch-Bot Ordner, einen Ordner Namens: node_modules
    In dem sollten dann den Ordner "tmi.js" dort wieder finden.

    3.3
    Nun gehen wir wieder in Atom und öffnen dort die app.js
    In diese tragen wir erstmal das Modul ein:

    JavaScript-Quellcode

    1. var tmi = require('tmi.js');




    Danach werden die Connect Informationen eingetragen:

    JavaScript-Quellcode

    1. var options = {
    2. options: {
    3. debug: true
    4. },
    5. connection: {
    6. cluster: "aws",
    7. reconnect: true
    8. },
    9. identity: {
    10. username: "DEINBOTNAMEAUFTWITCH",
    11. password: ""
    12. },
    13. channels: ["DEINCHANNELNAMEAUFTWITCH"]
    14. };
    15. var client = new tmi.client(options);
    16. client.connect();
    Alles anzeigen

    Ihr müsst die Optionen an euren Bot & normalen Kanal anpassen!
    Zeile 10 = username = Der Name von eurem Bot
    Zeile 11 = password = Das Passwort ist nicht einfach das Passwort, ihr braucht dafür den Oauth-Key von eurem Bot Account.
    Dazu loggt ihr euch hier ein: OAuth
    & gebt dann alles was dort steht bei password ein!

    4.
    Die ersten Funktionen ( Beispiele ohne Erklärung )


    4.1 Beim Verbinden soll eine Nachricht in der Konsole erscheinen
    4.2 Beispiel eines Twitter Commands


    4.1 Beispiel einer Nachricht beim Start des Bots in der Konsole

    ACHTUNG: Falls ihr diesen Code benutzen wollt, müsst ihr bei der 4 Zeile, wo "exxoticx" steht euren Kanal-Namen hinzufügen!

    JavaScript-Quellcode

    1. // Connect Message in der Console
    2. client.on('connected', function(adress, port){
    3. console.log("Adresse: " + adress + " Port: " + port);
    4. client.say("exxoticx", "Der Bot ist nun mit dem Stream verbunden!");
    5. });



    4.2 Beispiel eines Twitter Commands
    ACHTUNG: Falls ihr diesen Code benutzen wollt, müsst ihr bei der 3 Zeile, wo "exxoticx" steht euren Kanal-Namen hinzufügen!


    JavaScript-Quellcode

    1. client.on('chat', function(channel, user, message, self) {
    2. if(message == "!twitter"){
    3. client.say("exxoticx", "Mein Twitter: https://twitter.com/exxoticxTV")}
    4. });

    5. Wie startet man den Bot?
    Um den Bot zu starten brauchst du eine .bat!
    In diese .bat schreibst du einfach:
    node app.js

    oder so:





    6. Ende

    Ich hoffe ich konnte euch helfen :)
    Bei Fehler oder Fragen zu Commands - einfach hineinschreiben :)

    mit freundlichen Grüßen
    exxoticx

    Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von exxoticx ()

  • Ich hab 2 Fragen ich hoffe mal dass mir jemand weiterhelfen kann
    1. Wie kann man denjenigen der den Command ausführt in der Nachricht benennen bzw. markieren?
    2. Wie kann man das so machen dass es egal ist ob man ein Command groß oder klein schreibt also zB. !beispiel , !Beispiel
  • Hey CookiePaul,

    grundsätzlich würde ich dich zunächst auf folgende Quelle verweisen: tmi.js v1.2.1
    Dort findest du die Dokumentation zur aktuellen Version von tmi.js

    Da das aber keine Antwort auf deine Frage ist, fangen wir doch mal mit deinem ersten Punkt an, hierzu benötigst du sowohl client.say als auch das userstate Objekt.

    JavaScript-Quellcode

    1. client.on('chat', function(channel, userstate, message, self) {
    2. if(message == "!hi"){
    3. client.say("channel", "Sei gegrüßt "+userstate.username+", auf meinem Channel!");
    4. }
    5. });
    Das userstate Objekt beinhaltet alle Informationen des Nutzers, der eine Nachricht in den Chat gepostet hat, bzw. in diesem Fall das Kommando ausgeführt hat. Möchtest du also, dass der ausführende Nutzer genannt wird, sollte das über userstate->username (um den Namen auszugeben) funktionieren.

    Damit die Groß- und Kleinschreibung nicht weiter beachtet wird, wäre die einfachste Lösung folgende:

    JavaScript-Quellcode

    1. client.on('chat', function(channel, userstate, message, self) {
    2. if(message == "!Beispiel" || message == "!beispiel"){
    3. client.say("channel", "Test");
    4. }
    5. });
    Mit dem logischen Operator || (oder) fragt man einfach ab, ob es !Beispiel oder !beispiel heißt und führt den Code dann aus.

    Ich hoffe dir somit erstmal weitergeholfen zu haben. Ansonsten schau dir die Dokumentation von dem tmi.js nochmal genauer an, dort steht alles beschrieben.
  • Ich hätte da auch mal eine Frage, ich hau das mal einfach hier rein ^^

    Und zwar wie kann ich Subscriber, Follower, Host Events testen? Ich arbeite mit der TwitchLib Libary. So einfache Events wie Chat oder so kann man ja einfach so testen aber grad bei Subscriber, wo ich nichtmal Affilate bin xD

    Wäre toll wenn da einer weiß, wie das geht :)

    Peace :peace:
    Name lautet Patrick.
    Aber im Internet nennt man mich Ross.
  • Ich habe vor einem Jahr ein Studium angefangen (Wirtschaftsinformatik) habe darüber Java gelernt und bringe mir gerade selbständig javascript bei. Daher habe ich das auch versucht und funktioniert einwandfrei. Gibt es aber irgendwie eine Art Übersicht, wie man noch bestimmte Sachen machen kann? Via Google habe ich jetzt nicht soooo viel herausgefunden
  • Was meinst du denn genau mit: "Gibt es aber irgendwie eine Art Übersicht, wie man noch bestimmte Sachen machen kann?"

    Womit denn genau machen? Bezogen auf die Javascript Chat Library tmi.js oder etwas anderem, was hier in dem Thread bereits genannt wurde?

    Oder möchtest du gar keine Library verwenden und von grundauf Anfragen an den Chat/API verarbeiten?

    Wenn du das verrätst, kann man dir sicher besser weiterhelfen mit dem was du vorhast.
  • Also da ich noch am Anfang bin mit JavaScript, wäre jetzt erstmal die Frage, macht es Sinn mit dem Programmieren von einem Chatbot zu lernen? Falls ja, dann eher mit der Library oder lieber von grundauf? Wenn library, wie finde ich heraus was gibt es so für tolle Sachen? Also ich habe jetzt selber herausgefunden, wie ich ein ping befehl mache und der Ping vom Schreiber angezeigt wird.
    Aber gibt es z.b. auch eine Möglichkeit ein Lied in eine Spotify-Playlist hinzufügen. Im sinne von !sr Künstler - TItel -> zur Playlist xy hinzugefügt.

    Im Endeffekt suche ich einfach eine Art leitfaden, damit ich damit rumspielen kann. Ergibt das etwas mehr Sinn? Also mit Hilfe von Chatbot programmieren JavaScript lernen
  • Um Programmieren zu lernen ist es nicht so wichtig was du entwickeln möchtest, sondern vielmehr das du etwas entwickelst.

    Du hast dir ja jetzt schon ein schönes Projekt ausgesucht mit dem Chatbot, was dich sicher vor einige Probleme stellen wird aber wenn das entsprechende Interesse da ist, auch eine gute Basis bietet um viele verschiedene Aspekte zu lernen.

    Die Frage ob du eine Library verwenden möchtest, musst du dir anhand folgendem selbst beantworten:

    - Möchtest du von grundauf "verstehen" wie bspw. die Kommunikation zwischen dem Chat/der API und deinem Programm funktioniert?
    oder
    - Möchtest du dich gerne in die Funktionalitäten von bereits geschriebenem Code einlesen und dessen Funktionalitäten verwenden?

    Um das einlesen wirst du bei beiden Varianten nicht kommen. Persönlich würde ich ja vorschlagen, die Kommunikation selbst zu basteln, anstelle sich jetzt was bereits vorhandenes anzuschauen.
    Für den Anfang wirst du auch sicher kaum etwas mit dem Repository bspw. von tmi.js anfangen können und wie es intern funktioniert. Siehe: TMI.js

    Du musst auch aufpassen, dass hinter solchen Aktionen wie "...ein Lied in eine Spotify Liste einzuzfügen" noch eine ganze Menge mehr steckt.

    Du bräuchtest dafür:

    - Etwas, was mit dem Chat von Twitch kommuniziert
    - Den Befehl verarbeitet
    - Das Resultat an Spotify weitergibt

    Da du für den Bot eh etwas brauchst, was mit dem Chat von Twitch kommuniziert, fängt man doch am Besten damit an.

    Twitch bietet dir in der Doku einige Informationen zu dem Chat: Chatbots & IRC Guide
    Das solltest du dir auf jeden Fall einmal anschauen. Um der Aktualität gerecht zu werden, solltest du dir besonders die Verbindung über Websockets betrachten!
    Von der Doku aus, gibt es auch noch einige Verlinkungen, die sicher auch nicht schaden, einmal betrachtet zu werden.

    Als Aufgabe passt doch dann ganz gut: Versuche eine Verbindung zum Twitch-Chat aufzubauen

    Du wirst dabei sicher auch suchen müssen, was Websockets sind und wie man sich zu diesen über JavaScript verbindet (dazu gibt es sicher einiges im Internet). Wenn du dann noch die Eigenheiten von der Twitch-Doku beachtest, sollte das kein Problem sein.

    Viel Erfolg dabei, nicht gleich den Kopf in den Sand stecken wenn was nicht klappt und ansonsten gerne fragen.
  • Uff, ja ist schon eine Menge, aber ich bin bereit mich hinzuprobieren. Werde mal von Grund auf versuchen eine Verbindung aufzubauen. Mir ist natürlich klar, dass es nicht einfach mal so geht mit Songrequest :P Websocket ist für mich soweit klar, eine Verbindung dazu aufbauen hat allerdings noch nicht geklappt.

    Bin mittlerweile aber auch zu müde um zu sagen, ich habe effektiv was versucht :D

    Danke schon mal für deine Antwort!