Fun, but when the comparison is unlimited WhatsApp versus "not many gigabytes" of other data, my first question is what speed this goes. How long does it take to transfer a gigabyte over WhatsApp?
Depends on the throttle you add and then risking to get your WhatsApp account banned, but can be used to surf when you have no data or use other apps which can be useful, not intended for large files downloading or video streaming although got like 300kbps which wasn't too bad
It looks like you're using base64 encoding. If WhatsApp allows an extended alphabet then you might be able to switch to base85 for a slight performance bump.
Since WhatsApp is end-to-end encrypted you can probably just send bibary data. Stick a prefix on it so that the real client is guaranteed to ignore it as corrupted.
I think the only risk is that if you have a real client running it reports the invalid messages and WhatsApp uses this as a signal to van your account.
The E2EE here is not about privacy, but about being able to send whatever data you want (like binary) since WhatsApp will only see one type of data (encrypted) in transit, in contrast to needing to send data in a specific format to have it transferred at all. Meta can peek at the original "messages" all they want, they will see encrypted packet data anyway.
Yes, used different messages max sizes, with 2000 characters got the best speed but got the account banned, using 20000 is a great middle term and not banned for now, could get banned anyway, its an educational project
Using less characters got you banned? I don't understand why that would happen. I would think using more characters would be more likely to get you banned since it's less like what normal users do.
Well increasing the usage would also increase the number of messages.
How does Whatsapp choose to ban people? Total messages sent? Then increasing the message size doesn't stop you from being banned, it just makes it take longer before you're banned. Messages/second? Then avoiding the ban by a message size restriction seems like a very clumsy way of doing it; it would be much more straightforward to avoid the ban by limiting the messages/second.