🎬 TikTok Video Downloader (No Watermark) - Telegram Bot
Download TikTok videos instantly without watermarks via Telegram
Fast, reliable, and user-friendly automated workflow
✨ What This Workflow Does
This powerful automation turns your Telegram bot into a TikTok video downloader. Simply send any TikTok link, and the bot will:
- ✅ Validate the URL automatically
- ⚡ Extract video without watermark
- 📊 Display video statistics (views, likes, author)
- 🚀 Send the clean video file directly to you
No ads. No watermarks. Pure automation magic.
🎯 Key Features
| Feature |
Description |
| 🔍 Smart Validation |
Automatically checks if the link is a valid TikTok URL |
| 💬 Real-time Feedback |
Keeps users informed with status messages at every step |
| ⚠️ Error Handling |
Catches and explains errors in user-friendly language |
| 📈 Video Analytics |
Shows author name, view count, and likes |
| 🎥 High Quality |
Downloads original video quality without TikTok watermark |
| ⚡ Fast Processing |
Optimized HTTP requests with proper headers and timeouts |
🔧 How It Works
Workflow Flow Diagram
📱 User sends TikTok link
↓
✅ URL Validation
├─ Valid → Continue
└─ Invalid → Send error message
↓
💬 Send "Processing..." status
↓
🌐 Fetch TikTok page HTML
↓
🔍 Extract video URL from page data
↓
⬇️ Download video file (no watermark)
↓
📤 Send video to user with stats
Technical Process
- Trigger Reception: Telegram webhook receives user message
- URL Validation: IF node checks for
tiktok.com or vm.tiktok.com domains
- User Feedback: Bot sends "uploading video..." chat action + status message
- Variable Configuration: Stores chat ID and video URL for later use
- HTML Fetching: HTTP request to TikTok with browser-like headers
- Data Extraction: JavaScript code parses
__UNIVERSAL_DATA_FOR_REHYDRATION__ JSON
- Video Download: HTTP request with proper cookies and referrer headers
- Delivery: Telegram sends video file with formatted caption including stats
Error Handling Strategy
Each critical node (HTTP requests, code execution) has error output enabled:
- On Success: Continues to next processing step
- On Error: Routes to "Format Error" → "Send Error Message" path
- User Experience: Clear, actionable error messages instead of silent failures
🚀 Set Up Steps
Prerequisites
- ✅ n8n instance (v1.116.0 or higher)
- ✅ Telegram Bot Token (Create via @BotFather)
- ✅ Basic understanding of n8n workflows
Step 1: Import Workflow
- Copy the workflow JSON
- In n8n, click "+ Add workflow" → "Import from JSON"
- Paste the JSON and click "Import"
Step 2: Configure Telegram Credentials
- Click on any Telegram node
- Select "Create New Credential" in the Credentials dropdown
- Enter your Bot Token from @BotFather
- Click "Save"
- All Telegram nodes will automatically use this credential
Step 3: Enable Error Handling ⚠️ CRITICAL
You MUST manually configure error outputs on these 3 nodes:
Node: "Get TikTok Page HTML"
- Click the node → Settings tab
- Find "On Error" section
- Select "Continue With Error Output"
- Click Save
Node: "Extract Video URL"
- Click the node → Settings tab
- Set "On Error" to "Continue With Error Output"
- Click Save
Node: "Download Video File"
- Click the node → Settings tab
- Set "On Error" to "Continue With Error Output"
- Click Save
💡 Why? n8n cannot import error handling settings via JSON. This manual step ensures errors are caught instead of crashing the workflow.
Step 4: Activate Workflow
- Click the "Active" toggle in the top-right corner
- The workflow is now listening for Telegram messages
Step 5: Test Your Bot
- Open Telegram and find your bot
- Send a TikTok link like:
https://www.tiktok.com/@user/video/123456789
- Watch the magic happen! 🎉
🧪 Testing Scenarios
| Test Case |
Input |
Expected Output |
| Valid Video |
Working TikTok link |
✅ Video file + stats caption |
| Invalid URL |
hello world |
❌ "Please send valid TikTok link" |
| Deleted Video |
Link to deleted video |
❌ "Video data not found" error |
| Private Video |
Private account video |
❌ "Video may be private" error |
| Short Link |
https://vm.tiktok.com/abc |
✅ Resolves and downloads |
🎨 Customization Ideas
Change Language
Edit text in Telegram nodes to translate messages:
"⏳ Downloading video..." → "⏳ Đang tải video..."
Add Video Compression
Insert a Compress node between "Download Video File" and "Send Video to User" for smaller files.
Store Statistics
Add a Google Sheets node after "Extract Video URL" to log:
- Video URL
- Author
- Views/Likes
- Download timestamp
Multi-Platform Support
Duplicate the workflow and modify URL validation + extraction logic for Instagram, YouTube Shorts, etc.
Rate Limiting
Add a Wait node (2 seconds) before "Get TikTok Page HTML" to avoid IP bans.
🐛 Troubleshooting
Problem: Bot doesn't respond
- ✅ Check if workflow is Active
- ✅ Verify Telegram credentials are correct
- ✅ Check Executions tab for errors
Problem: "Video data not found" error
- ✅ TikTok may have changed their HTML structure
- ✅ Update the regex in "Extract Video URL" node
- ✅ Check if video is actually deleted/private
Problem: Download fails
- ✅ Ensure "On Error" is set to "Continue With Error Output"
- ✅ Check if your IP is blocked by TikTok (use VPN)
- ✅ Verify headers in "Download Video File" node
Problem: Error messages not appearing
- ✅ Double-check error output connections (red dots)
- ✅ Make sure "Format Error" node references correct variables
- ✅ Test by intentionally breaking a node (invalid URL)
📊 Performance Metrics
| Metric |
Value |
| Average Processing Time |
5-10 seconds |
| Success Rate |
~95% (valid public videos) |
| Max Video Size |
Limited by Telegram (50MB) |
| Concurrent Users |
Unlimited (webhook-based) |
🔐 Privacy & Security
- ✅ No Data Storage: Videos are streamed directly to users, not stored
- ✅ No Logging: User IDs and links are processed in-memory only
- ✅ Secure Headers: Mimics browser requests to avoid detection
- ✅ Error Sanitization: Sensitive data is filtered from error messages
📚 Technical Stack
- n8n Version: 1.116.0+
- Node Types Used:
telegramTrigger (v1.2)
telegram (v1.2)
if (v2.2)
set (v3.4)
httpRequest (v4.2)
code (v2)
stickyNote (v1)
- External APIs: TikTok CDN, Telegram Bot API
🎓 Learning Resources
Want to understand the workflow better? Check these concepts:
🤝 Contributing
Found a bug? Have an improvement idea?
- Test your changes thoroughly
- Document any new nodes or logic
- Share your enhanced workflow with the community
- Credit the original author (see below)
👨💻 About the Author
Nguyen Thieu Toan
n8n Automation Specialist & Workflow Creator
🌐 Website: nguyenthieutoan.com
📧 Contact: Available on website
🎯 Specialty: Building production-ready n8n workflows for real-world automation
"I create workflows that just work. No fluff, no complexity—just reliable automation that saves time and solves problems."
Other Workflows by Nguyen Thieu Toan
- 🎵 Spotify to YouTube Playlist Converter
- 📸 Instagram Media Downloader Bot
- 📊 Multi-Channel Social Media Scheduler
- 🔄 Automated Content Repurposing Pipeline
Visit nguyenthieutoan.com for more automation workflows and tutorials.
📝 License & Attribution
This workflow is provided free of charge for personal and commercial use.
Required Attribution:
- When sharing or modifying: Include author name and website link
- When showcasing: Tag @nguyenthieutoan or link to nguyenthieutoan.com
Not Required But Appreciated:
- Star the workflow on n8n community
- Share your success story
- Suggest improvements
🎉 Version History
| Version |
Date |
Changes |
| 2.0 |
2025-10-22 |
• Added comprehensive error handling<br>• Improved user feedback<br>• Added video statistics<br>• English language support<br>• Enhanced documentation |
| 1.0 |
2025-10-21 |
• Initial release<br>• Basic download functionality |
⭐ Support This Work
If this workflow saved you time:
- ⭐ Star it on n8n community
- 📢 Share with fellow automation enthusiasts
- 💬 Leave feedback on nguyenthieutoan.com
- ☕ Buy me a coffee (link on website)
Happy Automating! 🚀
Last Updated: October 22, 2025
Workflow Name: TikTok Video Downloader (No Watermark) - Telegram Bot
Author: Nguyen Thieu Toan