The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"name": "YT Zavod - Auto Parse Videos",
"nodes": [
{
"parameters": {
"httpMethod": "POST",
"path": "video-parsed",
"responseMode": "responseNode",
"options": {}
},
"id": "webhook-video-parsed",
"name": "Webhook Video Parsed",
"type": "n8n-nodes-base.webhook",
"typeVersion": 1,
"position": [
250,
300
]
},
{
"parameters": {
"conditions": {
"string": [
{
"value1": "={{$json.body.status}}",
"value2": "completed"
}
]
}
},
"id": "if-completed",
"name": "Is Completed?",
"type": "n8n-nodes-base.if",
"typeVersion": 1,
"position": [
450,
300
]
},
{
"parameters": {
"functionCode": "const body = $input.item.json.body;\nconst videoId = body.videoId;\nconst result = body.result || {};\n\nreturn {\n json: {\n videoId,\n status: body.status,\n event: body.event,\n timestamp: body.timestamp,\n hasTranscript: !!result.transcript,\n hasChapters: (result.chapters || []).length > 0,\n fullText: result.full_text || '',\n language: result.transcript?.language || 'unknown'\n }\n};"
},
"id": "extract-parsed-data",
"name": "Extract Parsed Data",
"type": "n8n-nodes-base.code",
"typeVersion": 1,
"position": [
650,
200
]
},
{
"parameters": {
"url": "={{$env.BACKEND_URL}}/api/videos/{{$json.videoId}}/transcript",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"requestMethod": "GET",
"options": {}
},
"id": "get-transcript",
"name": "Get Full Transcript",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 3,
"position": [
850,
200
],
"credentials": {
"httpHeaderAuth": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"chatId": "={{$env.TELEGRAM_ADMIN_CHAT_ID}}",
"text": "=\u2705 *\u0412\u0438\u0434\u0435\u043e \u0440\u0430\u0441\u043f\u0430\u0440\u0441\u0435\u043d\u043e*\n\n\ud83d\udcf9 Video ID: `{{$json.videoId}}`\n\ud83c\udf10 \u042f\u0437\u044b\u043a: {{$json.language}}\n\ud83d\udcdd \u0422\u0435\u043a\u0441\u0442: {{$json.hasTranscript ? '\u0415\u0441\u0442\u044c' : '\u041d\u0435\u0442'}}\n\u23f1\ufe0f \u0422\u0430\u0439\u043c\u043a\u043e\u0434\u044b: {{$json.hasChapters ? '\u0415\u0441\u0442\u044c' : '\u041d\u0435\u0442'}}\n\n_\u0412\u0440\u0435\u043c\u044f: {{$json.timestamp}}_",
"additionalFields": {
"parse_mode": "Markdown"
}
},
"id": "notify-telegram",
"name": "Notify via Telegram",
"type": "n8n-nodes-base.telegram",
"typeVersion": 1,
"position": [
1050,
200
],
"credentials": {
"telegramApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"respondWith": "json",
"responseBody": "={{ { success: true, received: true } }}"
},
"id": "respond-ok",
"name": "Respond OK",
"type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1,
"position": [
1250,
200
]
},
{
"parameters": {
"chatId": "={{$env.TELEGRAM_ADMIN_CHAT_ID}}",
"text": "=\u274c *\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 \u0432\u0438\u0434\u0435\u043e*\n\n\ud83d\udcf9 Video ID: `{{$json.body.videoId}}`\n\u26a0\ufe0f \u041e\u0448\u0438\u0431\u043a\u0430: {{$json.body.error}}\n\n_\u0412\u0440\u0435\u043c\u044f: {{$json.body.timestamp}}_",
"additionalFields": {
"parse_mode": "Markdown"
}
},
"id": "notify-error",
"name": "Notify Error",
"type": "n8n-nodes-base.telegram",
"typeVersion": 1,
"position": [
650,
400
],
"credentials": {
"telegramApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"respondWith": "json",
"responseBody": "={{ { success: true, received: true } }}"
},
"id": "respond-error",
"name": "Respond Error",
"type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1,
"position": [
850,
400
]
}
],
"connections": {
"Webhook Video Parsed": {
"main": [
[
{
"node": "Is Completed?",
"type": "main",
"index": 0
}
]
]
},
"Is Completed?": {
"main": [
[
{
"node": "Extract Parsed Data",
"type": "main",
"index": 0
}
],
[
{
"node": "Notify Error",
"type": "main",
"index": 0
}
]
]
},
"Extract Parsed Data": {
"main": [
[
{
"node": "Get Full Transcript",
"type": "main",
"index": 0
}
]
]
},
"Get Full Transcript": {
"main": [
[
{
"node": "Notify via Telegram",
"type": "main",
"index": 0
}
]
]
},
"Notify via Telegram": {
"main": [
[
{
"node": "Respond OK",
"type": "main",
"index": 0
}
]
]
},
"Notify Error": {
"main": [
[
{
"node": "Respond Error",
"type": "main",
"index": 0
}
]
]
}
},
"settings": {
"executionOrder": "v1"
},
"staticData": null,
"tags": []
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
httpHeaderAuthtelegramApi
About this workflow
YT Zavod - Auto Parse Videos. Uses httpRequest, telegram, respondToWebhook. Webhook trigger; 8 nodes.
Source: https://github.com/rosavskiy/YT_combiner/blob/bfe75ded66dc229b03c0bf1f7bd1112a576ea422/n8n-workflows/video-auto-parse.json — original creator credit. Request a take-down →