Back to Blog
Research

How Long Should a TikTok Be? What 3,671 Videos Say About Length

November 6, 2026
10 min read
S
By SociaVault Team
TikTokvideo lengthTikTok strategyTikTok algorithmresearchcreators

How Long Should a TikTok Be? What 3,671 Videos Say About Length

As long as the idea needs. Across 3,671 TikTok videos from 194 creators, length moved views by a few percent, not a few times. The one length that underperformed was 15 to 30 seconds. Videos over three minutes did slightly better, mostly for bigger accounts.

We measured each video against the same creator's usual views, so we compare a creator's short videos with their own long ones. That matters, because big accounts post longer videos, and a plain average would credit length for what's really audience size.

The short answer

  • Under 15 seconds: 1.00 times the creator's usual views.
  • 15 to 30 seconds: 0.95. The weakest band, and the only one clearly below normal.
  • 30 seconds to 3 minutes: 0.98 to 1.00. Right on normal.
  • 3 to 10 minutes: 1.07. Slightly above normal.
  • It depends on size. For accounts under 10,000 followers, clips under 15 seconds did best. For accounts over 100,000, videos over three minutes did best.
  • Longer videos get saved more. Saves rose from 0.5% of views for clips under 15 seconds to 0.7% for videos over three minutes.

TikTok views by video length

A score of 1.0 means the creator's usual views. Lines show the 95% range.

Bar chart of TikTok views by video length compared with the creator's usual views: under 15 seconds 1.00, 15 to 30 seconds 0.95, 30 to 60 seconds 0.98, 1 to 3 minutes 1.00, 3 to 10 minutes 1.07, over 10 minutes 1.11 on only 45 videos.

LengthVideosCreatorsVs usual viewsGot 2x the usual
Under 15 seconds8061271.0025%
15 to 30 seconds6331320.9521%
30 to 60 seconds7011370.9825%
1 to 3 minutes1,2331441.0027%
3 to 10 minutes253551.0723%
Over 10 minutes4561.1133%

The spread is small. The best and worst common lengths are about 12% apart, and breakout rates sit between 21% and 27% across the board. Over 10 minutes looks strong, but it rests on 45 videos from six creators, so don't read much into it.

Why might 15 to 30 seconds be the weak spot? It's long enough to need a hook and a payoff, but too short to build much of either. Under 15 seconds, a video can be one punchline that people watch twice. Past a minute, it has room to actually teach or tell something.

Short for small accounts, long for big ones

Split by account size, the pattern changes:

FollowersUnder 15s15 to 30s30 to 60s1 to 3 minOver 3 min
1k to 10k1.080.861.001.021.04
10k to 100k1.061.060.931.001.02
100k to 1M1.000.941.001.001.11
1M+1.000.950.971.001.11

Figures are views against the creator's usual. Small accounts did best with very short clips, and their 15 to 30 second videos were the weakest result in the table. Accounts over 100,000 followers got their best results from videos over three minutes.

That fits how TikTok works. A small account mostly reaches strangers, who decide in a second whether to keep watching, so a quick clip that people finish and replay has an edge. A big account has fans who will sit through a longer video.

The creators' own habits match: the median video from accounts under 10,000 followers was 22 seconds long, against 56 to 59 seconds for every larger band.

Longer videos get saved, short ones get liked

How people engage changes with length, even when views don't:

LengthLikes per viewComments per viewShares per viewSaves per view
Under 15 seconds8.2%0.10%0.17%0.51%
15 to 30 seconds6.4%0.10%0.18%0.62%
30 to 60 seconds5.5%0.08%0.17%0.60%
1 to 3 minutes7.2%0.11%0.21%0.64%
Over 3 minutes5.9%0.12%0.21%0.73%

Short clips earn the most likes per view, which makes sense for a joke you can react to instantly. Longer videos earn more saves and shares, the signs that someone found it useful. In our viral study, shares and saves were what set breakout videos apart, which is one reason longer videos hold their own.

Captions depend on length too

Only 20% of videos under 15 seconds had a caption track, against 81% of videos between one and three minutes and 92% of videos over ten minutes. Longer videos are mostly talking, and talking gets captioned. If you plan to pull transcripts from TikTok, expect most short clips to have none.

Bar chart of the share of TikToks with a caption track by length: 20% under 15 seconds, 39% at 15 to 30 seconds, 66% at 30 to 60 seconds, 81% at 1 to 3 minutes, 85% at 3 to 10 minutes and 92% over 10 minutes.

Photo posts

Photo carousels made up 5% of posts and did worse than the same creators' videos: 0.91 times their usual views, and half as likely to double it. Carousels can work for some formats, like step-by-step guides, but as a default they trailed video.

So how long should your TikTok be?

  1. Cut the filler, not the idea. No length band was dramatically better, so the best length is the shortest version that still lands the point.
  2. If you're small, try very short. Under 10,000 followers, clips under 15 seconds did best and 15 to 30 seconds did worst.
  3. If you're established, don't fear long. Over 100,000 followers, videos over three minutes did best, and they earned the most saves.
  4. Watch the 15 to 30 second zone. It was the weakest overall. Either make it tighter or give it room.
  5. Judge length by saves, not just views. Longer videos that teach something get saved, and saves travel.

Check your own lengths

This scores a creator's recent videos by length against their own usual views. In JavaScript (Node 18 or later, as an .mjs file):

const API = "https://api.sociavault.com/v1/scrape";
const HEADERS = { "x-api-key": process.env.SOCIAVAULT_API_KEY };
const BANDS = [
  [0, 15, "under 15s"],
  [15, 30, "15-30s"],
  [30, 60, "30-60s"],
  [60, 180, "1-3 min"],
  [180, Infinity, "3 min+"],
];

// Lists can come back as arrays or as objects with numbered keys
const asList = (x) => (Array.isArray(x) ? x : Object.values(x ?? {}));
const median = (xs) => {
  const s = [...xs].sort((a, b) => a - b);
  const mid = Math.floor(s.length / 2);
  return s.length % 2 ? s[mid] : (s[mid - 1] + s[mid]) / 2;
};
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));

let videos = [];
let cursor;
for (let page = 0; page < 5; page++) {
  const params = new URLSearchParams({
    handle: "khaby.lame",
    sort_by: "latest",
  });
  if (cursor) params.set("max_cursor", cursor);
  const res = await fetch(`${API}/tiktok/videos?${params}`, {
    headers: HEADERS,
  });
  if (!res.ok) throw new Error(`HTTP ${res.status}: ${await res.text()}`);
  const data = (await res.json()).data ?? {};
  videos.push(...asList(data.aweme_list));
  if (!data.has_more) break;
  cursor = data.max_cursor;
  await sleep(1000);
}

const now = Date.now() / 1000;
videos = videos.filter(
  (v) => !v.is_top && (now - v.create_time) / 86400 >= 7 && v.video?.duration,
);
const usual = median(videos.map((v) => v.statistics.play_count));
for (const [lo, hi, label] of BANDS) {
  const scores = videos
    .filter(
      (v) => lo <= v.video.duration / 1000 && v.video.duration / 1000 < hi,
    )
    .map((v) => v.statistics.play_count / usual);
  if (scores.length)
    console.log(
      `${label.padEnd(10)} ${median(scores).toFixed(2)}x usual (${scores.length} videos)`,
    );
}

And in Python:

import os
import time
from datetime import datetime, timezone
from statistics import median

import requests

API = "https://api.sociavault.com/v1/scrape"
HEADERS = {"x-api-key": os.environ["SOCIAVAULT_API_KEY"]}
BANDS = [(0, 15, "under 15s"), (15, 30, "15-30s"), (30, 60, "30-60s"), (60, 180, "1-3 min"), (180, 10**6, "3 min+")]

def as_list(x):
    # Lists can come back as lists or as dicts with numbered keys
    return list(x.values()) if isinstance(x, dict) else (x or [])

videos, cursor = [], None
for _ in range(5):
    params = {"handle": "khaby.lame", "sort_by": "latest"}
    if cursor:
        params["max_cursor"] = cursor
    r = requests.get(f"{API}/tiktok/videos", headers=HEADERS, params=params, timeout=60)
    r.raise_for_status()
    data = r.json().get("data") or {}
    videos += as_list(data.get("aweme_list"))
    if not data.get("has_more"):
        break
    cursor = data.get("max_cursor")
    time.sleep(1)

now = datetime.now(timezone.utc).timestamp()
videos = [v for v in videos if not v.get("is_top") and (now - v["create_time"]) / 86400 >= 7
          and v.get("video", {}).get("duration")]
usual = median(v["statistics"]["play_count"] for v in videos)
for lo, hi, label in BANDS:
    scores = [v["statistics"]["play_count"] / usual for v in videos if lo <= v["video"]["duration"] / 1000 < hi]
    if scores:
        print(f"{label:<10} {median(scores):.2f}x usual ({len(scores)} videos)")

video.duration is in milliseconds. Each page of the TikTok videos endpoint returns about 10 videos for 1 credit.

How we did it

  • Videos: 3,671 TikTok videos, not photo posts, from 194 creators across 15 niches and four follower bands, pulled on 19 October 2026 with SociaVault's TikTok videos endpoint.
  • Filters: videos 7 to 180 days old and not pinned, from creators with at least 8 such videos.
  • Score: each video's views divided by the creator's median, then the median score per length band. The 95% ranges come from resampling 1,000 times.
  • Cost: part of the 742 credits behind our TikTok benchmarks.

Limits. Creators choose how long to make each video, so length travels with topic and effort. A creator's long videos may simply be their more ambitious ones. The size-band table splits the data four ways, so each cell rests on 45 to 426 videos. The aggregated tables are in the CSV download.

Frequently Asked Questions

What is the best length for a TikTok?

There isn't one that clearly wins. Videos under 15 seconds and videos of one to three minutes both got the creator's usual views. 15 to 30 seconds was the weakest band, and three to ten minutes slightly above normal.

Do longer TikToks get more views?

Slightly, for bigger accounts. Over 100,000 followers, videos over three minutes got 1.11 times the creator's usual views. For accounts under 10,000 followers, short clips did better.

Are short TikToks better for small accounts?

In our data, yes. Accounts under 10,000 followers got 1.08 times their usual views on clips under 15 seconds, and 0.86 on 15 to 30 second videos.

Do longer TikToks get more saves?

Yes. Saves rose from 0.51% of views on clips under 15 seconds to 0.73% on videos over three minutes. Shares rose too.

How long is the average TikTok?

The median video in our sample was 44 seconds. Creators under 10,000 followers posted shorter videos, a median of 22 seconds, than larger accounts, at 56 to 59 seconds.


Want to see what length works for a creator you're analyzing? Sign up for 50 free credits and run the script above.

Found this helpful?

Share it with others who might benefit

Ready to Try SociaVault?

Start extracting social media data with our powerful API. No credit card required.