TikTok 텍스트 전사
고급
이것은Content Creation, Multimodal AI분야의자동화 워크플로우로, 21개의 노드를 포함합니다.주로 If, Code, Wait, HttpRequest, GoogleSheets 등의 노드를 사용하며. RapidAPI 및 Google Sheets를 사용한 TikTok 비디오 트랜스크립션 자동화
사전 요구사항
- •대상 API의 인증 정보가 필요할 수 있음
- •Google Sheets API 인증 정보
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"id": "OW8DfG2xXPS60mSj",
"meta": {
"instanceId": "60c025075753afcab9f803964b4caaca9402f435deb4efafbb8e3b93b54d8752"
},
"name": "TikTok Transcript",
"tags": [],
"nodes": [
{
"id": "c0de0228-f79b-4b18-9e5d-ee6218259078",
"name": "Google Sheets2",
"type": "n8n-nodes-base.googleSheets",
"position": [
-1380,
40
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "url",
"value": ""
},
"authentication": "serviceAccount"
},
"credentials": {
"googleApi": {
"id": "qUtlCnYpk7bXXaYp",
"name": "Google Sheets account 3"
}
},
"typeVersion": 4.5
},
{
"id": "4b18deea-cfc2-4a8d-b2f3-8b31cac0d573",
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueRegularOutput",
"position": [
-560,
40
],
"parameters": {
"url": "https://tiktok-transcript-generator.p.rapidapi.com/tiktok/index.php",
"method": "POST",
"options": {
"response": {
"response": {}
}
},
"sendBody": true,
"sendHeaders": true,
"bodyParameters": {
"parameters": [
{
"name": "url",
"value": "={{ $json['Video Url'] }}"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "x-rapidapi-host",
"value": "tiktok-transcript-generator.p.rapidapi.com"
},
{
"name": "x-rapidapi-key"
}
]
}
},
"typeVersion": 4.2,
"alwaysOutputData": true
},
{
"id": "baad7161-51f5-4f29-8af0-39244e10eb60",
"name": "Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"position": [
580,
-40
],
"parameters": {
"columns": {
"value": {
"Video Url": "={{ $('If').item.json['Video Url'] }}",
"Transcript": "={{ $json.cleanedSubtitles }}",
"Generated Date": "={{ new Date().toISOString().slice(0, 10) }}"
},
"schema": [
{
"id": "Video Url",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Video Url",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Transcript",
"type": "string",
"display": true,
"required": false,
"displayName": "Transcript",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Generated Date",
"type": "string",
"display": true,
"required": false,
"displayName": "Generated Date",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "row_number",
"type": "string",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "row_number",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Video Url"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "url",
"value": ""
},
"authentication": "serviceAccount"
},
"credentials": {
"googleApi": {
"id": "qUtlCnYpk7bXXaYp",
"name": "Google Sheets account 3"
}
},
"typeVersion": 4.5
},
{
"id": "ab5bcc9b-e2a0-4ec7-a4db-de512662549d",
"name": "Loop Over Items",
"type": "n8n-nodes-base.splitInBatches",
"position": [
-1100,
40
],
"parameters": {
"options": {
"reset": false
}
},
"typeVersion": 3
},
{
"id": "d5d6e8a4-a2da-4cd5-80fc-3cf7c294697d",
"name": "Wait",
"type": "n8n-nodes-base.wait",
"position": [
900,
140
],
"webhookId": "74ac1ccb-f843-41b8-97c4-b8d32892a5ea",
"parameters": {
"amount": 10
},
"typeVersion": 1.1
},
{
"id": "6bea9362-5502-4c3c-acac-3f1a16bb0c64",
"name": "If",
"type": "n8n-nodes-base.if",
"position": [
-820,
60
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "e0b7b7c8-3a7a-466d-bae7-269282b49d34",
"operator": {
"type": "string",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json['Video Url'] }}",
"rightValue": ""
},
{
"id": "64dde394-0e49-4306-a24a-de2bf448fc95",
"operator": {
"type": "string",
"operation": "empty",
"singleValue": true
},
"leftValue": "={{ $json.Transcript }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "a9ca3926-efbd-42fa-9388-b24625690145",
"name": "Code",
"type": "n8n-nodes-base.code",
"position": [
-20,
-40
],
"parameters": {
"jsCode": "return items.map(item => {\n const raw = item.json.subtitles;\n\n // Remove \"WEBVTT\" header and timestamp lines\n const cleaned = raw\n .replace(/^WEBVTT\\s*/gm, '') // Remove \"WEBVTT\"\n .replace(/^\\d{2}:\\d{2}:\\d{2} --> \\d{2}:\\d{2}:\\d{2}/gm, '') // Remove timestamps\n .replace(/^\\s*\\n/gm, '') // Remove empty lines\n .trim();\n\n return {\n json: {\n cleanedSubtitles: cleaned\n }\n };\n});\n"
},
"typeVersion": 2
},
{
"id": "becf9d6b-26a1-4498-9683-18ad15bc82ea",
"name": "If1",
"type": "n8n-nodes-base.if",
"position": [
-260,
40
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "cd25e377-5c82-40b1-85ea-b372ee7765b7",
"operator": {
"type": "number",
"operation": "notEquals"
},
"leftValue": "={{ $json.error.status }}",
"rightValue": 404
}
]
}
},
"typeVersion": 2.2
},
{
"id": "7c8d30f1-df83-4ee1-83ce-32f6d9b0a810",
"name": "Google Sheets1",
"type": "n8n-nodes-base.googleSheets",
"position": [
300,
140
],
"parameters": {
"columns": {
"value": {
"Video Url": "={{ $('If').item.json['Video Url'] }}",
"Transcript": "No transcription available",
"Generated Date": "={{ new Date().toISOString().slice(0, 10) }}"
},
"schema": [
{
"id": "Video Url",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Video Url",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Transcript",
"type": "string",
"display": true,
"required": false,
"displayName": "Transcript",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Generated Date",
"type": "string",
"display": true,
"required": false,
"displayName": "Generated Date",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "row_number",
"type": "string",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "row_number",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Video Url"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "url",
"value": ""
},
"authentication": "serviceAccount"
},
"credentials": {
"googleApi": {
"id": "qUtlCnYpk7bXXaYp",
"name": "Google Sheets account 3"
}
},
"typeVersion": 4.5
},
{
"id": "90a316f5-0f08-42f8-86a0-318bcc9814f9",
"name": "워크플로우 '실행' 클릭 시",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-1580,
40
],
"parameters": {},
"typeVersion": 1
},
{
"id": "5d36dbf3-ebd6-4cd8-913b-ee1308d6847b",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2500,
-480
],
"parameters": {
"width": 780,
"height": 980,
"content": "# 📝 TikTok Transcript Extraction & Logging Workflow\n\nThis n8n workflow automatically fetches TikTok video transcripts via the RapidAPI TikTok Transcript Generator and updates a Google Sheet with cleaned transcriptions. It processes only rows missing transcripts, handles errors, and adds timestamps.\n\n---\n\n## 🧩 Node-by-Node Explanation\n1. **Manual Trigger** – Starts the workflow manually on demand. \n2. **Google Sheets2** – Reads TikTok video URLs and existing transcripts from the sheet. \n3. **Loop Over Items** – Processes rows in batches of 10 for rate limiting. \n4. **If** – Checks if a video URL exists and transcript is missing. \n5. **HTTP Request** – Calls TikTok transcript API to fetch subtitles. \n6. **If1** – Verifies the API response is successful (no 404 error). \n7. **Code** – Cleans raw subtitles by removing timestamps and headers. \n8. **Google Sheets** – Updates the sheet with cleaned transcript and date. \n9. **Google Sheets1** – Marks videos with no transcript available in the sheet. \n10. **Wait** – Pauses workflow to manage API rate limits before next batch. \n\n---\n\n## 🔑 Summary Use Cases \n- Automate generation of TikTok video transcripts for content teams. \n- Maintain a centralized Google Sheet of transcripts for SEO, captions, or repurposing content. \n- Reduce manual effort and errors in transcribing TikTok videos. \n- Handle API errors and missing data gracefully.\n\n---\n\n**This workflow enables seamless, automated transcription fetching and management for TikTok videos via Google Sheets integration, ideal for marketing, social media managers, and content creators.**\n"
},
"typeVersion": 1
},
{
"id": "708c75c1-2ed7-48eb-b606-d6ff3eca7e30",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1660,
-320
],
"parameters": {
"height": 580,
"content": "### 1. When clicking ‘Execute workflow’ \n**Type:** Manual Trigger \n**Purpose:** \nManually triggers the workflow to start the process of reading TikTok URLs and generating transcripts. \n**Use Case:** \nInitiate the entire flow on demand without waiting for scheduled triggers."
},
"typeVersion": 1
},
{
"id": "b7c01b0d-726b-44e7-8099-93812eccce4b",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1400,
-320
],
"parameters": {
"height": 580,
"content": "### 2. Google Sheets2 \n**Type:** Google Sheets (Read) \n**Purpose:** \nReads rows from the specified Google Sheet containing TikTok video URLs and existing transcript data. \n**Use Case:** \nFetch the list of videos to process and identify which ones need transcription.\n"
},
"typeVersion": 1
},
{
"id": "2d5229aa-2c40-41f6-8556-77690c3ed956",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1140,
-320
],
"parameters": {
"height": 580,
"content": "### 3. Loop Over Items \n**Type:** Split In Batches \n**Purpose:** \nProcesses the fetched rows in smaller batches (default 10 items per batch) to avoid rate limits or overload. \n**Use Case:** \nControl the workflow execution speed and resource usage when handling large data sets.\n"
},
"typeVersion": 1
},
{
"id": "89710512-98f5-4dc2-b8a5-234ae49d343f",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-880,
-320
],
"parameters": {
"height": 580,
"content": "### 4. If \n**Type:** Conditional Check (If) \n**Purpose:** \nFilters each row to process only those where the `Video Url` is not empty and `Transcript` is empty (i.e., videos needing transcription). \n**Use Case:** \nSkip rows already having transcripts to avoid redundant API calls."
},
"typeVersion": 1
},
{
"id": "7514d668-1b6d-4786-8e7f-f07fbfeac194",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-620,
-320
],
"parameters": {
"height": 580,
"content": "### 5. HTTP Request \n**Type:** HTTP Request \n**Purpose:** \nCalls the TikTok Transcript Generator API with the video URL to retrieve the transcript. \n**Use Case:** \nGet the subtitle/transcript data for TikTok videos programmatically.\n"
},
"typeVersion": 1
},
{
"id": "2cfb2c0d-980c-4654-9486-45bc765372c6",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-360,
-320
],
"parameters": {
"height": 580,
"content": "### 6. If \n**Type:** Conditional Check (If) \n**Purpose:** \nChecks if the API response is valid and does not contain a 404 error. \n**Use Case:** \nHandle cases where transcripts are unavailable or the video URL is invalid."
},
"typeVersion": 1
},
{
"id": "167cf773-1543-4778-ba99-d4adc87f3ec3",
"name": "Sticky Note7",
"type": "n8n-nodes-base.stickyNote",
"position": [
-100,
-320
],
"parameters": {
"height": 580,
"content": "### 7. Code \n**Type:** Code (JavaScript) \n**Purpose:** \nCleans the raw subtitles returned by the API by removing headers, timestamps, and empty lines for better readability. \n**Use Case:** \nPrepare the transcript text for clean storage and further processing."
},
"typeVersion": 1
},
{
"id": "ad776fb7-d066-4f10-917e-a1fbf476e961",
"name": "Sticky Note8",
"type": "n8n-nodes-base.stickyNote",
"position": [
200,
-180
],
"parameters": {
"height": 480,
"content": "### 8. Google Sheets \n**Type:** Google Sheets (Append or Update) \n**Purpose:** \nWrites the cleaned transcript, video URL, and generation date back into the Google Sheet, updating existing rows. \n**Use Case:** \nMaintain an up-to-date record of transcripts next to each TikTok video URL."
},
"typeVersion": 1
},
{
"id": "45271bfa-118b-46c7-8e73-e077119ce31f",
"name": "Sticky Note9",
"type": "n8n-nodes-base.stickyNote",
"position": [
520,
-380
],
"parameters": {
"height": 580,
"content": "### 9. Google Sheets1 \n**Type:** Google Sheets (Append or Update) \n**Purpose:** \nFor cases where the API returns an error (like 404), it updates the sheet with a \"No transcription available\" message for that video URL. \n**Use Case:** \nClearly indicate videos for which transcripts could not be generated."
},
"typeVersion": 1
},
{
"id": "4bb59f93-a06c-4252-bec4-2809fa4d6067",
"name": "Sticky Note10",
"type": "n8n-nodes-base.stickyNote",
"position": [
840,
-220
],
"parameters": {
"height": 540,
"content": "### 10. Wait \n**Type:** Wait \n**Purpose:** \nPauses the workflow briefly between batches to prevent hitting API rate limits and ensure smooth execution. \n**Use Case:** \nThrottle the flow execution for stability and API compliance."
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "957a8859-b78c-4fdc-b1c6-50de2acaa6a0",
"connections": {
"6bea9362-5502-4c3c-acac-3f1a16bb0c64": {
"main": [
[
{
"node": "4b18deea-cfc2-4a8d-b2f3-8b31cac0d573",
"type": "main",
"index": 0
}
],
[
{
"node": "ab5bcc9b-e2a0-4ec7-a4db-de512662549d",
"type": "main",
"index": 0
}
]
]
},
"becf9d6b-26a1-4498-9683-18ad15bc82ea": {
"main": [
[
{
"node": "a9ca3926-efbd-42fa-9388-b24625690145",
"type": "main",
"index": 0
}
],
[
{
"node": "7c8d30f1-df83-4ee1-83ce-32f6d9b0a810",
"type": "main",
"index": 0
}
]
]
},
"a9ca3926-efbd-42fa-9388-b24625690145": {
"main": [
[
{
"node": "baad7161-51f5-4f29-8af0-39244e10eb60",
"type": "main",
"index": 0
}
]
]
},
"d5d6e8a4-a2da-4cd5-80fc-3cf7c294697d": {
"main": [
[
{
"node": "ab5bcc9b-e2a0-4ec7-a4db-de512662549d",
"type": "main",
"index": 0
}
]
]
},
"4b18deea-cfc2-4a8d-b2f3-8b31cac0d573": {
"main": [
[
{
"node": "becf9d6b-26a1-4498-9683-18ad15bc82ea",
"type": "main",
"index": 0
}
]
]
},
"baad7161-51f5-4f29-8af0-39244e10eb60": {
"main": [
[
{
"node": "d5d6e8a4-a2da-4cd5-80fc-3cf7c294697d",
"type": "main",
"index": 0
}
]
]
},
"7c8d30f1-df83-4ee1-83ce-32f6d9b0a810": {
"main": [
[
{
"node": "d5d6e8a4-a2da-4cd5-80fc-3cf7c294697d",
"type": "main",
"index": 0
}
]
]
},
"c0de0228-f79b-4b18-9e5d-ee6218259078": {
"main": [
[
{
"node": "ab5bcc9b-e2a0-4ec7-a4db-de512662549d",
"type": "main",
"index": 0
}
]
]
},
"ab5bcc9b-e2a0-4ec7-a4db-de512662549d": {
"main": [
[],
[
{
"node": "6bea9362-5502-4c3c-acac-3f1a16bb0c64",
"type": "main",
"index": 0
}
]
]
},
"90a316f5-0f08-42f8-86a0-318bcc9814f9": {
"main": [
[
{
"node": "c0de0228-f79b-4b18-9e5d-ee6218259078",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 콘텐츠 제작, 멀티모달 AI
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
이미지에서 이미지로 GPT, Google Sheets, Drive를 사용하여 이미지 생성 및 업로드
이미지에서 이미지로 GPT, Google Sheets, Drive를 사용하여 이미지를 생성 및 업로드
If
Code
Wait
+
If
Code
Wait
23 노드Evoort Solutions
콘텐츠 제작
가상 고객 매력 생성
RapidAPI AI를 사용하여 구글 스프레드시트에서 잠재 고객 매그넷 크리에이티브 생성
If
Wait
Http Request
+
If
Wait
Http Request
15 노드Evoort Solutions
콘텐츠 제작
Shopify 자동 WhatsApp 감사 메시지 및 로열티 쿠폰 발송 (Rapiwa API 사용)
Rapiwa를 사용한 Shopify에서 WhatsApp 감사 메시지 및 로열티 쿠폰 자동 발송
If
Code
Wait
+
If
Code
Wait
17 노드SpaGreen Creative
콘텐츠 제작
Apollo 데이터 스크래핑 및 리치 프로세스 1 ✅
Apollo, AI 파싱 및 예정 이메일 후속 조치를 사용한 잠재 고객 자동 생성
If
Code
Wait
+
If
Code
Wait
39 노드Deniz
콘텐츠 제작
FalAI_SeeDanceV1.0_영문 템플릿
GPT-4o, Fal.AI Seedance, 오디오를 사용하여 텍스트 힌트에서 영화 수준 비디오 생성
If
Code
Wait
+
If
Code
Wait
38 노드Jaruphat J.
콘텐츠 제작
Gemini_NanoBanana_템플릿
Fal.ai 모델(nano-banana, WAN2.2, Veo3)을 사용하여 Google Sheets에서 UGC 광고 생성
If
Set
Code
+
If
Set
Code
36 노드Jaruphat J.
콘텐츠 제작