AutomationFlowsSlack & Telegram › YT Zavod - Auto Parse Videos

YT Zavod - Auto Parse Videos

YT Zavod - Auto Parse Videos. Uses httpRequest, telegram, respondToWebhook. Webhook trigger; 8 nodes.

Webhook trigger★★★★☆ complexity8 nodesHttp RequestTelegram
Slack & Telegram Trigger: Webhook Nodes: 8 Complexity: ★★★★☆

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 →

Download .json
{
  "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.

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 →

More Slack & Telegram workflows → · Browse all categories →