-
-
Notifications
You must be signed in to change notification settings - Fork 2.2k
[Legacy] yowsup cli
yowsup-cli is a command line interface to Yowsup library. It provides you with the options of registration, reading/sending messages, and even engaging in an interactive conversation.
- python 2.6+
- python-dateutil
- argparse for python < 2.7
- libxml2 only if using --v1 flag
usage: yowsup-cli [-h] [-l | -s <phone> <message> | -i <phone>] [-w] [-a] [-k]
[-r (sms|voice) | -R code | -e]
[--generatepassword input | --decodestring encoded_array]
[--help-config] [--v1] [-c file] [-D] [-d] [-v]
yowsup-cli Command line options
optional arguments:
-h, --help show this help message and exit
--help-config Display info about configuration format
--v1 If specified, it will force usage of old API in
registration calls. Also password field in config will
be ignored and will attempt to generate password from
specified identity (IMEI/MAC)
-c file, --config file
Path to config file containing authentication info.
For more info about config format use --help-config
-D, --dbus Start DBUS interface
-d, --debug Enable debug messages
-v, --version Print version info and exit
Client options:
-l, --listen Listen to messages
-s <phone> <message>, --send <phone> <message>
Send message to phone number and close connection.
Phone is full number including country code, without
'+' or '00'
-i <phone>, --interactive <phone>
Start an interactive conversation with a contact.
Phone is full number including country code, without
'+' or '00'
-w, --wait If used with -s, then connection will not close until
server confirms reception of the message
-a, --autoack If used with -l or -i, then a message received ack
would be automatically sent for received messages
-k, --keepalive When used with -l or -i, Yowsup will automatically
respond to server's ping requests to keep connection
alive
Registration options:
-r (sms|voice), --requestcode (sms|voice)
Request a registration code from Whatsapp.
-R code, --register code
Register account on Whatsapp using the registration
code you received
-e, --exists Check if account credentials are valid. WARNING:
Whatsapp now changes your password everytime you use
this. Make sure you update your config file if the
output informs about a password change
Debug tools:
--generatepassword input
Generate password from given string in same way
Whatsapp generates it from a given IMEI or MAC Address
--decodestring encoded_array
Decode byte arrays found in decompiled version of
Whatsapp. Tested with S40 version. Input should be
comma separated without the enclosing brackets.
Example: ./yowsup-cli --decodestring
112,61,100,123,114,103,96,114,99,99,61,125,118,103
Whatsapp protocol is basically a modified version of XMPP. It uses JID and password for login. Your JID is the phone number you registered with, which is a combination of your phone number and country code. In older versions of Whatsapp, your password was generated from your phone's IMEI in case of Nokia or Android, or from your phone's Wlan MAC Address in case of iOS. yowsup-cli is able to generate the same exact password used by your phone's Whatsapp client for login, which makes you able to login using yowsup-cli and send and receive messages without affecting your Whatsapp's setup on phone. You should save these info in a text file, in the following format:
cc=20 #replace with your country code
phone=20123456789 #full phone number including country code, without '+' or '00'
id=FF:FF:FF:FF:FF:FF #IMEI or MAC address for iOS
password=PASSWORD #your account's real password. If you don't know it just leave it blank until you do.
If you can't obtain the IMEI/MAC, or using an unsupported phone, or if you have recently updated your phone's Whatsapp client, then this would not work. You will have to register using yowsup, and then enter the password you get. To tell yowsup-cli about your config file, you just pass the path to that file using the -c switch. The config file is used everytime you login, in order to obtain your credentials, and during registration.
Registration is done through 2 steps similar to how it works on official Whatsapp clients. First you request a registration code from Whatsapp:
yowsup-cli --requestcode sms
The code will then be delivered to your phone number via your preferred method (sms/voice). Once you have obtained the code, you proceed with the 2nd step, which is to send that code using --register argument:
yowsup-cli --register 123
Your phone number is the one stored in the config file specified by -c (see what your config file should look like). If you successfully register, WhatsApp will generate a password for you which will be displayed in the command output. You MUST MANUALLY store this password in the same config file you're registered with.