WhatsApp Nachrichten mit Python versenden
Für viele Programmierprojekte kann es hilfreich sein, wenn man Zwischenergebnisse, Status-Nachrichten oder sonstige Mitteilungen direkt an ein Smartphone übermitteln kann. Es gibt diverse Third-Party Libraries die man dafür nutzen kann, allerdings basieren diese oft auf kostenpflichtigen Dienstleistungen für z.B. SMTP Server (Mail-Versand), Messaging Dienste (SMS) oder andere.
Glücklicherweise gibt es auch hier eine kostenlose Variante. Mit dem Modul pywhatkit (https://pypi.org/project/pywhatkit/) kann man Whatsapp ganz einfach automatisieren. Damit das funktioniert, muss das Gerät wo der Python-Code läuft über WhatsappWeb mit dem privaten Whatsapp Konto verbunden werden. Die nötigen Schritte sollen in diesem Artikel kurz beschrieben werden.
WhatsappWeb verbinden mit dem privaten Whatsapp Konto
- WhatsappWeb Website öffnen: https://web.whatsapp.com/
- WhatsApp auf dem Smartphone öffnen
- In WhatsApp unter “Einstellungen – Verknüpfte Geräte – Gerät hinzufügen”
- QR Code der WhatsApp Web Seite scannen
- Warten bis die Verbindung aufgebaut wurde
Der Browser bleibt so verbunden mit der Smartphone App. Falls diese Verbindung aufgehoben werden soll, so kann dies jederzeit unter “Einstellungen – Verknüpfte Geräte” wieder gestoppt werden.
Installation pywhatkit
Die Installation ist sehr simpel über die Kommandozeile mit dem folgenden Befehl zu erreichen.
python3 -m pip install pywhatkit
Nachrichtenversand mit pywhatkit
Versand an eine WhatsApp Gruppe
Um Nachrichten an eine Gruppe zu versenden muss in WhatsApp zuerst in den Gruppeneinstellungen die Gruppen-ID herausgefunden werden. Dazu wählt man in den Gruppeneinstellungen “Mit Link zur Gruppe einladen”. Die ID am Ende der angezeigten URL (gelb markiert im Bild) ist die Gruppen-ID:

Es braucht keine weiteren Konfigurationsschritte und man kann nun mit nur einer Zeile Code eine Nachricht absetzen.
import pywhatkit
# WhatsApp Nachricht "Hello World!" an die Gruppe mit ID <<GRUPPEN-ID>> um 12:10 Uhr,
# dann soll 10 Sekunden gewartet werden
# und nach weiteren 5 Sekunden soll WhatsappWeb geschlossen werden.
pywhatkit.sendwhatmsg_to_group("<<GRUPPEN-ID>>", "Hello World!", 12, 10, 10, 5)
# WhatsApp Nachricht "Hello World!" nach 10 Sekunden Wartezeit an die Gruppe mit ID <<GRUPPEN-ID>>
# und nach weiteren 5 Sekunden soll WhatsappWeb wieder geschlossen werden.
pywhatkit.sendwhatmsg_to_group_instantly("AB123CDEFGHijklmn", "Hey All!", 10, 5)
Versand an eine Einzelperson
Die Schritte für den Nachrichtenversand an eine Person sind noch einfacher. Man kann direkt an eine Telefonnummer versenden:
import pywhatkit
# WhatsApp Nachricht "Hello World!" an die Nummer "+123456789" um 12:10 Uhr
pywhatkit.sendwhatmsg("+123456789", "Hello World!", 12, 10)
# WhatsApp Nachricht "Hello World!" an die Nummer "+123456789" um 12:10 Uhr
# 2 Sekunden danach soll WhatsappWeb geschlossen werden
pywhatkit.sendwhatmsg("+123456789", "Hello World!", 12, 10, 15, True, 2)
Logging
Im Python Projekt wird automatisch ein simples Textfile erstellt, wo die versendeten Nachrichten nochmal zurückverfolgt werden können:

Hey,
wenn ich Pywhatkit mit pip installieren möchte, dann kommt immer der folgende Fehler:
error: externally-managed-environment
Wie kann ich das “umgehen” fixen?
LG Alex
Hi Alex,
Glaube das ist neu bei Python 3.11+. Ich würde dir Weg 2 oder 3 von dieser Anleitung empfehlen: https://www.makeuseof.com/fix-pip-error-externally-managed-environment-linux/ . Weg 1 würde ich auf keinen Fall einschlagen, weil er aus meiner Sicht zu risikobehaftet ist.
LG,
Patrick
Hallo ich hab 2 anliegen
1. Diese Website ist ja mega cool gemacht und aufgebaut
2. Wenn ich diesen Code in cmd eingebe dann kommt entweder die Benachrichtigung das Whatsapp sich in 85.000 sec öffnet und dann innerhalb von 15 sec absendet oder Whatsapp öffnet sich, die Nachricht wird bereitgesellt zum absenden aber sendet nicht ab dh. ich muss manuell den Knopf zum abdrücke senden
wie kann ich das beheben ?
LG Max
Hi Max,
Ist schon ein Weilchen her seit meinen letzten Versuchen diesbezüglich, aber am Besten ist es, wenn Whatsapp Web bereits geöffnet ist – so hat es bei mir (damals) sehr zuverlässig funktioniert.
LG,
Patrick
Das ist ein echt cooles Projekt, dennoch hätte ich eine Frage. Ich würde gerne die Nachricht direkt absenden lassen, ohne dass ich eine bestimmte Minute oder Sekunde eintragen und abwarten muss. Ich habe schon ein datetime-System eingebaut, das die aktuelle Zeit einträgt. Jedoch funktioniert das nicht so, da es die Ausführung auf den nächsten Tag verschiebt. Also rechne ich immer eine Minute hinzu, damit es funktioniert. Nun möchte ich nicht immer auf die nächste Minute warten, sondern wie gesagt, dass es direkt ausgeführt wird.
Hoi Asaro,
Sorry für die verspätete Antwort und vielen Dank für die Blumen 🙂
Hatte genau dasselbe Problem wie du und glaube, dass das mit dieser Library gar nicht gelöst werden kann. Das ist leider der Nachteil bei all den kostenlosen Varianten…
Mit der bezahlten API würde das ganz einfach gehen: https://pypi.org/project/whatsapp-python/
LG,
Patrick