TikTok Video Uploader Pro - Auto-Post Videos avatar

TikTok Video Uploader Pro - Auto-Post Videos

Pricing

from $550.00 / 1,000 video uploadeds

Go to Apify Store
TikTok Video Uploader Pro - Auto-Post Videos

TikTok Video Uploader Pro - Auto-Post Videos

Post a video to TikTok from any public URL. Set the caption and privacy. You get a confirmation and a link to the post. The upload fee is charged only when the post is confirmed. Bandwidth is billed per megabyte on any outcome, a failed run included. Your own proxy is never billed per MB.

Pricing

from $550.00 / 1,000 video uploadeds

Rating

0.0

(0)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

18 hours ago

Last modified

Share

TikTok Video Uploader Pro: post a video to TikTok from a link, on your own account

Give it a direct link to an .mp4, a caption and a privacy setting, and it signs in as you and posts the video. You get one row back saying whether the post was confirmed, with the privacy TikTok actually applied.

Two things to settle before you start. This runs on your own TikTok session cookies. There is no API key path and no account is supplied for you, so you paste your own cookies into the secret fields below. And bytes are billed on any outcome, including a run that fails after moving them, because those bytes were already moved. A run with no cookies is a labelled demo that uploads nothing.

InputA direct .mp4 link, a caption, and your own TikTok cookies
OutputOne row saying whether the post went through
CeilingOne video, to one account, per run
Account neededYours. Your own TikTok cookies, pasted in
Price$0.55 when a post is confirmed, plus $0.02 for each megabyte moved

📲 What TikTok Video Uploader Pro does

It opens TikTok Studio with your session, pulls the file from your link, puts it on the upload page, sets the caption and the privacy, and presses Post. Then it waits for TikTok to confirm the post before it calls the job done.

Privacy is checked rather than assumed. If you asked for private and the control could not be confirmed, it refuses to post rather than risk putting your video out publicly.

📥 What you give it

{
"videoUrl": "https://your-bucket.s3.amazonaws.com/clip.mp4",
"caption": "new one is up #fyp",
"privacy": "public"
}
FieldDefaultWhat it is
videoUrlemptyA public, non-expired direct link to the .mp4. An Apify key-value store link, S3 or any CDN works. Leave it empty for a demo run.
captionemptyThe caption, hashtags included.
privacypublicpublic, friends or private.
cookiesemptySecret. The whole tiktok.com cookie list, as a Cookie-Editor JSON export or a raw Cookie: header. This is the reliable one, because the upload page wants more than two cookies.
sessionidemptySecret. Just the value of your sessionid cookie.
sid_ttemptySecret. Just the value of your sid_tt cookie, from the same list.
proxyConfigurationa metered connectionThe connection the upload session uses, and what the per-megabyte charge pays for. Put your own servers in it and they are used exactly as given, with no per-megabyte charge.
demoModefalseForce a labelled demo run that uploads nothing, even with cookies filled in.

Fill in cookies, or the two named cookies, not both. If sessionid has anything in it, that is what gets used and the pasted jar is ignored, which is the opposite of what you would expect. A whole-list export on its own is the shape that works most often.

Your cookies are as good as your password for that account. Use an account you are comfortable exposing, expect them to stop working when you log out, and never save them into a task you publish.

📤 What you get back

A real row from a real confirmed post, with the byte accounting block trimmed off:

{
"ok": true,
"platform": "tiktok",
"caption": "heello",
"privacy": "private",
"postedAt": "2026-08-23T06:04:24.380Z",
"runId": "OPjdapVheI4YTjVs1",
"posted": true,
"videoId": null,
"videoUrl": null,
"privacyApplied": true,
"finalUrl": "https://www.tiktok.com/tiktokstudio/content"
}
FieldWhat it is
ok, postedThe two you judge a run by. Both true means TikTok confirmed the post.
privacyAppliedWhether the privacy you asked for was set on the page before posting.
postedAt, finalUrlWhen it went out, and the page TikTok left the session on.
videoId, videoUrlBest effort. They are read from the newest video link on the account after posting, so they can be null, as they are above, or point at an older post. Check the account if you need the exact link.
chargeStatuspending while a charge is still settling, not-charged when nothing will be billed.
chargeNoteA plain sentence saying what this run will be billed for.
bytesMovedWhat actually crossed the wire: the video file, what was pushed to TikTok, and the session traffic.
errorOn a failure row, what went wrong, in a sentence you can act on.

CHARGE_SUMMARY.json in the run's key-value store holds the settled figures, and a screenshot of the page at the moment a run gave up lands there too.

🧾 Reading the output

The run exits successfully whatever happens, so judge it by the row, not the run status.

RowHow to spot itWhat it means
A confirmed postok: true and posted: trueThe video is live on the account.
The demo row_demo: true and a _noticeNo cookies were supplied, so nothing was uploaded.
A failureok: false and an errorNothing was confirmed. Read the sentence.

The failure sentences are written to be acted on: the cookies are not a signed-in session, the link would not download, the Post button never enabled, the privacy control could not be confirmed.

One case deserves its own line. If the post is submitted but the confirmation never arrives, the row says ok: false and the video may still be live. Check the account before running it again, or you will post twice.

▶️ How to run it

  1. Put the video behind a direct .mp4 link that downloads without a login.
  2. Export your tiktok.com cookies, signed in to the account you want to post from.
  3. Open TikTok Video Uploader Pro and run it once with the cookie fields empty. You get the demo row and nothing is posted.
  4. Paste the export into TikTok session cookies, fill in Video URL, Caption and Privacy, then click Start.
  5. Read the row. ok and posted both true means it is up.

💰 How much does it cost?

Two charges, and they are separate.

$0.55 when a post is confirmed. If nothing is published, that fee does not fire.

$0.02 for each megabyte the run moves, on any outcome, including a failed one, because the bytes were already moved. chargeNote on the row gives you the figure.

Bytes that cross your own servers are never billed per megabyte, so putting them into proxyConfiguration removes that charge on success and failure alike. Use a connection in the same country as the account your cookies come from: a mismatch is the usual reason TikTok puts a check in front of the session.

A demo run uploads nothing and moves no video bytes, so neither charge fires. And if the run's maximum cost cannot cover the upload fee, it stops before moving a single byte and charges nothing.

💡 What people use it for

  • Publishing finished clips from a pipeline, so the last step is not somebody opening the app.
  • Posting the same cut to several accounts, one run per account.
  • Putting a video up as private first, checking it, then making it public by hand.
  • Wiring a post into a workflow that already made the file, in n8n, Make or a script.

🚧 What it does not do

  • It cannot get past a challenge. If TikTok puts a check in front of the session, the run says so and stops. Cookies from a country matching the connection make that less likely.
  • One video, one account, one run. No queue and no scheduling of its own. Apify's scheduler can run it repeatedly.
  • It does not host your video. You supply a link that downloads without a login.
  • No editing. No trimming, resizing, music, covers or stickers. The file goes up as it is.
  • videoId and videoUrl are not guaranteed. They can be null or name an older post.
  • Cookies expire. A session that worked last week can fail today, and the row will say so.
  • A submitted post with no confirmation reads as a failure even though the video may be live.
  • The upload fee only fires on a confirmed post, but the bytes are billed either way.

🧭 Which uploader do you need?

If you wantUse
To post a video to TikTok from a linkThis one
To post a Reel to InstagramInstagram Reel Uploader Pro
To publish to YouTubeYouTube Uploader Pro
To post from Claude, ChatGPT or n8nSocial Media Uploader Pro
To pull a TikTok video down insteadTikTok Video Downloader

❓ Questions people ask

Why does it need my cookies? TikTok has no public posting route for a normal account, so a signed-in session is the only way in, and that session is yours.

Which cookie field do I fill in? The whole-list export in cookies. Leave sessionid and sid_tt empty when you use it, because a filled sessionid wins over the jar.

Can I try it without posting anything? Yes. Run it with the cookie fields empty for the demo row.

Can I schedule daily posts? Use Apify's scheduler, one run per post.

Why was I billed on a run that failed? The bytes had already moved. The $0.55 upload fee is not charged in that case.

Is automating posts allowed? TikTok's terms apply to you and your account, and automation carries real risk to it. Post your own content, keep the volume sane, and treat the risk as yours.

🆘 If something breaks

Open the Issues tab on the actor page. Send the run ID and the error sentence from the row.