{
  "name": "Level 2",
  "nodes": [
    {
      "parameters": {
        "formTitle": "youtube",
        "formDescription": "videoId",
        "formFields": {
          "values": [
            {
              "fieldLabel": "videoId"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.formTrigger",
      "typeVersion": 2.3,
      "position": [
        -480,
        32
      ],
      "id": "435285c6-1b0e-4b76-96ab-64f18c857de6",
      "name": "On form submission"
    },
    {
      "parameters": {
        "url": "https://api.supadata.ai/v1/transcript",
        "sendQuery": true,
        "specifyQuery": "json",
        "jsonQuery": "={\n  \"url\": \"https://www.youtube.com/watch?v={{ $json.videoId }}\",\n  \"lang\": \"ko\",\n  \"text\": true,\n  \"mode\": \"auto\",\n  \"chunkSize\": 4000\n}\n",
        "sendHeaders": true,
        "specifyHeaders": "json",
        "jsonHeaders": "{\n  \"x-api-key\": \"{supadata API\ud0a4}\",\n  \"accept\": \"application/json\"\n}",
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        -272,
        32
      ],
      "id": "90e15b51-2491-428b-810d-4c5e33dc2a67",
      "name": "HTTP Request"
    },
    {
      "parameters": {
        "modelId": {
          "__rl": true,
          "value": "models/gemini-2.5-flash",
          "mode": "list",
          "cachedResultName": "models/gemini-2.5-flash"
        },
        "messages": {
          "values": [
            {
              "content": "=YouTube \uc601\uc0c1 \uc790\ub9c9\uc744 \ubd84\uc11d\ud558\uc5ec \ud575\uc2ec \uc778\uc0ac\uc774\ud2b8\ub97c \uad6c\uc870\ud654\ub41c JSON \ud615\uc2dd\uc73c\ub85c \ucd94\ucd9c\ud558\uc138\uc694. \uc790\ub9c9\uc5d0 \uba85\uc2dc\ub41c \ub0b4\uc6a9\ub9cc \uc0ac\uc6a9\ud558\uc138\uc694.\n\n\ucd9c\ub825 JSON \ud615\uc2dd:\n{\n  \"category\": \"string\",\n  \"summary\": [\"string\", \"string\", \"string\"],\n  \"insights\": [\"string\", \"string\", \"string\"],\n  \"actions\": [\"string\", \"string\", \"string\"],\n  \"keywords\": [\"string\", \"string\", \"string\", \"string\", \"string\"]\n}\n\n\uc694\uad6c\uc0ac\ud56d:\n- summary: \uc815\ud655\ud788 3\uac1c \ud56d\ubaa9, \uad6c\uccb4\uc801 \uc218\uce58 \ud3ec\ud568 (\ud37c\uc13c\ud2b8, \ubc30\uc218, \uae08\uc561 \ub4f1)\n- insights: \uc790\ub9c9 \ub370\uc774\ud130 \uae30\ubc18 \uc2e4\ud589 \uac00\ub2a5\ud55c \uc778\uc0ac\uc774\ud2b8 3-5\uac1c\n- actions: \uc989\uc2dc \uc2e4\ud589 \uac00\ub2a5\ud55c \uc561\uc158 \uc544\uc774\ud15c 3\uac1c\n- keywords: \uc815\ud655\ud788 5\uac1c \ud575\uc2ec \ud0a4\uc6cc\ub4dc\n- \uc790\ub9c9 \ub0b4\uc6a9\ub9cc \uc0ac\uc6a9, \ucd94\uce21 \uae08\uc9c0\n\n\uc608\uc2dc:\n\n\uc790\ub9c9: \"\"\"2025\ub144 \ud2f1\ud1a1 \ub9c8\ucf00\ud305 \uc608\uc0b0\uc744 30% \ub298\ub824\uc57c \ud569\ub2c8\ub2e4. 15\ucd08 \uc20f\ud3fc \uc601\uc0c1\uc758 \uc804\ud658\uc728\uc774 \uc77c\ubc18 \uc601\uc0c1 \ub300\ube44 3\ubc30 \ub192\uc2b5\ub2c8\ub2e4. AI \uc601\uc0c1 \ud3b8\uc9d1 \ud234\ub85c \uc81c\uc791\ube44 50% \uc808\uac10 \uac00\ub2a5\ud569\ub2c8\ub2e4.\"\"\"\n\ucd9c\ub825:\n{\n  \"category\": \"\ub9c8\ucf00\ud305\",\n  \"summary\": [\n    \"2025\ub144 \ud2f1\ud1a1 \ub9c8\ucf00\ud305 \uc608\uc0b0 30% \uc99d\uc561 \uad8c\uc7a5\",\n    \"15\ucd08 \uc20f\ud3fc \uc601\uc0c1 \uc804\ud658\uc728\uc774 \uc77c\ubc18 \ub300\ube44 3\ubc30\",\n    \"AI \ud234\ub85c \uc81c\uc791\ube44 50% \uc808\uac10\"\n  ],\n  \"insights\": [\n    \"\ud2f1\ud1a1 \ud22c\uc790 \ud6a8\uc728\uc774 \ud0c0 \ucc44\ub110 \ub300\ube44 \ucd5c\uace0\",\n    \"\uc9e7\uc740 \uc601\uc0c1\uc77c\uc218\ub85d \uc804\ud658\uc728 \ub192\uc74c\",\n    \"AI \ud234 \ud65c\uc6a9\uc73c\ub85c \ube44\uc6a9 \uc808\uac10 \uac00\ub2a5\"\n  ],\n  \"actions\": [\n    \"\ud2f1\ud1a1 \ube44\uc988\ub2c8\uc2a4 \uacc4\uc815 \uac1c\uc124\",\n    \"15\ucd08 \uc601\uc0c1 \ud15c\ud50c\ub9bf 5\uac1c \uc81c\uc791\",\n    \"\ub9c8\ucf00\ud305 \uc608\uc0b0 \uc7ac\ubc30\ubd84 \uac80\ud1a0\"\n  ],\n  \"keywords\": [\"\ud2f1\ud1a1\ub9c8\ucf00\ud305\", \"\uc20f\ud3fc\", \"\uc804\ud658\uc728\", \"AI\ud3b8\uc9d1\", \"2025\uc804\ub7b5\"]\n}\n\n\uc790\ub9c9: \"\"\"React 19\uc758 use() \ud6c5\uc73c\ub85c \ube44\ub3d9\uae30 \ud398\uce6d\uc774 \uac04\ub2e8\ud574\uc9d1\ub2c8\ub2e4. \ucf54\ub4dc\ub7c9 40% \uac10\uc18c, \uac1c\ubc1c \uc2dc\uac04 30% \ub2e8\ucd95.\"\"\"\n\ucd9c\ub825:\n{\n  \"category\": \"\uae30\uc220\",\n  \"summary\": [\n    \"React 19 use() \ud6c5\uc73c\ub85c \ube44\ub3d9\uae30 \ucc98\ub9ac \uac04\uc18c\ud654\",\n    \"\uae30\uc874 \ub300\ube44 \ucf54\ub4dc\ub7c9 40% \uac10\uc18c\",\n    \"\uac1c\ubc1c \uc2dc\uac04 30% \ub2e8\ucd95\"\n  ],\n  \"insights\": [\n    \"use() \ud6c5\uc774 \ube44\ub3d9\uae30 \ub85c\uc9c1\uc758 \uc0c8 \ud45c\uc900\",\n    \"\ucf54\ub4dc \ubcf5\uc7a1\ub3c4 \uac10\uc18c\ub85c \uc720\uc9c0\ubcf4\uc218\uc131 \ud5a5\uc0c1\",\n    \"\uc0dd\uc0b0\uc131 30% \uc99d\uac00\"\n  ],\n  \"actions\": [\n    \"React 19 \ubca0\ud0c0 \ubb38\uc11c \uc77d\uae30\",\n    \"\ud1a0\uc774 \ud504\ub85c\uc81d\ud2b8\ub85c use() \ud6c5 \uc2e4\uc2b5\",\n    \"\uae30\uc874 \ucf54\ub4dc \ub9ac\ud329\ud1a0\ub9c1 \uacc4\ud68d\"\n  ],\n  \"keywords\": [\"React19\", \"use\ud6c5\", \"\ube44\ub3d9\uae30\", \"\ucd5c\uc801\ud654\", \"\uc0dd\uc0b0\uc131\"]\n}\n\n\uc774\uc81c \ub2e4\uc74c \uc790\ub9c9\uc744 \ub3d9\uc77c\ud55c \ud615\uc2dd\uc73c\ub85c \ubd84\uc11d\ud558\uc138\uc694:\n\n\uc790\ub9c9: \"\"\"\n{{ $json.content }}\n\"\"\""
            }
          ]
        },
        "jsonOutput": true,
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.googleGemini",
      "typeVersion": 1,
      "position": [
        -64,
        32
      ],
      "id": "a7a889e7-870a-4738-bd90-a4e042cd6725",
      "name": "Message a model",
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "jsCode": "const raw = $json?.content?.parts?.[0]?.text ?? \"\";\nconst block = raw.match(/```(?:json)?\\s*([\\s\\S]*?)```/i);\nconst candidate = block ? block[1] : raw;\nconst brace = candidate.match(/{[\\s\\S]*}/);\nconst jsonStr = brace ? brace[0] : candidate;\n\nlet obj;\ntry { obj = JSON.parse(jsonStr); } catch { obj = null; }\n\nreturn { json: obj };\n"
      },
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        256,
        32
      ],
      "id": "2c63556f-6eae-47f1-b49a-6e06ca245543",
      "name": "Code in JavaScript"
    }
  ],
  "connections": {
    "On form submission": {
      "main": [
        [
          {
            "node": "HTTP Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP Request": {
      "main": [
        [
          {
            "node": "Message a model",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Message a model": {
      "main": [
        [
          {
            "node": "Code in JavaScript",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "66bc8379-f210-42a7-b8f7-36e68587b6df",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "id": "FypfsOJ8rSFWGWiX",
  "tags": []
}