Skip to main content

Upload or schedule videos to TikTok with viral TikTok sounds and hashtags.

Project description

tiktokautouploader

AUTOMATE TIKTOK UPLOADS. USE TRENDING/FAVORITED SOUNDS, ADD WORKING HASHTAGS, SCHEDULE UPLOADS, AUTOSOLVES CAPTCHAS, AND MORE

PyPI version WORKING AS OF FEB 2026 (sound_aud_vol issues only, use default sound_aud_vol='mix')

Features

  • Bypass/Auto Solve Captchas: Captchas won't slow you down, they get solved automatically.
  • Upload with TikTok Sounds: Add popular TikTok sounds to your videos. Search by name or pull straight from your favorites.
  • Schedule Uploads: Queue videos for a specific time, up to 10 days out.
  • Copyright Check: Run a copyright check before uploading so you're not caught off guard later.
  • Add Working Hashtags: Hashtags that are clickable and actually show up as hashtags instead of text.
  • Proxy Support: Route your uploads through a proxy server of your choice.
  • Multiple Accounts: Handle as many TikTok accounts as you need without losing track of any of them.
  • Telegram Integration: Hook the uploader up to a Telegram bot. Check /TelegramAutomation for setup details.

Installation

pip install tiktokautouploader

Already installed? Make sure you're on the latest version before running anything.


Pre-requisites

Node.js is required since parts of this package run JavaScript under the hood. Grab it from nodejs.org if you don't have it. The JS dependencies (playwright, playwright-extra, puppeteer-extra-plugin-stealth) install themselves the first time you run the function — just make sure npm is in your PATH.

Browser binaries also need to be installed once (run after installing library):

python -m playwright install

Quick-Start

It's worth reading DOCUMENTATION.md before diving in. The first time you use the function for an account you'll be asked to log in — this only happens once per account.

NOTE: The first time you run the function, it may take a long while to run as JS libraries are built, this only occurs on first run

Upload with hashtags

from tiktokautouploader import upload_tiktok

upload_tiktok(
    video='path/to/your/video.mp4',
    description='Check out my latest TikTok video!',
    accountname='mytiktokaccount',
    hashtags=['#fun', '#viral']
)

Upload with a TikTok Sound

# Search for a sound by name (default behaviour)
upload_tiktok(video=video_path, description=description, accountname=accountname,
              sound_name='trending_sound', sound_aud_vol='mix')

# Pull a sound from your TikTok favorites instead
upload_tiktok(video=video_path, description=description, accountname=accountname,
              sound_name='saved_sound', sound_aud_vol='mix', search_mode='favorites')

sound_aud_vol controls the balance between your video's original audio and the TikTok sound: 'main', 'mix', or 'background'. Check the docs for details.

Schedule an Upload

upload_tiktok(video=video_path, description=description, accountname=accountname,
              schedule='03:10', day=11)

Copyright Check Before Uploading

upload_tiktok(video=video_path, description=description, accountname=accountname,
              hashtags=hashtags, copyrightcheck=True)

The upload will stop if your video fails the copyright check.

Run Headless with Stealth + Proxy

upload_tiktok(
    video=video_path,
    description=description,
    accountname=accountname,
    headless=True,       # no browser window
    stealth=True,        # human-like delays between actions
    suppressprint=True,  # no console output
    proxy={              # optional proxy config — see docs for format
        'server': 'http://yourproxy:port',
        'username': 'user',
        'password': 'pass'
    }
)

🔧 Full Parameter Reference

Parameter Type Description
video str Path to the video file
description str Caption for the video
accountname str Which account to upload on
hashtags list (opt) List of hashtags to include
sound_name str (opt) Name of the TikTok sound to use
sound_aud_vol str (opt) Audio balance: 'main', 'mix', or 'background'
schedule str (opt) Upload time in HH:MM (your local time)
day int (opt) Day to schedule the upload for
copyrightcheck bool (opt) Run a copyright check before uploading
suppressprint bool (opt) Silence all progress output from the function
headless bool (opt) Run without a visible browser window
stealth bool (opt) Add delays between operations to mimic human behaviour
proxy dict (opt) Proxy server config — see docs for the expected format
search_mode str (opt) How to find the sound: 'search' (default) or 'favorites'

🛠 Dependencies

playwright, requests, Pillow, inference — all installed automatically with the package.


Project details


Release history Release notifications | RSS feed

This version

5.2

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tiktokautouploader-5.2.tar.gz (14.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tiktokautouploader-5.2-py2.py3-none-any.whl (16.1 kB view details)

Uploaded Python 2Python 3

File details

Details for the file tiktokautouploader-5.2.tar.gz.

File metadata

  • Download URL: tiktokautouploader-5.2.tar.gz
  • Upload date:
  • Size: 14.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.5

File hashes

Hashes for tiktokautouploader-5.2.tar.gz
Algorithm Hash digest
SHA256 58e24e9222f1977e02811659d3d9005ad2bea88dfe8623ed3a09e7279b849b3e
MD5 8ff477f4dd650b5c1757086af0a69132
BLAKE2b-256 a5f5f9a9e2b50dac3f36943c1309c6661b48155aaa783809b7609108f7fe8a23

See more details on using hashes here.

File details

Details for the file tiktokautouploader-5.2-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for tiktokautouploader-5.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 8cd808ba50d1a18e3b14edb583bfe8c89385200f01fb18536495a3eb3a099e3d
MD5 a9e355439913d16a98aa775e37dde23e
BLAKE2b-256 42cec4ad4f9e561ae82777e9c5fdc32664fee5e25edd48bcac64feaa9e7ff7c4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page