📱 Download TikTok videos without watermarks via Telegram bot

3,031 views · 📱 Social Media & Email Marketing

💡 Pro Tip — Since TikTok doesn’t have a public API, getting data usually means fragile HTTP scraping. ScraperNode is a community node that gives you clean JSON for TikTok profiles, videos, and comments — drop it into your workflow and skip the parsing.

View All Scrapers

Description

🎬 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:

No ads. No watermarks. Pure automation magic.


🎯 Key Features

FeatureDescription
🔍 Smart ValidationAutomatically checks if the link is a valid TikTok URL
💬 Real-time FeedbackKeeps users informed with status messages at every step
⚠️ Error HandlingCatches and explains errors in user-friendly language
📈 Video AnalyticsShows author name, view count, and likes
🎥 High QualityDownloads original video quality without TikTok watermark
⚡ Fast ProcessingOptimized 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

  1. Trigger Reception: Telegram webhook receives user message
  2. URL Validation: IF node checks for tiktok.com or vm.tiktok.com domains
  3. User Feedback: Bot sends “uploading video…” chat action + status message
  4. Variable Configuration: Stores chat ID and video URL for later use
  5. HTML Fetching: HTTP request to TikTok with browser-like headers
  6. Data Extraction: JavaScript code parses __UNIVERSAL_DATA_FOR_REHYDRATION__ JSON
  7. Video Download: HTTP request with proper cookies and referrer headers
  8. Delivery: Telegram sends video file with formatted caption including stats

Error Handling Strategy

Each critical node (HTTP requests, code execution) has error output enabled:


🚀 Set Up Steps

Prerequisites

Step 1: Import Workflow

  1. Copy the workflow JSON
  2. In n8n, click ”+ Add workflow”“Import from JSON”
  3. Paste the JSON and click “Import”

Step 2: Configure Telegram Credentials

  1. Click on any Telegram node
  2. Select “Create New Credential” in the Credentials dropdown
  3. Enter your Bot Token from @BotFather
  4. Click “Save”
  5. 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”

Node: “Extract Video URL”

Node: “Download Video File”

> 💡 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

  1. Click the “Active” toggle in the top-right corner
  2. The workflow is now listening for Telegram messages

Step 5: Test Your Bot

  1. Open Telegram and find your bot
  2. Send a TikTok link like: https://www.tiktok.com/@user/video/123456789
  3. Watch the magic happen! 🎉

🧪 Testing Scenarios

Test CaseInputExpected Output
Valid VideoWorking TikTok link✅ Video file + stats caption
Invalid URLhello world❌ “Please send valid TikTok link”
Deleted VideoLink to deleted video❌ “Video data not found” error
Private VideoPrivate account video❌ “Video may be private” error
Short Linkhttps://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:

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

Problem: “Video data not found” error

Problem: Download fails

Problem: Error messages not appearing


📊 Performance Metrics

MetricValue
Average Processing Time5-10 seconds
Success Rate~95% (valid public videos)
Max Video SizeLimited by Telegram (50MB)
Concurrent UsersUnlimited (webhook-based)

🔐 Privacy & Security


📚 Technical Stack


🎓 Learning Resources

Want to understand the workflow better? Check these concepts:


🤝 Contributing

Found a bug? Have an improvement idea?

  1. Test your changes thoroughly
  2. Document any new nodes or logic
  3. Share your enhanced workflow with the community
  4. 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

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:

Not Required But Appreciated:


🎉 Version History

VersionDateChanges
2.02025-10-22• Added comprehensive error handling
• Improved user feedback
• Added video statistics
• English language support
• Enhanced documentation
1.02025-10-21• Initial release
• Basic download functionality

⭐ Support This Work

If this workflow saved you time:

Happy Automating! 🚀


Last Updated: October 22, 2025
Workflow Name: TikTok Video Downloader (No Watermark) - Telegram Bot
Author: Nguyen Thieu Toan

🔗 Nodes Used

HTTP Request, Telegram, Telegram Trigger

📥 Import

Download workflow.json and import into n8n: Workflow menu → Import from File

📖 Importing guide · 🔑 Credential setup