TiktokAutoUploader v2.0

August 10, 2026 · View on GitHub

TiktokAutoUploader logo

The Fastest Known TikTok Auto Video Uploader — using Requests, not Selenium.

Automatically uploads to TikTok with 1 command and within 3 seconds.

LinkedIn Forks Stars Watchers HitCount


Sponsors

Swiftproxy — 90M+ residential proxies

Swiftproxy provides 90M+ clean residential and static residential proxies designed for social media automation, multi-account management, and web automation workflows. With stable connections, global IP coverage, and reliable proxy infrastructure, Swiftproxy helps users manage multiple accounts securely, reduce IP-related restrictions, and scale their automation tasks. Residential proxy traffic never expires until used, and free testing is available.

Get 10% off with code PROXY90Get proxies from Swiftproxy →

Termius

Termius provides a secure, reliable, and collaborative SSH client.


Features

  • Uses Requests not Selenium (super fast)
  • Will not break when site layout changes (robust)
  • Handle multiple accounts on local machine (multi-uploads)
  • Schedule videos up to 10 days in the future
  • Upload your own videos or use YouTube short links (auto-downloaded via yt-dlp)

Prerequisites

Before you begin, make sure you have the following installed on your system:

RequirementMinimum VersionCheck CommandInstall Link
Python3.9+python3 --versionpython.org
Node.js18+node --versionnodejs.org
npm8+npm --versionBundled with Node.js
Google ChromeAny recentgoogle-chrome --versiongoogle.com/chrome
pipAny recentpip --versionBundled with Python

Installation

git clone https://github.com/makiisthenes/TiktokAutoUploader.git
cd TiktokAutoUploader
chmod +x setup.sh
./setup.sh

The setup script handles everything automatically:

  1. Installs Python dependencies
  2. Installs Node.js packages for TikTok signature generation
  3. Downloads the Playwright Chromium browser binary
  4. Creates required directories (CookiesDir/, VideosDirPath/, output/)
  5. Creates a .env file from the template if one doesn't exist

Option B: Manual setup (step by step)

1. Clone the repository

git clone https://github.com/makiisthenes/TiktokAutoUploader.git
cd TiktokAutoUploader

2. Install Python dependencies

pip install -r requirements.txt

3. Install Node.js packages

cd tiktok_uploader/tiktok-signature
npm install
cd ../..

4. Install Playwright browser

npx --prefix tiktok_uploader/tiktok-signature playwright install chromium

5. Create required directories

mkdir -p CookiesDir VideosDirPath output

6. Set up environment file

cp .env.example .env

Usage

1. Login to your TikTok account

Before uploading, you need to save your TikTok session. This opens a Chrome window where you log in manually, and the session cookies are stored locally.

python3 cli.py login -n my_username
  • -n / --name : A label to save this account under (used later for uploads)

A Chrome browser window will open. Log into your TikTok account, and the session will be saved automatically once detected.

2. Upload a video

From a local file:

python3 cli.py upload --user my_username -v "video.mp4" -t "My video title"

Place your video files in the VideosDirPath/ directory first.

From a YouTube link (auto-download):

python3 cli.py upload --user my_username -yt "https://www.youtube.com/shorts/xxxxx" -t "My video title"

The video is downloaded automatically using yt-dlp before uploading to TikTok.

3. Upload options

FlagDescriptionDefault
-u / --userSaved account name (from login)required
-v / --videoPath to local video file
-yt / --youtubeYouTube URL to download from
-t / --titleVideo title / caption (max 2200 chars)required
-sc / --scheduleSchedule time in seconds from now (min 900, max 864000)0 (immediate)
-vi / --visibility0 = public, 1 = private0
-ct / --commentAllow comments: 0 = off, 1 = on1
-d / --duetAllow duets: 0 = off, 1 = on0
-st / --stitchAllow stitch: 0 = off, 1 = on0
-ai / --ailabelAI-generated label: 0 = off, 1 = on0
-p / --proxyHTTP proxy URL

4. View saved data

# Show all logged-in accounts
python3 cli.py show -u

# Show all videos in VideosDirPath/
python3 cli.py show -v

5. Help

python3 cli.py -h
python3 cli.py login -h
python3 cli.py upload -h
python3 cli.py show -h

Configuration

Settings are stored in config.txt at the project root:

SettingDescriptionDefault
COOKIES_DIRDirectory for stored session cookies./CookiesDir
VIDEOS_DIRDirectory for video files./VideosDirPath
POST_PROCESSING_VIDEO_PATHOutput directory for processed videos./VideosDirPath
IMAGEMAGICK_FONTFont for video text overlaysArial
IMAGEMAGICK_FONT_SIZEFont size for text overlays80
IMAGEMAGICK_TEXT_FOREGROUND_COLORText colourwhite
IMAGEMAGICK_TEXT_BACKGROUND_COLORText background colourblack
LANGLanguage preferenceen

The .env file stores the TikTok login URL and is created from .env.example during setup.


Project Structure

TiktokAutoUploader/
├── cli.py                     # Main entry point (CLI)
├── config.txt                 # App configuration
├── setup.sh                   # Automated setup script
├── requirements.txt           # Python dependencies
├── .env.example               # Environment template
├── CookiesDir/                # Stored session cookies (auto-created)
├── VideosDirPath/             # Video files for upload (auto-created)
└── tiktok_uploader/
    ├── tiktok.py              # Upload & login logic
    ├── Video.py               # Video download & processing
    ├── Browser.py             # Chrome browser management
    ├── Config.py              # Configuration loader
    ├── cookies.py             # Cookie persistence
    ├── bot_utils.py           # Signature & request helpers
    ├── basics.py              # Utility functions
    └── tiktok-signature/      # TikTok signature generation (Node.js)
        ├── index.js
        ├── browser.js
        ├── utils.js
        └── package.json

Troubleshooting

ChromeDriver version mismatch

If you see an error like This version of ChromeDriver only supports Chrome version X, the app auto-detects your Chrome version. Make sure you have Google Chrome installed and accessible from your terminal:

google-chrome --version

Cannot find module 'playwright-chromium'

Run the Playwright install step:

cd tiktok_uploader/tiktok-signature
npm install
npx playwright install chromium

YouTube download issues

If yt-dlp warns about a missing JavaScript runtime, install Deno or Node.js >= 18. The download still works without it for most videos but some formats may be limited.

session not created or login issues

Make sure Google Chrome is up to date. The app uses undetected-chromedriver which patches ChromeDriver to match your installed Chrome version.


Demo

Video showcases main usage of the app, uploading a video to TikTok.


Professional Software

Fill waiting list form: https://forms.gle/M4KpdfruqCukQvj99

If you are looking for something more, which can get you faster to your goal, I offer software which can:

  • Handle more than 1000 accounts
  • Upload identical videos to multiple accounts automatically
  • Schedule videos for multiple accounts, 20 days to 2 years in advance
  • Automatically source videos from YouTube, X, Reddit, TikTok
  • Setup uploading pipelines, from source to uploading schedule
  • Metrics for viewing current performance of these different accounts
  • Personalised support from me for any issues you may face for up to 3 months
  • Proxy support, clean and modern UI

Available for purchase, if interested please email me at michaelperes562@gmail.com with subject line Tiktok Bot Software or else I might miss the email.


Support This Project

If you like the work provided, please consider supporting me through the available links for Patreon and Ko-Fi.

Else if you have any requests or would like to contribute send a PR.

Alternatively consider starring the project, or giving me a follow ;)

  • Thanks @DelvinBa for updating to TikTok's new upload endpoint. (09/12/2024)

Bugs and Issues

If you find any bugs or issues, please add to the issues tab, please do not email me relating to this, I will see on issues.


Old Branch

If you would like to continue to use the library based uploader, please forward to old branch namely old.

This still relies on Selenium which is slow and unreliable.


Notes and Terms

I am not responsible for any effects to your account, usage of such tools may ban your account. Please use at your own risk.


Star History

Star History Chart