> For the complete documentation index, see [llms.txt](https://help.blotato.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.blotato.com/rest-api-reference/publish-post/media.md).

# Media Requirements

For agent workflows, start with [Upload and prepare media](/agent-workflows/agent-workflows/upload.md). For publishing fields, use the [platform reference](/platform-publishing/platforms.md).

Your upload limit depends on both your Blotato plan and the target platform. Starter supports files up to 400 MB. Creator and Agency support files up to 1 GB. The smaller limit applies when a platform sets a lower maximum. See [Plan Limits](/settings/billing-and-credits.md#plan-limits).

## Automatic Media Conversion

Blotato checks uploaded media against the target platform before publishing:

1. If the original file already passes validation, Blotato publishes it without conversion.
2. If a previously converted variant passes validation, Blotato reuses that variant.
3. If a supported conversion fixes the validation result, Blotato converts the original file. A validation error without a supported conversion stops publication.
4. Automatic video conversion is limited to videos of 120 seconds or less. Longer videos still publish when the original file already meets the target platform's requirements.

Use MP4 with H.264 video and AAC audio as an export preset. A filename extension does not prove the container or codecs. A MOV file does not always trigger conversion.

### What Blotato converts

| Platform                    | Image conversion                                                         | Video conversion before publishing                                                                                  |
| --------------------------- | ------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------- |
| Instagram                   | HEIC to JPEG, crop outside 9:16–1.91:1, downscale above 2,073,600 pixels | Downscale above 2,073,600 pixels, reduce bitrate above 25 Mbps to 20 Mbps                                           |
| Facebook                    | HEIC to JPEG. Images above 8 MB fail validation                          | Convert containers other than MP4/MOV to MP4, crop Reels/Stories taller than 9:16, downscale above 2,073,600 pixels |
| LinkedIn                    | No automatic conversion                                                  | Convert containers other than MP4 to MP4                                                                            |
| TikTok                      | Convert to JPEG, adjust dimensions and pixel count                       | No automatic conversion                                                                                             |
| Threads                     | Convert to JPEG                                                          | No automatic conversion                                                                                             |
| Twitter                     | HEIC to JPEG                                                             | No automatic conversion                                                                                             |
| Pinterest, Bluesky, YouTube | No automatic conversion                                                  | No automatic conversion                                                                                             |

The conversion queue reuses the original file or a passing variant before creating another variant. The 120-second ceiling applies when video conversion is required. It is not a duration limit for every published video. Conversion does not guarantee acceptance by the social platform.

The sections below include export guidance. Blotato does not automatically correct every listed property. For a rejected file, use the returned error to identify the property to change.

## Twitter

### General Guidelines

* **Character Limit through Blotato**: 280 characters per post. Use `additionalPosts` for a thread.
* **Media Attachments per Tweet**: You can attach up to 4 photos, 1 animated GIF, or 1 video in a single Tweet.
* For a `429` response, read the error to distinguish a Blotato route limit from an X account or platform limit. Follow [Rate limits](/api-and-mcp-concepts/rate-limits.md).

### Image Specifications

* **Supported Formats**: JPG, PNG, GIF, WEBP
* **File Size Limit**: Images must be ≤ 5 MB; animated GIFs must be ≤ 15 MB.
* **Animated GIF Recommendations**:

  * **Resolution**: ≤ 1280x1080 pixels
  * **Frame Count**: ≤ 350 frames
  * **Total Pixels**: Width × Height × Number of Frames ≤ 300 million pixels
  * **File Size**: ≤ 15 MB

  Pass the media URL to Blotato's Publish endpoint. Twitter's native chunked-upload parameters are not Blotato request fields.

### Video Specifications

**Recommended Settings**:

* **Codec**: H.264 High Profile
* **Frame Rates**: 30 FPS or 60 FPS
* **Resolutions**:

  * 1280x720 (landscape)
  * 720x1280 (portrait)
  * 720x720 (square)

  Subscribed users can upload 1080p videos and receive 1080p playback; unsubscribed users are limited to 720p.
* **Bitrates**:
  * **Video**: Minimum 5,000 kbps
  * **Audio**: Minimum 128 kbps
* **Audio Codec**: AAC Low Complexity (LC)
* **Aspect Ratios**: 16:9 (landscape or portrait), 1:1 (square)

**Advanced Constraints**:

* **Frame Rate**: ≤ 60 FPS
* **Dimensions**: Between 32x32 and 1280x1024 pixels
* **File Size**: ≤ 512 MB
* **Duration**: Between 0.5 seconds and 140 seconds\*
* **Aspect Ratio Range**: Between 1:3 and 3:1
* **Pixel Aspect Ratio**: 1:1
* **Pixel Format**: YUV 4:2:0
* **Audio Channels**: Mono or Stereo; 5.1 or greater is not supported
* **GOP Structure**: Closed GOP required; open GOP is not supported
* **Scan Type**: Progressive scan only; interlaced video is not supported

Blotato does not automatically convert Twitter videos. Export a compatible file before publishing.

## Instagram

### General Guidelines

* **Caption Length**: Instagram captions are limited to 2200 characters.

### Image Specifications

* **Format**: JPEG, PNG
* **File Size**: Maximum of 8 MB
* **Export Aspect Ratio**: 4:5 to 1.91:1 for feed images.
* **Export Width**: 320 to 1440 pixels.
* **Blotato Processing**: The converter crops outside 9:16 to 1.91:1 and downscales images above 2,073,600 pixels. It does not implement the width-based resizing described by Instagram's display guidance.

For optimal display, it's recommended to use square images with a 1:1 aspect ratio. This ensures that your content utilizes the maximum area on the platform.

### Video Specifications

* **Format**: MP4 and MOV.
* **File Size**: Maximum of 300 MB
* **Duration**:
  * Minimum: 3 seconds
  * Maximum:
    * Reel: 15 minutes\*
    * Story: 60 seconds
* **Reel and Story Export Preset**: 9:16 at 1080 x 1920 or 720 x 1280 pixels. This is export guidance, not an automatic crop rule.
* **Feed Video Aspect Ratio**: Must be within a 4:5 to 1.91:1 range
* **Minimum Width**: 320 pixels
* **Maximum Width**: 1440 pixels

Blotato checks Instagram video dimensions, bitrate, and resolution before publishing:

* Blotato does not force Instagram videos into a 9:16 crop.
* A 1340 x 2160 video contains 2,894,400 pixels, above the converter's 2,073,600-pixel threshold. It requires downscaling, regardless of its aspect ratio.
* Videos above 25 Mbps are re-encoded at 20 Mbps.
* Videos with width × height above 2,073,600 pixels are downscaled while preserving their aspect ratio. This includes 4K video.
* Conversion is limited to videos no longer than 120 seconds.

#### Checklist for Reels longer than 120 seconds

Blotato does not crop, resize, downscale, re-encode, or adjust the bitrate of videos longer than 120 seconds. Check every item before publishing:

1. Choose 9:16 if you want a portrait Reel without borders.
2. Export at 1080 x 1920 or 720 x 1280 pixels to stay within the conversion threshold.
3. Export as MP4 with H.264 video and AAC audio.
4. Set the video bitrate to 25 Mbps or lower.
5. Keep the file size at 300 MB or smaller.
6. Keep the duration at 15 minutes or shorter.
7. Confirm the media URL opens without a login or access token.

An `.mp4` filename alone does not confirm the container, codecs, aspect ratio, resolution, or bitrate. Follow the [Instagram Reel troubleshooting checklist](/social-accounts-and-platform-faqs/instagram/faqs.md#my-instagram-reel-is-under-300-mb-and-15-minutes-why-was-it-rejected) for the full publishing steps.

### Carousel Specifications

* **Composition**: Images, videos, or a mix of both.
* **Number of Items**: 2 to 10.
* **Aspect Ratio Cropping**: All carousel items are cropped based on the first image. The default aspect ratio is 1:1.
* **Video Aspect Ratio:** 1:1 (square), 4:5 (portrait), and 1.91:1 (landscape)

Each item within the carousel must adhere to the respective image and video specifications outlined above.

## LinkedIn

### General Guidelines

* **Character Limit per Post**: LinkedIn allows up to 3000 characters per post.

### Image Specifications

* **Supported Formats**: JPG, GIF, and PNG.
* **File Size Limit**: Images must be ≤ 5 MB.
* **Pixel Count**: Images should have less than 36,152,320 pixels.
* **Animated GIF Constraints**:
  * **Frame Limit**: GIFs support up to 250 frames.

For optimal display, it's recommended to use images with a 1.91:1 aspect ratio, such as 1200 x 627 pixels. This ensures that your content utilizes the maximum area on the platform.

### Video Specifications

* **Supported Format**: MP4.
* **File Size**: Between 75 KB and 500 MB.
* **Duration**: Between 3 seconds and 30 minutes.\*
* **Resolution**: Minimum of 256 x 144 pixels; maximum of 4096 x 2304 pixels.
* **Aspect Ratios**:
  * **Landscape**: 16:9
  * **Portrait**: 9:16
  * **Square**: 1:1
* **Frame Rate**: Up to 60 frames per second (fps).
* **Bitrate**: Up to 30 Mbps.

For optimal display across devices, consider using a square (1:1) aspect ratio with a resolution of 1080 x 1080 pixels. This format adapts well to both mobile and desktop environments.

Blotato converts non-MP4 LinkedIn videos to MP4 only when they are 120 seconds or shorter. Export longer videos as MP4 before publishing. This conversion does not correct every specification above.

## Facebook

### General Guidelines

* **Graph API Endpoints**: Max character limit is 63,206 characters

### Image Specifications

* **Supported Formats**: JPEG, PNG, GIF, BMP, and TIFF.
* **File Size Limit through Blotato**: Up to 8 MB.
* **Recommended Resolution**: At least 1080 pixels wide.
* **Aspect Ratios**:
  * **Square**: 1:1
  * **Portrait**: 4:5
  * **Landscape**: 1.91:1
* **Additional Recommendations**:
  * Use images with minimal text overlay to avoid reduced delivery.
  * Ensure images are clear and not pixelated or blurry.
  * For PNG files, keep the file size below 1 MB to prevent pixelation.

### Video Specifications

Facebook videos publish as **Reels** or **Stories**. Regular Facebook feed video posts are no longer supported.

* **Supported Formats**: MP4 and MOV. Other video formats require conversion to MP4.
* **File Size Limit**: Up to 512 MB. Your plan's upload limit also applies.
* **Reel Duration**: Between 3 seconds and 4 hours.
* **Story Duration**: Between 3 seconds and 60 seconds.
* **Minimum Resolution**: 540 x 960 pixels (width x height).
* **Aspect Ratio**: 9:16 recommended for Reels and Stories.
* **Frame Rate**: 24 to 60 frames per second.
* **Automatic Conversion**: Blotato converts unsupported containers to MP4 and may crop or downscale Reels and Stories. If conversion is required, the video must be 120 seconds or less. Longer videos must already meet the publishing requirements.
* **Additional Recommendations**:
  * Use high-quality audio and include captions to enhance accessibility.
  * For videos with text overlays, ensure the text is within the safe zone to prevent cropping, especially on mobile devices.
  * Shorter videos (15 seconds or less) are more likely to capture viewer attention.

## TikTok

### Description Specifications

* **Character Limit**: The character limit is 2200 characters.

### Video Specifications

* **Supported Formats**: MP4 (recommended), WebM, and MOV.
* **Codecs**: H.264 (recommended), H.265, VP8, VP9.
* **Frame Rate**: Minimum of 23 FPS; maximum of 60 FPS.
* **Resolution**: Minimum of 360 pixels for both height and width; maximum of 4096 pixels for both height and width.
* **Duration**: Up to 10 minutes.\*
* **File Size through Blotato**: Up to 1 GB, subject to the 400 MB Starter upload limit.

Blotato does not automatically convert TikTok videos. Export a compatible file before publishing.

### Image Specifications

* Supported formats: JPEG and WebP.
* File size: no more than 20 MB per image.
* Resolution: TikTok describes its image limit as 1080p. For a portrait export, use 1080 × 1920. Do not interpret 1080p as a maximum of 1080 pixels on every dimension.

Blotato requests JPEG conversion for non-JPEG images. It requests downscaling when width × height exceeds 1920 × 1080 pixels. These processing checks do not guarantee TikTok acceptance. If publishing fails, inspect the final error before changing the file or submitting another post.

Source: [TikTok image restrictions](https://developers.tiktok.com/doc/content-posting-api-media-transfer-guide#image_restrictions).

## Pinterest

### Description Specifications

* **Description Character Limit**: 800 characters.
* **Title Character Limit**: 100 characters.
* **Alt Text Character Limit**: 500 characters.
* **URL Link Character Limit**: 2048 characters.

### Image Specifications

* **Supported Formats**: PNG, JPEG.
* **File Size**: Maximum of 20 MB per image.

### Video Specifications

* **Supported Formats**: MP4 (recommended), MOV.
* **Codecs**: H.264 (recommended), H.265.
* **Resolution**: 240p minimum
* **Duration**: Minimum 4 seconds, Maximum 5 minutes.\*
* **Audio**: Optional, but advisable.
* **File Size**: Maximum of 2 GB.

Blotato does not automatically convert Pinterest videos. Your plan's upload limit applies even when Pinterest accepts larger files.

### Carousel Specifications

* **Number of Items**: 2 to 5 images.

## Threads

### Image Specifications

* **Supported Formats**: JPEG and PNG
* **File Size**: Maximum of 8 MB
* **Resolution**:
  * **Minimum Width**: 320 pixels (scaled up if smaller)
  * **Maximum Width**: 1440 pixels (scaled down if larger)
  * **Height**: Varies depending on width and aspect ratio
* **Aspect Ratio**: Between 10:1 and 1:10
* **Color Space**: sRGB (Images in other color spaces will be converted to sRGB)

### Video Specifications

* **Supported Formats**:
  * **Container**: MP4 (MPEG-4 Part 14) or MOV
  * **Video Codec**: H.264 or HEVC (progressive scan, closed GOP, 4:2:0 chroma subsampling)
  * **Audio Codec**: AAC, maximum 48 kHz sample rate, mono or stereo
* **Resolution**:
  * **Maximum Width**: 1920 pixels
  * **Aspect Ratio**: Between 0.01:1 and 10:1 (9:16 recommended to avoid cropping or blank space)
* **Frame Rate**: Between 23 and 60 FPS
* **Bitrates**:
  * **Video Bitrate**: Variable bitrate (VBR), up to 100 Mbps
  * **Audio Bitrate**: Maximum 128 kbps
* **Duration for Blotato uploads**: Up to 60 seconds.
* **File Size**: Maximum of 1 GB

Blotato does not automatically convert Threads videos. Export a compatible file before publishing.

### Text and Media Post Limitations

* **Text Posts**: Limited to 500 characters per post
* **Media Per Post**: 1 image or video per Threads post. Blotato's Threads publisher accepts a single media item, so a `mediaUrls` array with more than one item fails with the error "Threads only supports a single image or a video".
* **Posting Multiple Images**: Publish a thread instead, with one image per post. Put each extra post in the `additionalPosts` array with a single item in its `mediaUrls`: post 1 contains image 1, post 2 contains image 2, and so on.

## Bluesky

**Post Character Limit**: 300 characters per post

**Image Guidelines:**

* **Up to 4 images**
* **Single and multiple image posts**:
  * Square: 1080 x 1080 pixels
  * Landscape: 1200 x 627 pixels
  * Portrait: 627 x 1200 pixels

**Video Guidelines:**

* **Supported formats**: MP4, WebM, and MOV
* **Videos per post**: 1
* The public media URL must end in `.mp4`, `.webm`, or `.mov` so Blotato recognizes it as a video.
* Blotato uploads the video to Bluesky's video service and waits for processing before publishing the post.

## YouTube

### Video Specifications

* **Supported Formats**: YouTube accepts various video formats, including MP4, MOV, AVI, WMV, FLV, 3GPP, and WebM.

  [elfsight.com](https://elfsight.com/blog/requirements-uploading-video-youtube/?utm_source=chatgpt.com)
* **Recommended Format**: MP4 with H.264 video codec and AAC-LC audio codec is recommended for optimal quality and file size.

  [support.google.com](https://support.google.com/youtube/answer/1722171?hl=en\&utm_source=chatgpt.com)
* **Resolution and Aspect Ratio**:
  * Standard aspect ratio: 16:9.
  * Recommended resolutions:
    * 2160p (4K): 3840x2160
    * 1440p (2K): 2560x1440
    * 1080p (Full HD): 1920x1080
    * 720p (HD): 1280x720
    * 480p (SD): 854x480
    * 360p: 640x360
    * 240p: 426x240
  * For videos intended for sale or rental, a minimum resolution of 1920x1080 is required.[support.google.com](https://support.google.com/youtube/answer/4603579?hl=en\&utm_source=chatgpt.com)
* **Frame Rate**: Content should be encoded and uploaded in the same frame rate it was recorded. Common frame rates include 24, 25, 30, 48, 50, and 60 frames per second.

  [support.google.com](https://support.google.com/youtube/answer/1722171?hl=en\&utm_source=chatgpt.com)
* **Bitrate**: Choose H.264 encoding for the best balance of quality and file size. Keep the bitrate between 8 Mbps (1080p) and 35 Mbps (4K).

  [zebracat.ai](https://www.zebracat.ai/post/best-video-format-youtube-updated-guide?utm_source=chatgpt.com)
* **File Size and Duration**: Verified accounts can upload videos up to 256 GB or 12 hours\*, whichever is less.

  [en.wikipedia.org](https://en.wikipedia.org/wiki/List_of_YouTube_features?utm_source=chatgpt.com)

YouTube's native upload limits are not Blotato's upload limits. Blotato uploads are limited to 400 MB on Starter and 1 GB on Creator/Agency. Blotato does not automatically convert YouTube videos.

### Image Specifications

Channel banners and profile pictures below are reference sizes for changes made in YouTube. Blotato's publishing API does not update channel art or profile pictures. The supported publishing field is `thumbnailUrl` for a video thumbnail.

* **Channel Art (Banner Image)**:
  * Recommended dimensions: 2560x1440 pixels.
  * Safe area for text and logos: 1546x423 pixels (centered).
  * Accepted file types: JPG, GIF, BMP, or PNG.
  * Maximum file size: 6 MB.[adobe.com](https://www.adobe.com/express/discover/sizes/youtube?utm_source=chatgpt.com)
* **Profile Picture**:
  * Recommended dimensions: 800x800 pixels.
  * Aspect ratio: 1:1.
  * Accepted file types: JPG, PNG, GIF, BMP.
  * Maximum file size: 2 MB.[plannthat.com](https://www.plannthat.com/youtube-video-sizes/?utm_source=chatgpt.com)
* **Video Thumbnails**:
  * Recommended dimensions: 1280x720 pixels.
  * Minimum width: 640 pixels.
  * Aspect ratio: 16:9.
  * Accepted file types: JPG, GIF, BMP, or PNG.
  * Maximum file size: 2 MB.[shopify.com](https://www.shopify.com/blog/youtube-thumbnail-size?utm_source=chatgpt.com)

### Text Specifications

* **Video Titles**:
  * Maximum length: 100 characters.
  * Ensure titles are concise, descriptive, and include relevant keywords.
* **Video Descriptions**:
  * Maximum length: 5,000 characters.
  * Provide detailed information about the video content, including relevant links and timestamps.
* **Tags**:
  * Use relevant keywords to improve searchability.
  * Avoid using excessive or misleading tags.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://help.blotato.com/rest-api-reference/publish-post/media.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
