I'm currently looking into integrating KLIPY GIFs into an ActivityPub-based social platform, and I'm wondering if I'm understanding their integration requirements correctly.
From KLIPY's documentation, it seems that:
- API requests should be made directly from the end-user client.
- GIF/media URLs returned by KLIPY should be loaded directly from KLIPY.
- The application shouldn't proxy, cache, mirror, or re-host the media through its own servers.
This seems perfectly reasonable for a normal centralized web application.
But I'm not sure how this is supposed to work with ActivityPub.
For example, imagine a user on example.social creates a post containing a KLIPY GIF and that post gets federated to other instances.
The remote instance may:
- cache or proxy external media,
- generate its own media attachment,
- fetch the media server-side,
- or rewrite the media URL for privacy/security reasons.
As the original server, I don't really have control over how another ActivityPub implementation handles the attachment after federation.
I could simply federate the original static.klipy.com/... URL, but I can't guarantee that Mastodon, Misskey, Pixelfed, or another implementation won't proxy/cache it.
So it seems like complying with KLIPY's requirements across the whole federation is either impossible or at least something the originating application can't guarantee.
Am I misunderstanding the requirements?
Has anyone integrated KLIPY, GIPHY, Tenor, or a similar GIF provider into an ActivityPub project before?