{"id":"XxkmcgZC4OtIOVoD","meta":{"instanceId":"workflow-2d6f9a58","versionId":"1.0.0","createdAt":"2025-09-29T07:07:45.030446","updatedAt":"2025-09-29T07:07:45.030470","owner":"n8n-user","license":"MIT","category":"automation","status":"active","priority":"high","environment":"production"},"name":"Youtube Video Transcript Extraction","nodes":[{"id":"686e639a-650d-480d-9887-11bd4140f1fe","name":"YoutubeVideoURL","type":"n8n-nodes-base.formTrigger","position":[-20,0],"webhookId":"156a04c8-917d-4624-a46e-8fbcab89d16b","parameters":{"options":{},"formTitle":"Youtube Video Transcriber","formFields":{"values":[{"fieldLabel":"Youtube Video Url","requiredField":true}]}},"typeVersion":2.2,"notes":"This formTrigger node performs automated tasks as part of the workflow."},{"id":"5384c4ed-a726-4253-8a88-d413124f80be","name":"cleanedTranscript","type":"n8n-nodes-base.set","position":[740,0],"parameters":{"options":{},"assignments":{"assignments":[{"id":"7653a859-556d-4e00-bafa-6f70f90de0d7","name":"transcript","type":"string","value":"={{ $json.cleanedTranscript }}"}]}},"typeVersion":3.4,"notes":"This set node performs automated tasks as part of the workflow."},{"id":"83b6567f-c931-429c-8d7c-0b2549820ca1","name":"processTranscript","type":"n8n-nodes-base.function","position":[500,0],"parameters":{"functionCode":"// Extract and process the transcript\nconst data = $input.first().json;\n\nif (!data.transcript && !data.text) {\n  return {\n    json: {\n      success: false,\n      message: 'No transcript available for this video',\n      videoUrl: $input.first().json.body?.videoUrl || 'Unknown'\n    }\n  };\n}\n\n// Process the transcript text\nlet transcriptText = '';\n\n// Handle different API response formats\nif (data.transcript) {\n  // Format for array of transcript segments\n  if (Array.isArray(data.transcript)) {\n    data.transcript.forEach(segment => {\n      if (segment.text) {\n        transcriptText += segment.text + ' ';\n      }\n    });\n  } else if (typeof data.transcript === 'string') {\n    transcriptText = data.transcript;\n  }\n} else if (data.text) {\n  // Format for single transcript object with text property\n  transcriptText = data.text;\n}\n\n// Clean up the transcript (remove extra spaces, normalize punctuation)\nconst cleanedTranscript = transcriptText\n  .replace(/\\s+/g, ' ')\n  .replace(/\\s([.,!?])/g, '$1')\n  .trim();\n\nreturn {\n  json: {\n    success: true,\n    videoUrl: $input.first().json.body?.videoUrl || 'From transcript',\n    rawTranscript: data.text || data.transcript,\n    cleanedTranscript,\n    duration: data.duration,\n    offset: data.offset,\n    language: data.lang\n  }\n};"},"typeVersion":1,"notes":"This function node performs automated tasks as part of the workflow."},{"id":"cebf0fd7-6b66-4287-bede-fab53061bed2","name":"extractTranscript","type":"n8n-nodes-base.httpRequest","position":[240,0],"parameters":{"url":"{{ $env.API_BASE_URL }}","options":{},"sendBody":true,"sendQuery":true,"sendHeaders":true,"bodyParameters":{"parameters":[{"name":"url","value":"={{ $json['Youtube Video Url'] }}"}]},"queryParameters":{"parameters":[{"name":"videoId","value":"ZacjOVVgoLY"}]},"headerParameters":{"parameters":[{"name":"x-rapidapi-host","value":"youtube-transcript3.p.rapidapi.com"},{"name":"x-rapidapi-key","value":"\"your_api_key\""},{"name":"Content-Type","value":"application/json"}]}},"typeVersion":3,"notes":"This httpRequest node performs automated tasks as part of the workflow."}],"active":false,"settings":{"executionOrder":"v1","saveManualExecutions":true,"callerPolicy":"workflowsFromSameOwner","errorWorkflow":null,"timezone":"UTC","executionTimeout":3600,"maxExecutions":1000,"retryOnFail":true,"retryCount":3,"retryDelay":1000},"versionId":"084b006b-36f9-46a7-8a0b-7656126b29cd","connections":{"extractTranscript":{"main":[[],[],[],[],[]]}},"description":"Automated workflow: Youtube Video Transcript Extraction. This workflow processes data and performs automated tasks.","notes":"Excellent quality workflow: Youtube Video Transcript Extraction. This workflow has been optimized for production use with comprehensive error handling, security, and documentation."}