# Extensible File Thumbnails ## Introduction When sending media, it is often helpful for users when a thumbnail can be shown before the actual file is finished downloading. XMPP already has a protocol for specifying thumbails, [Jingle Content Thumbnails](https://xmpp.org/extensions/xep-0264.html). However, this protocol requires that the thumbnail is a base64-encoded image published using [Bits of Binary](https://xmpp.org/extensions/xep-0231.html). This prevents clients from implementing newer technologies, such as [Blurhash](https://github.com/woltapp/blurhash). This document specifies are more general and extensible element for specifiying thumbnails in various formats. ## Usage ```xml LEHV6nWB2yk8pyoJadR*.7kCMdnj ``` This example specifies a thumbnail of type `blurhash`, meaning that the child element of the `` element must contain a `` element (See "Thumbnail Types"). A `` element MUST only contain one child; that is the child that is specified by the `` type attribute. ### Thumbnail Types #### Blurhash If a sender specifies the type of the `` element to be `proto:urn:xmpp:eft:0:blurhash`, then the `` element's value must be interpreted as [Blurhash](https://github.com/woltapp/blurhash) data. As a sender, care must be taken to not make the Blurhash thumbnail too big as to not loose the advantages of Blurhash. ```xml LEHV6nWB2yk8pyoJadR*.7kCMdnj ``` #### Jingle Content Thumbnail Compatability In order to enable a pseudo-interoperability with [Jingle Content Thumbnails](https://xmpp.org/extensions/xep-0264.html), inclusion of a `` element is allowed. This is to allow easy reuse of an already existent [Jingle Content Thumbnails](https://xmpp.org/extensions/xep-0264.html) implementation. The type of the `` must then be set to `proto:urn:xmpp:eft:0:base64-bob`. ```xml ``` ## Usage Example with Stateless Inline Media Sharing NOTE: This example is taken from [Stateless Inline Media Sharing](https://xmpp.org/extensions/xep-0385.html) and modified for this protocol. ```xml Look at the nice view from the summit. image/jpeg summit.jpg 3032449 2XarmwTlNxDAMkvymloX3S5+VbylNrJt/l5QyPa+YoU= 2AfMGH8O7UNPTvUVAM9aK13mpCY= Photo from the summit. LEHV6nWB2yk8pyoJadR*.7kCMdnj ``` ## Security Considerations The same considerations apply as specified by [Jingle Content Thumbnails](https://xmpp.org/extensions/xep-0264.html). ## Todo - Change XML namespace from `proto:urn:xmpp:eft:0` to `urn:xmpp:eft:0` once we submit this as an XEP ## Changelog ### 0.2.1 - Remove namespacing of the ``'s child element ### 0.2.0 - Namespace the thumbnail type - `` to `` ### 0.1.0 - Remove the base64 thumbnail type - Namespace all thumbnail types - Remove the type attribute of `` - Rename `` to `` - Rename the namespace from file-thumbnails to eft - Rename from File Thumbnails to Extensible File Thumbnails ## Info | Key | Value | | --- | --- | | Author | PapaTutuWawa | | Version | 0.2.1 | | Short name | eft |