Recommended Media Attachment Format¶
The first three example are our recommendation on how to format image, video, and audio media attachments. Further properties are possible, and might make it into this recommendation at one point. Examples:
- Focal point and blurhash, see Mastodon
- fps (frames per second) for videos
The final example cannot be recommended yet as it is not widely supported. However, it illustrates how one can provide multiple versions of the media attachments. A high quality and low quality video in this case. The low quality video is enough for most use cases, and is 40 times smaller.
The recommended format is documented in FEP-1311: Media Attachments.
Examples¶
Example 1¶
activity
{
"@context": [
"https://www.w3.org/ns/activitystreams",
{
"Hashtag": "as:Hashtag",
"sensitive": "as:sensitive"
}
],
"type": "Create",
"actor": "http://pasture-one-actor/actor",
"to": [
"http://misskey/users/abg9bsla7ltd0003",
"https://www.w3.org/ns/activitystreams#Public"
],
"id": "http://pasture-one-actor/activity/nTHCEXdQT30",
"published": "2025-08-15T10:37:42Z",
"object": {
"type": "Note",
"attributedTo": "http://pasture-one-actor/actor",
"to": [
"https://www.w3.org/ns/activitystreams#Public",
"http://misskey/users/abg9bsla7ltd0003"
],
"id": "http://pasture-one-actor/object/OFHK1x_hr6c",
"published": "2025-08-15T10:37:42Z",
"@context": [
"https://www.w3.org/ns/activitystreams",
"https://www.w3.org/ns/credentials/v2",
{
"size": "https://joinpeertube.org/ns#size"
}
],
"content": "Recommended Image Format",
"attachment": [
{
"type": "Image",
"name": "A beautiful cow",
"url": "http://pasture-one-actor/assets/cow.jpg",
"width": 100,
"height": 162,
"mediaType": "image/jpeg",
"digestMultibase": "zQmaeDPzhNL32WQZnnzB1H6QJWvvFNEHdViDB71yrxyXU1t",
"size": 9045
}
]
}
}
misskey
{
"id": "abg9dptc4n97000x",
"createdAt": "2025-08-15T10:37:42.000Z",
"userId": "abg9denn4n970003",
"user": {
"id": "abg9denn4n970003",
"name": "Test Actor",
"username": "actor",
"host": "pasture-one-actor",
"avatarUrl": "http://misskey/identicon/actor@pasture-one-actor",
"avatarBlurhash": null,
"avatarDecorations": [],
"isBot": false,
"isCat": false,
"instance": {
"name": null,
"softwareName": null,
"softwareVersion": null,
"iconUrl": null,
"faviconUrl": null,
"themeColor": null
},
"emojis": {},
"onlineStatus": "unknown"
},
"text": "Recommended Image Format",
"cw": null,
"visibility": "public",
"localOnly": false,
"reactionAcceptance": null,
"renoteCount": 0,
"repliesCount": 0,
"reactionCount": 0,
"reactions": {},
"reactionEmojis": {},
"emojis": {},
"fileIds": [
"abg9dqqd4n97000w"
],
"files": [
{
"id": "abg9dqqd4n97000w",
"createdAt": "2025-08-15T10:37:43.189Z",
"name": "cow.jpg",
"type": "image/jpeg",
"md5": "79665fe8c07445157afebd1543f36b71",
"size": 0,
"isSensitive": false,
"blurhash": "ejK^]TI9_3t6NG_4%gRkV[of%hWCIUt7jEo#V@aJbHofazadjYWVkD",
"properties": {
"width": 200,
"height": 164
},
"url": "http://pasture-one-actor/assets/cow.jpg",
"thumbnailUrl": "http://pasture-one-actor/assets/cow.jpg",
"comment": "A beautiful cow",
"folderId": null,
"folder": null,
"userId": "abg9denn4n970003",
"user": null
}
],
"replyId": null,
"renoteId": null,
"uri": "http://pasture-one-actor/object/OFHK1x_hr6c",
"clippedCount": 0
}
Example 2¶
activity
{
"@context": [
"https://www.w3.org/ns/activitystreams",
{
"Hashtag": "as:Hashtag",
"sensitive": "as:sensitive"
}
],
"type": "Create",
"actor": "http://pasture-one-actor/actor",
"to": [
"http://misskey/users/abg9bsla7ltd0003",
"https://www.w3.org/ns/activitystreams#Public"
],
"id": "http://pasture-one-actor/activity/sZI0_94S_vo",
"published": "2025-08-15T10:37:43Z",
"object": {
"type": "Note",
"attributedTo": "http://pasture-one-actor/actor",
"to": [
"https://www.w3.org/ns/activitystreams#Public",
"http://misskey/users/abg9bsla7ltd0003"
],
"id": "http://pasture-one-actor/object/q1A5q3-mIGA",
"published": "2025-08-15T10:37:43Z",
"@context": [
"https://www.w3.org/ns/activitystreams",
"https://www.w3.org/ns/credentials/v2",
{
"size": "https://joinpeertube.org/ns#size"
}
],
"content": "Recommended Video Attachment",
"attachment": [
{
"type": "Video",
"url": "http://pasture-one-actor/assets/cow_eating.mp4",
"name": "A beautiful cow eating",
"width": 256,
"height": 144,
"mediaType": "video/mp4",
"digestMultibase": "zQmSzK5qEe5tpjwGMhmjx9RvVoPkWhEmCwxP2s7wPMpKMoK",
"size": 54373,
"duration": "PT3S"
}
]
}
}
misskey
{
"id": "abg9dql44n97000z",
"createdAt": "2025-08-15T10:37:43.000Z",
"userId": "abg9denn4n970003",
"user": {
"id": "abg9denn4n970003",
"name": "Test Actor",
"username": "actor",
"host": "pasture-one-actor",
"avatarUrl": "http://misskey/identicon/actor@pasture-one-actor",
"avatarBlurhash": null,
"avatarDecorations": [],
"isBot": false,
"isCat": false,
"instance": {
"name": null,
"softwareName": null,
"softwareVersion": null,
"iconUrl": null,
"faviconUrl": null,
"themeColor": null
},
"emojis": {},
"onlineStatus": "unknown"
},
"text": "Recommended Video Attachment",
"cw": null,
"visibility": "public",
"localOnly": false,
"reactionAcceptance": null,
"renoteCount": 0,
"repliesCount": 0,
"reactionCount": 0,
"reactions": {},
"reactionEmojis": {},
"emojis": {},
"fileIds": [
"abg9drlz4n97000y"
],
"files": [
{
"id": "abg9drlz4n97000y",
"createdAt": "2025-08-15T10:37:44.327Z",
"name": "cow_eating.mp4",
"type": "video/mp4",
"md5": "19e0d3ecdd0230ed857c9c88dd247012",
"size": 0,
"isSensitive": false,
"blurhash": null,
"properties": {},
"url": "http://pasture-one-actor/assets/cow_eating.mp4",
"thumbnailUrl": null,
"comment": "A beautiful cow eating",
"folderId": null,
"folder": null,
"userId": "abg9denn4n970003",
"user": null
}
],
"replyId": null,
"renoteId": null,
"uri": "http://pasture-one-actor/object/q1A5q3-mIGA",
"clippedCount": 0
}
Example 3¶
activity
{
"@context": [
"https://www.w3.org/ns/activitystreams",
{
"Hashtag": "as:Hashtag",
"sensitive": "as:sensitive"
}
],
"type": "Create",
"actor": "http://pasture-one-actor/actor",
"to": [
"http://misskey/users/abg9bsla7ltd0003",
"https://www.w3.org/ns/activitystreams#Public"
],
"id": "http://pasture-one-actor/activity/lkJMu2_aqJg",
"published": "2025-08-15T10:37:44Z",
"object": {
"type": "Note",
"attributedTo": "http://pasture-one-actor/actor",
"to": [
"https://www.w3.org/ns/activitystreams#Public",
"http://misskey/users/abg9bsla7ltd0003"
],
"id": "http://pasture-one-actor/object/HVEUDJ_I9Ug",
"published": "2025-08-15T10:37:44Z",
"@context": [
"https://www.w3.org/ns/activitystreams",
"https://www.w3.org/ns/credentials/v2",
{
"size": "https://joinpeertube.org/ns#size"
}
],
"content": "Recommended Audio Format",
"attachment": [
{
"type": "Audio",
"url": "http://pasture-one-actor/assets/cow_moo.mp3",
"name": "A cow mooing",
"mediaType": "audio/mpeg",
"digestMultibase": "zQmSXTyLCPqoiGoUUwKRMKgFdddaAUkvQNr29nhB6tahb9Z",
"size": 67709,
"duration": "PT2.1S"
}
]
}
}
misskey
{
"id": "abg9drcw4n970011",
"createdAt": "2025-08-15T10:37:44.000Z",
"userId": "abg9denn4n970003",
"user": {
"id": "abg9denn4n970003",
"name": "Test Actor",
"username": "actor",
"host": "pasture-one-actor",
"avatarUrl": "http://misskey/identicon/actor@pasture-one-actor",
"avatarBlurhash": null,
"avatarDecorations": [],
"isBot": false,
"isCat": false,
"instance": {
"name": null,
"softwareName": null,
"softwareVersion": null,
"iconUrl": null,
"faviconUrl": null,
"themeColor": null
},
"emojis": {},
"onlineStatus": "unknown"
},
"text": "Recommended Audio Format",
"cw": null,
"visibility": "public",
"localOnly": false,
"reactionAcceptance": null,
"renoteCount": 0,
"repliesCount": 0,
"reactionCount": 0,
"reactions": {},
"reactionEmojis": {},
"emojis": {},
"fileIds": [
"abg9ds674n970010"
],
"files": [
{
"id": "abg9ds674n970010",
"createdAt": "2025-08-15T10:37:45.055Z",
"name": "cow_moo.mp3",
"type": "audio/mpeg",
"md5": "af0b1c1fdd1e74cb559072d725f7de31",
"size": 0,
"isSensitive": false,
"blurhash": null,
"properties": {},
"url": "http://pasture-one-actor/assets/cow_moo.mp3",
"thumbnailUrl": null,
"comment": "A cow mooing",
"folderId": null,
"folder": null,
"userId": "abg9denn4n970003",
"user": null
}
],
"replyId": null,
"renoteId": null,
"uri": "http://pasture-one-actor/object/HVEUDJ_I9Ug",
"clippedCount": 0
}
Example 4¶
activity
{
"@context": [
"https://www.w3.org/ns/activitystreams",
{
"Hashtag": "as:Hashtag",
"sensitive": "as:sensitive"
}
],
"type": "Create",
"actor": "http://pasture-one-actor/actor",
"to": [
"http://misskey/users/abg9bsla7ltd0003",
"https://www.w3.org/ns/activitystreams#Public"
],
"id": "http://pasture-one-actor/activity/dGPy92gDOzw",
"published": "2025-08-15T10:37:45Z",
"object": {
"type": "Note",
"attributedTo": "http://pasture-one-actor/actor",
"to": [
"https://www.w3.org/ns/activitystreams#Public",
"http://misskey/users/abg9bsla7ltd0003"
],
"id": "http://pasture-one-actor/object/ZjU3f8LLqQM",
"published": "2025-08-15T10:37:45Z",
"@context": [
"https://www.w3.org/ns/activitystreams",
"https://www.w3.org/ns/credentials/v2",
{
"size": "https://joinpeertube.org/ns#size"
}
],
"content": "Multiple formats for video",
"attachment": [
{
"type": "Video",
"name": "A beautiful cow eating",
"url": [
{
"type": "Link",
"size": 54373,
"digest": "zQmSzK5qEe5tpjwGMhmjx9RvVoPkWhEmCwxP2s7wPMpKMoK",
"width": 256,
"height": 144,
"href": "http://pasture-one-actor/assets/cow_eating.mp4",
"mediaType": "video/mp4"
},
{
"type": "Link",
"size": 2271723,
"digest": "zQme2X4rgWuRdmAtGGMSEbdoeRQ2NAL2VptcdRGTYDZbSKG",
"width": 1920,
"height": 1080,
"href": "http://pasture-one-actor/assets/cow_eating_hd.mp4",
"mediaType": "video/mp4"
}
],
"duration": "PT3S"
}
]
}
}
misskey
{
"id": "abg9ds4o4n970012",
"createdAt": "2025-08-15T10:37:45.000Z",
"userId": "abg9denn4n970003",
"user": {
"id": "abg9denn4n970003",
"name": "Test Actor",
"username": "actor",
"host": "pasture-one-actor",
"avatarUrl": "http://misskey/identicon/actor@pasture-one-actor",
"avatarBlurhash": null,
"avatarDecorations": [],
"isBot": false,
"isCat": false,
"instance": {
"name": null,
"softwareName": null,
"softwareVersion": null,
"iconUrl": null,
"faviconUrl": null,
"themeColor": null
},
"emojis": {},
"onlineStatus": "unknown"
},
"text": "Multiple formats for video",
"cw": null,
"visibility": "public",
"localOnly": false,
"reactionAcceptance": null,
"renoteCount": 0,
"repliesCount": 0,
"reactionCount": 0,
"reactions": {},
"reactionEmojis": {},
"emojis": {},
"fileIds": [],
"files": [],
"replyId": null,
"renoteId": null,
"uri": "http://pasture-one-actor/object/ZjU3f8LLqQM",
"clippedCount": 0
}