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
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
/TelegramAutomationfor 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.mdbefore 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
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tiktokautouploader-5.0.tar.gz.
File metadata
- Download URL: tiktokautouploader-5.0.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
84064527f2d7a3cf5bb0857b0d3e75738a47b3c5d275c10d3e13417b60d069ba
|
|
| MD5 |
5b12700a230a073d87721bb07bdf625d
|
|
| BLAKE2b-256 |
a0e42e3731e95ad1ea06aec0c4e2dd758554b3b77fa02999899d005e64a9b193
|
File details
Details for the file tiktokautouploader-5.0-py2.py3-none-any.whl.
File metadata
- Download URL: tiktokautouploader-5.0-py2.py3-none-any.whl
- Upload date:
- Size: 16.1 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
50e71ab3bcca7693cdb32e100c035e3923ad8e0945acc94d398b23adebbd8d5f
|
|
| MD5 |
a794cf9af5526a30443843323457607f
|
|
| BLAKE2b-256 |
471363c022cb4dbdb47c57ee0893862ca13f3150475aaaddc65eeb5544017b18
|