How easy is it to send full quality videos and pictures via XMPP? I feel like the main difference from my Pidgin days and today is that these days there is a metric ton of large media files being sent around.
It's as easy as via any other method. XMPP supports both server-intermediated transfers (where the file is uploaded to the server - this is what almost all platforms choose to do these days), but it also supports negotiated p2p streamed transfers (suitable for huge files, essentially unlimited, but less reliable, e.g. it requires both sender and recipient to be online at the same time).
I assumed it costs Apple quite a bit for the bandwidth and storage of all the media files they send, and hence why Apple is the only one that offers to do it at full quality.
I assume it costs Meta a lot too, and so they reduce the quality of media flying around on WhatsApp.
Would others have to be able and willing to pick up these costs if the networks were opened up? I am thinking even if Apple/Meta were forced to open their networks, they would balk at subsidizing outsiders.
I am not clear what the backend costs and cost allocation would be, for example, if someone using iMessage sends me a 4K video to me and I am not using iMessage, and I am offline, but I will expect to see it next time I open up Pidgin on my laptop.
The way it generally happens on XMPP and Matrix is that the upload is stored at the sending user's server, and a URL is passed around. That means the choice is up to the operator of the sender's service as to what size files they allow, and how long for.
Applying this model to the case of a 4K video sent from iMessage, the file would be hosted by Apple, and you would merely receive a reference to it (i.e. URL) so you can fetch it when you come back online. It's natural to assume this model, as most platforms are already using it today, but of course this is all speculative until things get opened up.
On a final note, Pidgin is a poor choice of example in this case. It supports a much older version of XMPP, its support for the protocol actually hasn't evolved much in the past ~10 years or so. In particular it's missing support for this very file transfer mechanism, and a whole bunch of other things such as multi-device and modern E2EE (though there are third-party plugins attempting to plug some of these gaps). If you're planning to do XMPP in 2022, practically any other XMPP app that's actively developed supports the newer mechanism and many other modern features Pidgin lacks. For desktop that includes Gajim (cross-platform), Dino (Linux, experimentally Windows) and Beagle IM (MacOS).
Thanks for the explanation. Seems like no one would be forced to subsidize anyone else if they did not want to simply because they used the same char protocol.
Easy, on some clients/with some servers. These days they do it the same way as most other platforms, by uploading the media to a web server. It took the ecosystem a while to catch up to that though, and there are plenty of clients out there that still don’t support it.
Pidgin on Windows, for one. And even on other platforms you have to compile and install the third-party plugin for it yourself, it doesn’t ship with Pidgin - this is beyond what I would expect most users to do. (I imagine the same is true for Adium as they’re both libpurple clients, but I don’t have a Mac handy to check.)
Those two alone are the clients that most Windows/Mac XMPP users I know reach for first, probably out of familiarity.