{
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "790b4f91-1a03-4386-8fdd-1d2a1b35b77e",
      "name": "On form submission",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        0,
        0
      ],
      "parameters": {
        "options": {},
        "formTitle": "Tiktok Transcript ",
        "formFields": {
          "values": [
            {
              "fieldLabel": "url",
              "requiredField": true
            },
            {
              "fieldLabel": "language",
              "requiredField": true
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "93c6b503-f1ae-43eb-917b-687a881fe676",
      "name": "Wait",
      "type": "n8n-nodes-base.wait",
      "position": [
        480,
        0
      ],
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "0589a81f-0f28-4db3-8426-0a814f745348",
      "name": "Google Docs",
      "type": "n8n-nodes-base.googleDocs",
      "position": [
        1100,
        0
      ],
      "parameters": {
        "actionsUi": {
          "actionFields": [
            {
              "action": "insert"
            }
          ]
        },
        "operation": "update"
      },
      "credentials": {
        "googleDocsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "029bcd51-12d0-4b84-b33d-0c43b98aebb7",
      "name": "Open AI",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        740,
        0
      ],
      "parameters": {
        "url": "https://openai-gpt-4o-mini.p.rapidapi.com/chatAI/gpt-4-1-mini.php",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"temperature\": 0.7,\n  \"messages\": [\n    {\n      \"role\": \"system\",\n      \"content\": \"You are a helpful assistant. Your task is to process the subtitles provided to you and return a meaningful response based on the content. The subtitles may be in various languages. Please handle them accordingly and respond in the {{ $('On form submission').item.json.language }} language.\"\n    },\n    {\n      \"role\": \"user\",\n      \"content\": \"{{ $json.subtitles.replace(/\\\"/g, '\\\\\"').replace(/\\n/g, '\\\\n') }}\"\n    }\n  ]\n}\n",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "x-rapidapi-host",
              "value": "openai-gpt-4o-mini.p.rapidapi.com"
            },
            {
              "name": "x-rapidapi-key",
              "value": "your key"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "c3af2912-c844-4dfd-82c7-2caa7928c497",
      "name": "Tiktok Transcript",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        220,
        0
      ],
      "parameters": {
        "url": "https://tiktok-transcript-ai.p.rapidapi.com/tiktok/index.php",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "sendHeaders": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "url",
              "value": "={{ $json.url }}"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "x-rapidapi-host",
              "value": "tiktok-transcript-ai.p.rapidapi.com"
            },
            {
              "name": "x-rapidapi-key",
              "value": "your key"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "a7585dae-e5b8-44c0-bf49-b757ff1b0906",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -500,
        -280
      ],
      "parameters": {
        "width": 380,
        "height": 1020,
        "content": "# TikTok Transcriptor \n### Workflow Overview:\nThis **n8n workflow** automates the process of generating a **TikTok video transcript**, processing it with **OpenAI GPT-4** for interpretation, and saving the results into **Google Docs**. The workflow uses **RapidAPI** for both transcription and AI processing.\n\n### Nodes:\n1. **On form submission**: Triggers when a user submits a TikTok video URL and selects a language.\n2. **Tiktok Transcript**: Retrieves the transcript of the TikTok video using **[TikTok Transcript API](https://rapidapi.com/skdeveloper/api/tiktok-transcript-ai)**.\n3. **Wait**: Adds a delay to ensure data is properly fetched.\n4. **Open AI**: Sends the transcript to **OpenAI GPT-4** for processing via **[OpenAI GPT-4 API](https://rapidapi.com/skdeveloper/api/openai-gpt-4o-mini)**.\n5. **Google Docs**: Updates a Google Doc with the processed results.\n\n### Benefits:\n- **Automated Transcript Generation**: Quickly fetches transcripts from TikTok videos using **[TikTok Transcript API](https://rapidapi.com/skdeveloper/api/tiktok-transcript-ai)**.\n- **AI Interpretation**: Processes the transcript using **OpenAI GPT-4** via **[OpenAI GPT-4 API](https://rapidapi.com/skdeveloper/api/openai-gpt-4o-mini)** to summarize, translate, or interpret the text.\n- **Google Docs Integration**: Efficiently saves the AI-generated result to a Google Doc for easy access and sharing.\n\n### Challenges Solved:\n- **Language Support**: Handles transcripts in multiple languages, ensuring global accessibility.\n- **Automation**: Eliminates manual transcription and summarization work, speeding up the process.\n- **Error Handling**: Uses **RapidAPI** to ensure reliable and scalable integrations for both TikTok and OpenAI services.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "fc4a87b5-2516-4f08-851d-9ad741e31d17",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -80,
        -320
      ],
      "parameters": {
        "height": 540,
        "content": "### 1. **On form submission**:\n   - **Use Case**: This node is triggered when a user submits a form with a TikTok video URL and selects a language.\n   - **Benefit**: It initiates the workflow by capturing user input in real-time.\n   - **Challenge Resolved**: Automatically handles user inputs and initiates further steps without manual intervention.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "f0aa7a93-7553-4343-8764-fc21454174bf",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        180,
        -320
      ],
      "parameters": {
        "height": 540,
        "content": "### 2. **Tiktok Transcript**:\n   - **Use Case**: Fetches the transcript of the TikTok video using the **[TikTok Transcript API](https://rapidapi.com/skdeveloper/api/tiktok-transcript-ai)**.\n   - **Benefit**: Provides an accurate transcript of TikTok videos for further processing.\n   - **Challenge Resolved**: Converts video content to text automatically, removing the need for manual transcription."
      },
      "typeVersion": 1
    },
    {
      "id": "35105cb0-ced0-4d7c-8198-a577e353d199",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        440,
        -320
      ],
      "parameters": {
        "height": 540,
        "content": "### 3. **Wait**:\n   - **Use Case**: Pauses the workflow for a brief period to ensure that the transcript is fully retrieved before proceeding.\n   - **Benefit**: Ensures synchronization and avoids race conditions where subsequent actions run before data is ready.\n   - **Challenge Resolved**: Prevents errors that may occur due to premature API requests.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "dc2cdb88-b6b2-4325-9ef9-eedf740e19c3",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        720,
        -320
      ],
      "parameters": {
        "height": 540,
        "content": "### 4. **Open AI**:\n   - **Use Case**: Sends the TikTok transcript to **[OpenAI GPT-4 API](https://rapidapi.com/skdeveloper/api/openai-gpt-4o-mini)** for further interpretation, summarization, or translation based on the selected language.\n   - **Benefit**: Leverages powerful AI to process, summarize, or translate transcripts, providing valuable insights or additional information.\n   - **Challenge Resolved**: Automatically processes the transcript, handling multiple languages and context-sensitive interpretations.\n   "
      },
      "typeVersion": 1
    },
    {
      "id": "f32837e5-f495-4492-b27a-e6f4ae3f8664",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1000,
        -320
      ],
      "parameters": {
        "height": 540,
        "content": "### 5. **Google Docs**:\n   - **Use Case**: Updates a Google Doc with the processed result from OpenAI GPT-4.\n   - **Benefit**: Saves the AI-generated content in a structured format within Google Docs for easy sharing and storage.\n   - **Challenge Resolved**: Automates document generation and removes manual data entry, making the process more efficient.\n"
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "Wait": {
      "main": [
        [
          {
            "node": "Open AI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Open AI": {
      "main": [
        [
          {
            "node": "Google Docs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Tiktok Transcript": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On form submission": {
      "main": [
        [
          {
            "node": "Tiktok Transcript",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}