{
  "id": "I4j3HnFGPa5UWkIO",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Auto-Create Podcast from YouTube Video Transcript using Dumpling AI and GPT-4o",
  "tags": [],
  "nodes": [
    {
      "id": "d95bcf10-2bb4-4bfd-a8ad-4128a792deb8",
      "name": " Watch for New YouTube Video via RSS",
      "type": "n8n-nodes-base.rssFeedReadTrigger",
      "position": [
        -500,
        -20
      ],
      "parameters": {
        "feedUrl": "https://rss.app/feeds/Vw076Uzh7bIinpci.xml",
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "a5492dab-f400-48d9-abd7-6c832d9d6816",
      "name": "Get Transcript from YouTube Video using Dumpling AI",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -280,
        -20
      ],
      "parameters": {
        "url": "https://app.dumplingai.com/api/v1/get-youtube-transcript",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"videoUrl\": \"{{ $json.link }}\",\n  \"preferredLanguage\": \"en\"\n}\n",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "bce2bb18-c9ee-4165-ac27-5d300e354c7e",
      "name": "Transform Transcript into Podcast Script using GPT-4o",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        -60,
        -20
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "chatgpt-4o-latest",
          "cachedResultName": "CHATGPT-4O-LATEST"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "role": "system",
              "content": "=Instructions:\nYou are a professional transcript editor and podcast summarizer. For the transcript below, complete these tasks:\n\nLabel each speaker (e.g., Speaker 1:) and remove all filler words such as \"um,\" \"uh,\" \"you know,\" \"like,\" \"basically,\" \"actually,\" \"so.\"\n\nCombine the cleaned speaker labels and their text into one single string, clearly formatted.\n\nSummarize the key points of the conversation in 2\u20134 concise sentences.\n\nExtract or infer a short, relevant title based on the content.\n\nReturn your response strictly in the following JSON format:\n{\n  \"title\": \"Relevant podcast title here\",\n  \"cleaned_transcript\": \"Speaker 1: Cleaned text. Speaker 2: Cleaned text. (Continue in this format.)\",\n  \"summary\": \"Concise summary of the key points here.\"\n}"
            },
            {
              "content": "=\nHere\u2019s the transcript:{{ $json.transcript }}"
            }
          ]
        },
        "jsonOutput": true
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "7782b5a6-c842-41be-a5c5-9eaa28a0abd0",
      "name": "Save Podcast Script and Metadata to Airtable",
      "type": "n8n-nodes-base.airtable",
      "position": [
        300,
        -20
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "",
          "cachedResultUrl": "https://airtable.com/appPSvSKdA6075xJC",
          "cachedResultName": "Testing n8n"
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "",
          "cachedResultUrl": "https://airtable.com/appPSvSKdA6075xJC/tbl4MDOqdNZweqXU9",
          "cachedResultName": "podcast"
        },
        "columns": {
          "value": {
            "Title": "={{ $json.message.content.title }}",
            "summary": "={{ $json.message.content.summary }}",
            "podcast transcript": "={{ $json.message.content.cleaned_transcript }}"
          },
          "schema": [
            {
              "id": "Title",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "podcast transcript",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "podcast transcript",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "summary",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "summary",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "create"
      },
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "af143efd-be64-48fc-a405-173575289ed3",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -500,
        -220
      ],
      "parameters": {
        "width": 640,
        "height": 280,
        "content": "### \ud83c\udf99\ufe0f Auto-Create Podcast Script from YouTube Videos\n\nThis workflow starts by monitoring a YouTube RSS feed for new uploads. Once a new video is detected, Dumpling AI extracts the full transcript. GPT-4o then converts that transcript into a well-formatted podcast script, ensuring it\u2019s clean, structured, and engaging. The final script along with the video title and summary is saved into Airtable, where it can be reviewed, edited, or used to produce an actual podcast episode.\n\nIdeal for creators repurposing video content into audio format.\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "0c39768f-93c9-42d7-8b9f-ca4e0ede2312",
  "connections": {
    " Watch for New YouTube Video via RSS": {
      "main": [
        [
          {
            "node": "Get Transcript from YouTube Video using Dumpling AI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Transcript from YouTube Video using Dumpling AI": {
      "main": [
        [
          {
            "node": "Transform Transcript into Podcast Script using GPT-4o",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Transform Transcript into Podcast Script using GPT-4o": {
      "main": [
        [
          {
            "node": "Save Podcast Script and Metadata to Airtable",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}