通过Telegram机器人下载无水印TikTok视频
高级
这是一个Social Media领域的自动化工作流,包含 20 个节点。主要使用 If, Set, Code, Telegram, HttpRequest 等节点。 通过Telegram机器人下载无水印的TikTok视频
前置要求
- •Telegram Bot Token
- •可能需要目标 API 的认证凭证
分类
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"meta": {
"instanceId": "735886904af210643f438394a538e64374f0cb4ab13fd94d97005987482d652a",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "0b75420f-8be7-4da1-bc93-df2877de4adc",
"name": "Telegram 触发器",
"type": "n8n-nodes-base.telegramTrigger",
"position": [
-288,
880
],
"webhookId": "85eca1dd-c6bb-4ca5-8679-0e4f783db978",
"parameters": {
"updates": [
"message"
],
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"id": "s1d5gRfBoQ9ZZAIM",
"name": "Video Download Bot"
}
},
"typeVersion": 1.2
},
{
"id": "ad042de8-2758-4fcd-9887-f015daecbf22",
"name": "验证 TikTok URL",
"type": "n8n-nodes-base.if",
"position": [
0,
880
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "url-check-1",
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json.message.text }}",
"rightValue": "tiktok.com"
}
]
},
"looseTypeValidation": true
},
"typeVersion": 2.2
},
{
"id": "fdadd1c3-37d8-4d36-a445-6904705d894e",
"name": "发送无效 URL 消息",
"type": "n8n-nodes-base.telegram",
"position": [
240,
976
],
"webhookId": "d36fec4f-53f2-43d1-833b-a2aaab8b4ed4",
"parameters": {
"text": "❌ Please send a valid TikTok link!\n\nExamples:\n• https://www.tiktok.com/@user/video/123\n• https://vm.tiktok.com/abc123",
"chatId": "={{ $json.message.from.id }}",
"additionalFields": {
"appendAttribution": false
}
},
"credentials": {
"telegramApi": {
"id": "s1d5gRfBoQ9ZZAIM",
"name": "Video Download Bot"
}
},
"typeVersion": 1.2
},
{
"id": "c98646f6-47dd-475d-9625-a90b19f9b246",
"name": "发送聊天动作",
"type": "n8n-nodes-base.telegram",
"position": [
240,
784
],
"webhookId": "b0e58cb4-92f5-482f-8675-a8c183020c2c",
"parameters": {
"action": "upload_video",
"chatId": "={{ $json.message.from.id }}",
"operation": "sendChatAction"
},
"credentials": {
"telegramApi": {
"id": "s1d5gRfBoQ9ZZAIM",
"name": "Video Download Bot"
}
},
"typeVersion": 1.2
},
{
"id": "9c8b5462-99ca-49c6-85ad-069338299d1f",
"name": "发送处理中消息",
"type": "n8n-nodes-base.telegram",
"position": [
464,
784
],
"webhookId": "76ab519a-0865-47d6-b019-59b737f93ae2",
"parameters": {
"text": "⏳ Downloading video... Please wait!",
"chatId": "={{ $('Telegram Trigger').item.json.message.from.id }}",
"additionalFields": {
"appendAttribution": false
}
},
"credentials": {
"telegramApi": {
"id": "s1d5gRfBoQ9ZZAIM",
"name": "Video Download Bot"
}
},
"typeVersion": 1.2
},
{
"id": "7a1d2ad9-6007-4797-8320-0f7d21924354",
"name": "配置变量",
"type": "n8n-nodes-base.set",
"position": [
688,
784
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "0f5772c0-1f84-45e9-b131-8be1c8dd6d85",
"name": "share_video_url",
"type": "string",
"value": "={{ $json.message.text.trim() }}"
},
{
"id": "781d5f1b-1724-4cd4-9e0d-916de65b43e5",
"name": "chat_id",
"type": "string",
"value": "={{ $json.message.from.id }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "225bfc1b-93fb-4a51-912c-0aff791f98b3",
"name": "获取 TikTok 页面 HTML",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueErrorOutput",
"position": [
864,
784
],
"parameters": {
"url": "={{ $('Telegram Trigger').item.json.message.text }}",
"options": {
"timeout": 30000,
"redirect": {
"redirect": {}
},
"response": {
"response": {
"fullResponse": true,
"responseFormat": "text"
}
}
},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "User-Agent",
"value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
},
{
"name": "Accept",
"value": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
},
{
"name": "Accept-Language",
"value": "en-US,en;q=0.9"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "993c6555-94ec-49dd-97a8-fd03c31ac894",
"name": "提取视频 URL",
"type": "n8n-nodes-base.code",
"onError": "continueErrorOutput",
"position": [
1040,
784
],
"parameters": {
"jsCode": "const html = $input.first().json.data;\nconst headers = $input.first().json.headers || {};\nconst cookies = headers['set-cookie'] || [];\n\nif (!html) {\n throw new Error(\"Unable to load TikTok page. Please try again!\");\n}\n\n// Find JSON data from script tag\nconst regex = /<script id=\"__UNIVERSAL_DATA_FOR_REHYDRATION__\" type=\"application\\/json\">([\\s\\S]*?)<\\/script>/;\nconst match = html.match(regex);\n\nif (!match) {\n throw new Error(\"Video data not found. The link may be deleted or private.\");\n}\n\nconst jsonStr = match[1];\nlet data;\n\ntry {\n data = JSON.parse(jsonStr);\n} catch (e) {\n throw new Error(\"Unable to parse video data. Please try again!\");\n}\n\n// Get video URL from multiple possible paths\nconst itemInfo = data?.__DEFAULT_SCOPE__?.[\"webapp.video-detail\"]?.itemInfo?.itemStruct;\nconst videoUrl = itemInfo?.video?.playAddr || itemInfo?.video?.downloadAddr;\n\nif (!videoUrl) {\n throw new Error(\"Video URL not found. The video may be restricted from downloading.\");\n}\n\nconst videoInfo = {\n videoUrl: videoUrl,\n cookies: cookies.join('; '),\n description: itemInfo?.desc || 'TikTok Video',\n author: itemInfo?.author?.uniqueId || 'unknown',\n stats: {\n plays: itemInfo?.stats?.playCount || 0,\n likes: itemInfo?.stats?.diggCount || 0,\n comments: itemInfo?.stats?.commentCount || 0\n }\n};\n\nreturn [{ json: videoInfo }];"
},
"typeVersion": 2
},
{
"id": "a7a82681-5e5d-47ff-b8b2-b06d25a46764",
"name": "下载视频文件",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueErrorOutput",
"position": [
1248,
784
],
"parameters": {
"url": "={{ $json.videoUrl }}",
"options": {
"timeout": 60000,
"response": {
"response": {
"responseFormat": "file"
}
},
"allowUnauthorizedCerts": true
},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "User-Agent",
"value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
},
{
"name": "Referer",
"value": "https://www.tiktok.com/"
},
{
"name": "Accept",
"value": "video/mp4,video/webm,video/*;q=0.9,application/octet-stream;q=0.8"
},
{
"name": "Accept-Language",
"value": "en-US,en;q=0.9"
},
{
"name": "Connection",
"value": "keep-alive"
},
{
"name": "Cookie",
"value": "={{ $json.cookies }}"
},
{
"name": "Range",
"value": "bytes=0-"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "a4d0002b-3bca-41ca-970f-7fb6f00b86af",
"name": "发送视频给用户",
"type": "n8n-nodes-base.telegram",
"position": [
1504,
640
],
"webhookId": "e9287d60-0bee-4d5b-9438-31ec9a0aced5",
"parameters": {
"chatId": "={{ $('Telegram Trigger').item.json.message.from.id }}",
"operation": "sendVideo",
"binaryData": true,
"additionalFields": {
"caption": "=✅ Video downloaded successfully!\n\n👤 Author: @{{ $('Extract Video URL').item.json.author }}\n👁 Views: {{ $('Extract Video URL').item.json.stats.plays.toLocaleString() }}\n❤️ Likes: {{ $('Extract Video URL').item.json.stats.likes.toLocaleString() }}"
}
},
"credentials": {
"telegramApi": {
"id": "s1d5gRfBoQ9ZZAIM",
"name": "Video Download Bot"
}
},
"typeVersion": 1.2
},
{
"id": "1d66e474-5c33-4785-96fe-7cf470e1506a",
"name": "格式化错误",
"type": "n8n-nodes-base.code",
"position": [
1088,
1072
],
"parameters": {
"jsCode": "// Capture and format error message\nconst errorData = $input.first().json;\nconst error = errorData.error || errorData.message || 'Unknown error occurred';\n\nreturn [{\n json: {\n error: error,\n chat_id: $('Configure Variables').first().json.chat_id\n }\n}];"
},
"typeVersion": 2
},
{
"id": "1b10fdd9-80fd-4387-b8d4-79c38234e397",
"name": "发送错误消息",
"type": "n8n-nodes-base.telegram",
"position": [
1488,
1072
],
"webhookId": "81cf605b-0f05-43dc-8ea4-7896a0bc4b6b",
"parameters": {
"text": "=❌ Error: {{ $json.error }}\n\n💡 Possible reasons:\n• Video was deleted or set to private\n• Invalid link\n• TikTok is under maintenance\n• Video is restricted from downloading\n\nPlease try again or use a different link!",
"chatId": "={{ $json.chat_id }}",
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"id": "s1d5gRfBoQ9ZZAIM",
"name": "Video Download Bot"
}
},
"typeVersion": 1.2
},
{
"id": "ac4f9ce6-c84f-4bd2-9297-0fca86e6a233",
"name": "注释 - 触发器",
"type": "n8n-nodes-base.stickyNote",
"position": [
-368,
592
],
"parameters": {
"color": 4,
"width": 272,
"height": 636,
"content": "## 📥 触发器"
},
"typeVersion": 1
},
{
"id": "b62ec2e9-f8a4-4fdb-95a0-74784f2134ed",
"name": "注释 - 验证",
"type": "n8n-nodes-base.stickyNote",
"position": [
-80,
592
],
"parameters": {
"color": 5,
"height": 636,
"content": "## ✅ 验证"
},
"typeVersion": 1
},
{
"id": "1335249e-7ceb-4f3d-b442-e7d0e25ef23c",
"name": "注释 - 反馈",
"type": "n8n-nodes-base.stickyNote",
"position": [
176,
592
],
"parameters": {
"color": 6,
"width": 460,
"height": 636,
"content": "## 💬 用户反馈"
},
"typeVersion": 1
},
{
"id": "053de0eb-8169-48ce-bae6-d83a3ab5a009",
"name": "注释 - 处理",
"type": "n8n-nodes-base.stickyNote",
"position": [
656,
592
],
"parameters": {
"color": 7,
"width": 1032,
"height": 348,
"content": "## 🎬 视频处理"
},
"typeVersion": 1
},
{
"id": "15ed8c93-95b4-4697-9d66-630e9ff0fdc2",
"name": "注释 - 错误",
"type": "n8n-nodes-base.stickyNote",
"position": [
656,
960
],
"parameters": {
"color": 2,
"width": 1036,
"height": 268,
"content": "## ⚠️ 错误处理"
},
"typeVersion": 1
},
{
"id": "1c93ba5d-2bfa-460a-902c-7322660760c2",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
-368,
192
],
"parameters": {
"color": 3,
"width": 528,
"height": 384,
"content": "# ▶️ Telegram 机器人 TikTok 视频下载器(无水印)"
},
"typeVersion": 1
},
{
"id": "3e3f5f1e-eea9-4ae4-8950-2b277c6337a0",
"name": "便签1",
"type": "n8n-nodes-base.stickyNote",
"position": [
176,
192
],
"parameters": {
"color": 3,
"width": 464,
"height": 384,
"content": "## **工作流流程图**"
},
"typeVersion": 1
},
{
"id": "f38ab8fe-2ae9-4257-adda-827c7be950ac",
"name": "便签2",
"type": "n8n-nodes-base.stickyNote",
"position": [
656,
192
],
"parameters": {
"color": 3,
"width": 1024,
"height": 384,
"content": "## **技术流程**"
},
"typeVersion": 1
},
{
"id": "7b73bb06-ee9c-4997-9443-8c573f4da365",
"name": "删除处理通知",
"type": "n8n-nodes-base.telegram",
"position": [
1504,
800
],
"webhookId": "9b63981a-be98-4f28-8728-9fe12584e4ed",
"parameters": {
"chatId": "={{ $('Telegram Trigger').item.json.message.from.id }}",
"messageId": "={{ $('Send Processing Message').item.json.result.message_id }}",
"operation": "deleteMessage"
},
"credentials": {
"telegramApi": {
"id": "s1d5gRfBoQ9ZZAIM",
"name": "Video Download Bot"
}
},
"typeVersion": 1.2
}
],
"pinData": {},
"connections": {
"Format Error": {
"main": [
[
{
"node": "Send Error Message",
"type": "main",
"index": 0
}
]
]
},
"Send Chat Action": {
"main": [
[
{
"node": "Send Processing Message",
"type": "main",
"index": 0
}
]
]
},
"Telegram Trigger": {
"main": [
[
{
"node": "Validate TikTok URL",
"type": "main",
"index": 0
}
]
]
},
"Extract Video URL": {
"main": [
[
{
"node": "Download Video File",
"type": "main",
"index": 0
}
],
[
{
"node": "Format Error",
"type": "main",
"index": 0
}
]
]
},
"Configure Variables": {
"main": [
[
{
"node": "Get TikTok Page HTML",
"type": "main",
"index": 0
}
]
]
},
"Download Video File": {
"main": [
[
{
"node": "Delete Process Notif",
"type": "main",
"index": 0
},
{
"node": "Send Video to User",
"type": "main",
"index": 0
}
],
[
{
"node": "Format Error",
"type": "main",
"index": 0
}
]
]
},
"Validate TikTok URL": {
"main": [
[
{
"node": "Send Chat Action",
"type": "main",
"index": 0
}
],
[
{
"node": "Send Invalid URL Message",
"type": "main",
"index": 0
}
]
]
},
"Delete Process Notif": {
"main": [
[]
]
},
"Get TikTok Page HTML": {
"main": [
[
{
"node": "Extract Video URL",
"type": "main",
"index": 0
}
],
[
{
"node": "Format Error",
"type": "main",
"index": 0
}
]
]
},
"Send Processing Message": {
"main": [
[
{
"node": "Configure Variables",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级 - 社交媒体
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
Telegram论坛脉搏:使用Gemini和Groq AI模型的社区监控
Telegram论坛脉搏:使用Gemini和Groq AI模型的社区监控
If
Set
Code
+13
59 节点Nguyen Thieu Toan
杂项
AI社交媒体经理
通过 Telegram 机器人、Gemini AI 和向量记忆发布 LinkedIn 和 X 帖子
If
Set
Code
+16
36 节点Gregory
社交媒体
从 Google Sheets 到 Telegram 的自动化测验交付与状态跟踪
从 Google Sheets 到 Telegram 的自动化测验交付与状态跟踪
If
Set
Code
+4
13 节点Ninja
社交媒体
Telegram自动复制器
基于GPT-4o-mini的Telegram频道内容自动复制与翻译
If
Set
Code
+6
19 节点Shohani
社交媒体
✨🩷自动化社交媒体内容发布工厂 + 系统提示组合
使用GPT-4o为6个平台生成平台优化的社交媒体内容
If
Set
Code
+20
100 节点Luan Correia
社交媒体
Instagram 内容与私信自动化
使用 Gemini、Telegram 和 Apify 实现 Instagram 内容与私信自动化
Set
Code
Switch
+9
47 节点Msaid Mohamed el hadi
社交媒体
工作流信息
难度等级
高级
节点数量20
分类1
节点类型7
作者
Nguyen Thieu Toan
@nguyenthieutoanAn AI Automation consultant and system builder specializing in business workflow optimization with n8n. As the Founder of GenStaff, Toan empowers teams to automate complex processes using no-code/low-code tools and AI Agents, making operations smarter and more efficient. He actively shares expertise and tutorials about n8n, AI, and automation on his blog and social channels.
外部链接
在 n8n.io 查看 →
分享此工作流