Fastest TikTok AutoUploader using Requests, not Selenium
Automatically uploads to TikTok with 1 command and within 3 seconds.
The Fastest Known TikTok Auto Video Uploader with requests not Selenium!
- 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)
Before you begin, make sure you have the following installed on your system:
| Requirement | Minimum Version | Check Command | Install Link |
|---|---|---|---|
| Python | 3.9+ | python3 --version |
python.org |
| Node.js | 18+ | node --version |
nodejs.org |
| npm | 8+ | npm --version |
Bundled with Node.js |
| Google Chrome | Any recent | google-chrome --version |
google.com/chrome |
| pip | Any recent | pip --version |
Bundled with Python |
git clone https://github.com/makiisthenes/TiktokAutoUploader.git
cd TiktokAutoUploader
chmod +x setup.sh
./setup.shThe setup script handles everything automatically:
- Installs Python dependencies
- Installs Node.js packages for TikTok signature generation
- Downloads the Playwright Chromium browser binary
- Creates required directories (
CookiesDir/,VideosDirPath/,output/) - Creates a
.envfile from the template if one doesn't exist
1. Clone the repository
git clone https://github.com/makiisthenes/TiktokAutoUploader.git
cd TiktokAutoUploader2. Install Python dependencies
pip install -r requirements.txt3. Install Node.js packages
cd tiktok_uploader/tiktok-signature
npm install
cd ../..4. Install Playwright browser
npx --prefix tiktok_uploader/tiktok-signature playwright install chromium5. Create required directories
mkdir -p CookiesDir VideosDirPath output6. Set up environment file
cp .env.example .envBefore 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.
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.
| Flag | Description | Default |
|---|---|---|
-u / --user |
Saved account name (from login) | required |
-v / --video |
Path to local video file | — |
-yt / --youtube |
YouTube URL to download from | — |
-t / --title |
Video title / caption (max 2200 chars) | required |
-sc / --schedule |
Schedule time in seconds from now (min 900, max 864000) | 0 (immediate) |
-vi / --visibility |
0 = public, 1 = private |
0 |
-ct / --comment |
Allow comments: 0 = off, 1 = on |
1 |
-d / --duet |
Allow duets: 0 = off, 1 = on |
0 |
-st / --stitch |
Allow stitch: 0 = off, 1 = on |
0 |
-ai / --ailabel |
AI-generated label: 0 = off, 1 = on |
0 |
-p / --proxy |
HTTP proxy URL | — |
# Show all logged-in accounts
python3 cli.py show -u
# Show all videos in VideosDirPath/
python3 cli.py show -vpython3 cli.py -h
python3 cli.py login -h
python3 cli.py upload -h
python3 cli.py show -hSettings are stored in config.txt at the project root:
| Setting | Description | Default |
|---|---|---|
COOKIES_DIR |
Directory for stored session cookies | ./CookiesDir |
VIDEOS_DIR |
Directory for video files | ./VideosDirPath |
POST_PROCESSING_VIDEO_PATH |
Output directory for processed videos | ./VideosDirPath |
IMAGEMAGICK_FONT |
Font for video text overlays | Arial |
IMAGEMAGICK_FONT_SIZE |
Font size for text overlays | 80 |
IMAGEMAGICK_TEXT_FOREGROUND_COLOR |
Text colour | white |
IMAGEMAGICK_TEXT_BACKGROUND_COLOR |
Text background colour | black |
LANG |
Language preference | en |
The .env file stores the TikTok login URL and is created from .env.example during setup.
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
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 --versionRun the Playwright install step:
cd tiktok_uploader/tiktok-signature
npm install
npx playwright install chromiumIf 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.
Make sure Google Chrome is up to date. The app uses undetected-chromedriver which patches ChromeDriver to match your installed Chrome version.
Video showcases main usage of the app, uploading a video to TikTok.
demo.mp4
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.
Termius provides a secure, reliable, and collaborative SSH client.
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)
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.
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.
I am not responsible for any effects to your account, usage of such tools may ban your account. Please use at your own risk.
