{
  "name": "Convert YouTube videos to SEO blog posts with Claude Sonnet and Bright Data",
  "nodes": [
    {
      "id": "42653f91-fb17-48b0-b999-9faa8b6b310e",
      "name": "YouTube Keyword Form",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -2688,
        96
      ]
    },
    {
      "id": "9593bac8-e21c-4918-ab6f-1918bf170c6c",
      "name": "Start YouTube Video Scraper",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -2480,
        96
      ]
    },
    {
      "id": "08aed791-d2a6-476a-b79e-89494a340646",
      "name": "Check Scraping Progress",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -2240,
        96
      ]
    },
    {
      "id": "2f360fbe-0a54-4509-93d8-efc167b49657",
      "name": "Wait for Scraper (1 min)",
      "type": "n8n-nodes-base.wait",
      "position": [
        -2000,
        96
      ]
    },
    {
      "id": "e40b616e-a877-4f8b-babb-c789277b4e41",
      "name": "Check: Is Scraping Complete?",
      "type": "n8n-nodes-base.if",
      "position": [
        -1712,
        96
      ]
    },
    {
      "id": "81a0c9e1-a80a-4335-9375-b263b2aec7ca",
      "name": "Fetch Scraped Video Data",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -1472,
        80
      ]
    },
    {
      "id": "611bc529-916c-4406-bc9e-add702cb5e90",
      "name": "Process Videos in Batches",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -1216,
        80
      ]
    },
    {
      "id": "bcf171b3-343a-4278-8d55-78e01fe83f63",
      "name": "Extract Video Metadata",
      "type": "n8n-nodes-base.set",
      "position": [
        -912,
        96
      ]
    },
    {
      "id": "0d46c22c-a622-424d-9b18-e4aae9118ae6",
      "name": "Generate Blog with Claude AI",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -656,
        96
      ]
    },
    {
      "id": "934e4458-4924-4e95-b5ed-3b7b85ec20ae",
      "name": "Claude Sonnet 4 Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
      "position": [
        -656,
        448
      ]
    },
    {
      "id": "21986def-15af-4870-a76c-984210436097",
      "name": "Extract Title & Content",
      "type": "n8n-nodes-base.code",
      "position": [
        -256,
        96
      ]
    },
    {
      "id": "079640c3-56a3-49cd-be92-d08948c78f12",
      "name": "Publish to Blogger",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        16,
        96
      ]
    },
    {
      "id": "c020aa83-8eb9-4560-96cf-a6907b7c5a96",
      "name": "Save to Tracking Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        256,
        96
      ]
    },
    {
      "id": "74377661-121e-46c4-8811-aa767d7b11f9",
      "name": "Wait Before Next Batch (1 min)",
      "type": "n8n-nodes-base.wait",
      "position": [
        480,
        96
      ]
    },
    {
      "id": "ab51ff30-82ee-4ee4-9e5c-b39aefc2f734",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3264,
        -272
      ],
      "parameters": {
        "width": 528,
        "height": 928,
        "content": "# YouTube to Blog Automation\n\nTransform YouTube videos into engaging blog posts automatically. This workflow scrapes YouTube videos based on keywords, uses Claude AI to write professional blog content"
      }
    },
    {
      "id": "f279ef50-8ab4-4161-9ecb-7a83f7adc912",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2688,
        -32
      ],
      "parameters": {
        "width": 304,
        "height": 176,
        "content": "## Form Input & Scraping\nUser submits a keyword which triggers Bright Data to scrape YouTube videos matching the search term\n"
      }
    },
    {
      "id": "383de876-2303-455b-9c60-287b0cd4b439",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2240,
        -32
      ],
      "parameters": {
        "width": 624,
        "height": 176,
        "content": "## Scraping Status Verification\nPolls Bright Data every minute to check if scraping is complete, looping until data is ready for processing\n"
      }
    },
    {
      "id": "527bc2f3-0d9d-417d-970a-c832af262aa6",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1472,
        -32
      ],
      "parameters": {
        "width": 352,
        "height": null,
        "content": "## Video Data Retrieval\nFetches the final scraped YouTube video data and splits it into batches for sequential AI processing\n"
      }
    },
    {
      "id": "eca19f5d-04fd-4f52-86c7-91051280cc00",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -912,
        -32
      ],
      "parameters": {
        "width": 752,
        "height": 176,
        "content": "## AI Content Generation\nExtracts video title and description, sends to Claude AI for professional blog generation (600+ words), then cleans the output to separate title from content\n"
      }
    },
    {
      "id": "fa43985e-5553-4e7f-b473-34cfe0f17083",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        16,
        -32
      ],
      "parameters": {
        "width": 560,
        "height": 176,
        "content": "## Blog Publishing & Logging\nPublishes the AI-generated blog to Blogger, saves video title and live URL to Google Sheets, then waits 1 minute before processing the next video batch\n"
      }
    }
  ],
  "connections": {
    "Publish to Blogger": {
      "main": [
        [
          {
            "node": "Save to Tracking Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "YouTube Keyword Form": {
      "main": [
        [
          {
            "node": "Start YouTube Video Scraper",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Claude Sonnet 4 Model": {
      "ai_languageModel": [
        [
          {
            "node": "Generate Blog with Claude AI",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Extract Video Metadata": {
      "main": [
        [
          {
            "node": "Generate Blog with Claude AI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Save to Tracking Sheet": {
      "main": [
        [
          {
            "node": "Wait Before Next Batch (1 min)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Scraping Progress": {
      "main": [
        [
          {
            "node": "Wait for Scraper (1 min)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Title & Content": {
      "main": [
        [
          {
            "node": "Publish to Blogger",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Scraped Video Data": {
      "main": [
        [
          {
            "node": "Process Videos in Batches",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait for Scraper (1 min)": {
      "main": [
        [
          {
            "node": "Check: Is Scraping Complete?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Process Videos in Batches": {
      "main": [
        [],
        [
          {
            "node": "Extract Video Metadata",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Start YouTube Video Scraper": {
      "main": [
        [
          {
            "node": "Check Scraping Progress",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check: Is Scraping Complete?": {
      "main": [
        [
          {
            "node": "Fetch Scraped Video Data",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Check Scraping Progress",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Blog with Claude AI": {
      "main": [
        [
          {
            "node": "Extract Title & Content",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait Before Next Batch (1 min)": {
      "main": [
        [
          {
            "node": "Process Videos in Batches",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}