Supported content types
The bot automatically detects and handles three types of TikTok content:Videos
Regular TikTok videos are downloaded without watermarks using a 3-part retry strategy:- URL resolution - Resolves short URLs (vm.tiktok.com, vt.tiktok.com) to full URLs
- Video info extraction - Extracts metadata and direct CDN URLs using yt-dlp
- Video download - Downloads video from TikTok CDN with curl_cffi
Slideshows
TikTok photo posts (slideshows) are extracted as individual images:- Downloads all images in parallel
- Converts HEIC and non-native formats to PNG automatically
- Sends images in batches of 10 (Telegram limit)
- Group chats limited to 10 images maximum
Music/Audio
Extract audio tracks from TikTok videos:- Downloads audio in original quality
- Includes metadata (title, author, duration)
- Includes cover image thumbnail
Browser impersonation
TT-Bot uses Chrome 120 fingerprint impersonation to bypass TikTok’s WAF:Usage examples
Send TikTok link in private chat
Users simply send a TikTok URL to the bot:- Shows processing reaction (👀)
- Extracts video info with retry
- Downloads video with retry
- Sends video back to user
- Clears reaction on completion
Send TikTok link in group chat
Same as private chat, but with:- Image slideshows limited to 10 images
- No ads shown
- Reactions used for status updates
Mobile/short URLs
The bot automatically resolves short URLs:https://vm.tiktok.com/XXXhttps://vt.tiktok.com/XXXhttps://www.tiktok.com/t/XXX
Error handling
The bot handles various TikTok-specific errors:- Deleted video (status 10204) - Shows “Video was deleted” message
- Private video (status 10222) - Shows “Video is private” message
- Under review (status 10216) - Treated as deleted
- Rate limited - Retries with proxy rotation
- Region blocked - Shows geo-restriction message
Performance optimizations
Streaming downloads
Long videos (>5 minutes by default) use streaming download to reduce memory usage:Resource pooling
- ThreadPoolExecutor: 500 workers for yt-dlp sync calls
- curl_cffi sessions: 1000 connections per proxy
- aiohttp connector: Unlimited connections with DNS caching

