AutomationFlowsAI & RAG › Convert Documents to Podcast Audio with Gpt-4o & Openai Tts

Convert Documents to Podcast Audio with Gpt-4o & Openai Tts

ByNanaB @nanabrown on n8n.io

This workflow contains community nodes that are only compatible with the self-hosted version of n8n.

Event trigger★★★★☆ complexityAI-powered19 nodesGoogle Drive TriggerGoogle DriveOpenAI ChatOutput Parser StructuredChain LlmOpenAIHTTP Request
AI & RAG Trigger: Event Nodes: 19 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #6138 — we link there as the canonical source.

This workflow follows the Chainllm → Google Drive recipe pattern — see all workflows that pair these two integrations.

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
{
  "id": "Uw2ldaC4MMBk1Hp5",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Automated Podcast Production: Document to Dynamic Audio",
  "tags": [
    {
      "id": "88Rkm7VaAFefsT34",
      "name": "AI",
      "createdAt": "2025-05-06T22:52:26.053Z",
      "updatedAt": "2025-05-06T22:52:26.053Z"
    },
    {
      "id": "4MwMqoYXQeLzfpT7",
      "name": "Podcast",
      "createdAt": "2025-07-18T11:41:58.652Z",
      "updatedAt": "2025-07-18T11:41:58.652Z"
    },
    {
      "id": "6CpXJCvm5RUvG77h",
      "name": "Audio",
      "createdAt": "2025-07-18T11:42:01.178Z",
      "updatedAt": "2025-07-18T11:42:01.178Z"
    },
    {
      "id": "W0kwHUnhvUn7kmRu",
      "name": "Content Generation",
      "createdAt": "2025-05-12T20:58:58.942Z",
      "updatedAt": "2025-05-12T20:58:58.942Z"
    },
    {
      "id": "Lh7rPgYrwjn9e48m",
      "name": "Multimodal AI",
      "createdAt": "2025-05-12T20:59:10.487Z",
      "updatedAt": "2025-05-12T20:59:10.487Z"
    }
  ],
  "nodes": [
    {
      "id": "810de711-e7ba-4612-9c40-033882e36da1",
      "name": "Google Drive Trigger",
      "type": "n8n-nodes-base.googleDriveTrigger",
      "position": [
        -180,
        -120
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "58c0461e-ffaf-437f-a1f7-c3f3bf352a3b",
      "name": "Download file",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        40,
        -120
      ],
      "parameters": {},
      "typeVersion": 3
    },
    {
      "id": "3568824e-78c9-417f-9aba-bacd15efe55f",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        440,
        140
      ],
      "parameters": {},
      "typeVersion": 1.2
    },
    {
      "id": "6dc0b5ed-0578-4cd7-93bf-c075c59b6850",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        640,
        140
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "1470abd5-1328-4ec2-a0b4-20a0133c28a8",
      "name": "Split Out",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        1060,
        -120
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "34faf382-cf7d-4002-833e-c4f735d57473",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        40,
        -560
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "e951a8f4-e652-4b87-b154-b5e305d9ed94",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1060,
        -560
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "48c39890-9dee-48a6-9a72-ef487e0baeaf",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2160,
        -560
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "02dd8a82-1621-4681-b8c6-982d148bfd10",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -700,
        -580
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "3ef8027f-2322-4b70-8aae-da25884fcf80",
      "name": "Generate Podcast Script from Text",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        480,
        -120
      ],
      "parameters": {},
      "typeVersion": 1.7
    },
    {
      "id": "7b75fe94-7016-4392-b515-1a038064bd9b",
      "name": "Determine Participants",
      "type": "n8n-nodes-base.set",
      "position": [
        840,
        -120
      ],
      "parameters": {},
      "typeVersion": 3.4
    },
    {
      "id": "0bdbcd98-a501-4afe-b32a-cb2d1b643728",
      "name": "Generate Speaker Audios with Prefered Voices",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        1280,
        -120
      ],
      "parameters": {},
      "typeVersion": 1.8
    },
    {
      "id": "773556dd-4108-4f4b-8c15-90cd21e018a4",
      "name": "Convert File to Base 64",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        1500,
        -120
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "05ccf0c1-be7a-4447-b330-4a4ccb947374",
      "name": "Convert File to Text",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        260,
        -120
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "f6479353-3cea-4644-bfcf-6e5e2722ca8b",
      "name": "Store Files in MongoDB",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1720,
        -120
      ],
      "parameters": {},
      "typeVersion": 4.2
    },
    {
      "id": "8ad23362-4a8a-445c-a5fe-32ce29f09408",
      "name": "Convert IDs to URL",
      "type": "n8n-nodes-base.set",
      "position": [
        1940,
        -120
      ],
      "parameters": {},
      "typeVersion": 3.4
    },
    {
      "id": "068915e6-2d89-434a-902f-83557642e86a",
      "name": "Combine URLs into Payload",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        2160,
        -120
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "22356f16-bdc1-41db-a4e1-2010e27dcd4b",
      "name": "Generate Podcast",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2380,
        -120
      ],
      "parameters": {},
      "typeVersion": 4.2
    },
    {
      "id": "467bb334-f8ae-47cb-83c5-89ea956b75b0",
      "name": "Upload File to Google Drive",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        2600,
        -120
      ],
      "parameters": {},
      "typeVersion": 3
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "e2d5dfce-3059-4acd-b5ad-6f66cb2dafc2",
  "connections": {
    "Split Out": {
      "main": [
        [
          {
            "node": "Generate Speaker Audios with Prefered Voices",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download file": {
      "main": [
        [
          {
            "node": "Convert File to Text",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Podcast": {
      "main": [
        [
          {
            "node": "Upload File to Google Drive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Generate Podcast Script from Text",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Convert IDs to URL": {
      "main": [
        [
          {
            "node": "Combine URLs into Payload",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Convert File to Text": {
      "main": [
        [
          {
            "node": "Generate Podcast Script from Text",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Drive Trigger": {
      "main": [
        [
          {
            "node": "Download file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Determine Participants": {
      "main": [
        [
          {
            "node": "Split Out",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Store Files in MongoDB": {
      "main": [
        [
          {
            "node": "Convert IDs to URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Convert File to Base 64": {
      "main": [
        [
          {
            "node": "Store Files in MongoDB",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Generate Podcast Script from Text",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Combine URLs into Payload": {
      "main": [
        [
          {
            "node": "Generate Podcast",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Podcast Script from Text": {
      "main": [
        [
          {
            "node": "Determine Participants",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Speaker Audios with Prefered Voices": {
      "main": [
        [
          {
            "node": "Convert File to Base 64",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

This workflow contains community nodes that are only compatible with the self-hosted version of n8n.

Source: https://n8n.io/workflows/6138/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

The best content automation template in the market is now even better—with “deep research” on time-sensitive topics\! Unlike most n8n content automation templates that are mainly for “demo purposes,”

OpenAI, HTTP Request, XML +11
AI & RAG

Awesome N8N Templates. Uses notion, lmChatOpenAi, outputParserStructured, chainLlm. Event-driven trigger; 36 nodes.

Notion, OpenAI Chat, Output Parser Structured +8
AI & RAG

🎯 Create viral TikToks, Shorts, Reels, podcasts, and ASMR videos in minutes — all on autopilot.

OpenAI, HTTP Request, Form Trigger +7
AI & RAG

Generate AI viral videos with NanoBanana & VEO3, shared on socials via Blotato 2. Uses @blotato/n8n-nodes-blotato, googleSheets, lmChatOpenAi, toolThink. Event-driven trigger; 94 nodes.

@Blotato/N8N Nodes Blotato, Google Sheets, OpenAI Chat +9
AI & RAG

This template is designed for marketers, content creators, and e-commerce brands who want to automate the creation of professional ad videos at scale. It’s ideal for teams looking to generate consiste

Telegram, Telegram Trigger, Google Drive +8