TikTok upload chunk rules: 5 MB to 64 MB, up to 1,000 chunks

TikTok FILE_UPLOAD chunks must be 5 to 64 MB, the last up to 128 MB, 1,000 chunks max. A short planner computes the Content-Range for each PUT.

4 min readSume
All posts

For a FILE_UPLOAD post, TikTok wants the video split into chunks of at least 5 MB and at most 64 MB, except the final chunk, which may run up to 128 MB. You may send at most 1,000 chunks, strictly in order, for a file of at most 4 GB. A fixed 32 MB chunk size with the remainder folded into the last chunk satisfies every rule, and the planner below shows how. A 64 MB size would not: TikTok requires a file over 64 MB to go in more than one chunk, so a 70 MB file at 64 MB would be a single illegal chunk.

Rules on the page

TikTok media transfer guide, read 2026-10-02
RuleValue
Minimum chunk5 MB
Maximum chunk64 MB, except the final chunk (up to 128 MB)
Chunk count1 to 1,000
OrderChunks must be uploaded sequentially
Maximum video4 GB
Per-chunk requestPUT with Content-Type, Content-Length and Content-Range: bytes first-last/total
Responses201 when all chunks are in; 206 while more are expected

A chunk planner

Use a 32 MB size, then fold the remainder into the last chunk. A 150 MB file becomes four chunks: three of 32 MB and a last one of 54 MB. The planner returns the exact byte range for each Content-Range header and refuses files that break the 1,000-chunk or 4 GB limit. We use 4,000,000,000 bytes as the cap to stay on the safe side of GB versus GiB.

CHUNK = 32 * 1024 * 1024
MAX_BYTES = 4_000_000_000

def plan(total):
    if total <= 0 or total > MAX_BYTES:
        raise ValueError("size out of range")
    n = max(1, total // CHUNK)
    if n > 1000:
        raise ValueError("more than 1000 chunks")
    spans = [(i * CHUNK, (i + 1) * CHUNK - 1) for i in range(n - 1)]
    spans.append(((n - 1) * CHUNK, total - 1))
    return [f"bytes {a}-{b}/{total}" for a, b in spans]

for header in plan(150 * 1024 * 1024):
    print(header)

Where Sume fits

Most short-form posts never get near 64 MB. When a source is too long or too large, cut it with video trim: start plus end or duration, up to 900 seconds per output, $0.02 per job. Optional output sets width, height and fps. Sume does not expose a bitrate control, so measure the file you get back rather than predicting its size.

Limits

A file under 5 MB is not addressed by the page; send it as one chunk and confirm in TikTok's sandbox. The page also offers PULL_FROM_URL, where TikTok downloads the file itself, but it does not say here which hosts are accepted, so check the TikTok docs for URL ownership rules before pointing it at a media.sume.com link. Review the AI-label flag separately: see TikTok AI-generated content labels.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume