π¬ 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