N
n8n Store
Workflow Market
TikTok Post Scraper via Keywords | Bright Data + Sheets Integration

TikTok Post Scraper via Keywords | Bright Data + Sheets Integration

by shivgupta0 views

Description

Categories

🤖 AI & Machine Learning

Nodes Used

n8n-nodes-base.ifn8n-nodes-base.waitn8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.formTriggern8n-nodes-base.httpRequest
PriceGratuit
Views0
Last Updated11/28/2025
workflow.json
{
  "id": "H2OMONcmT6qIf0p0",
  "meta": {
    "instanceId": "bc8ca75c203589705ae2e446cad7181d6f2a7cc1766f958ef9f34810e53b8cb2",
    "templateCredsSetupCompleted": true
  },
  "name": "TikTok Post Scraper via Keywords | Bright Data + Sheets Integration",
  "tags": [],
  "nodes": [
    {
      "id": "3c96466a-128d-403a-8449-b54001944b1d",
      "name": "Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -540,
        -560
      ],
      "parameters": {
        "columns": {
          "value": {
            "url": "={{ $json.url }}",
            "input": "={{ $json.input }}",
            "music": "={{ $json.music }}",
            "ratio": "={{ $json.ratio }}",
            "width": "={{ $json.width }}",
            "region": "={{ $json.region }}",
            "cdn_url": "={{ $json.cdn_url }}",
            "post_id": "={{ $json.post_id }}",
            "secu_id": "={{ $json.secu_id }}",
            "hashtags": "={{ $json.hashtags }}",
            "post_type": "={{ $json.post_type }}",
            "shortcode": "={{ $json.shortcode }}",
            "timestamp": "={{ $json.timestamp }}",
            "video_url": "={{ $json.video_url }}",
            "account_id": "={{ $json.account_id }}",
            "digg_count": "={{ $json.digg_count }}",
            "play_count": "={{ $json.play_count }}",
            "profile_id": "={{ $json.profile_id }}",
            "create_time": "={{ $json.create_time }}",
            "description": "={{ $json.description }}",
            "is_verified": "={{ $json.is_verified }}",
            "profile_url": "={{ $json.profile_url }}",
            "share_count": "={{ $json.share_count }}",
            "offical_item": "={{ $json.offical_item }}",
            "collect_count": "={{ $json.collect_count }}",
            "comment_count": "={{ $json.comment_count }}",
            "original_item": "={{ $json.original_item }}",
            "preview_image": "={{ $json.preview_image }}",
            "original_sound": "={{ $json.original_sound }}",
            "profile_avatar": "={{ $json.profile_avatar }}",
            "tt_chain_token": "={{ $json.tt_chain_token }}",
            "video_duration": "={{ $json.video_duration }}",
            "discovery_input": "={{ $json.discovery_input }}",
            "profile_username": "={{ $json.profile_username }}",
            "profile_biography": "={{ $json.profile_biography }}",
            "profile_followers": "={{ $json.profile_followers }}"
          },
          "schema": [
            {
              "id": "url",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "post_id",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "post_id",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "description",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "description",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "create_time",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "create_time",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "digg_count",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "digg_count",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "share_count",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "share_count",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "collect_count",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "collect_count",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "comment_count",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "comment_count",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "play_count",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "play_count",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "video_duration",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "video_duration",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "hashtags",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "hashtags",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "original_sound",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "original_sound",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "profile_id",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "profile_id",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "profile_username",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "profile_username",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "profile_url",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "profile_url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "profile_avatar",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "profile_avatar",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "profile_biography",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "profile_biography",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "preview_image",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "preview_image",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "post_type",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "post_type",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "discovery_input",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "discovery_input",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "offical_item",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "offical_item",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "secu_id",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "secu_id",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "original_item",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "original_item",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "shortcode",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "shortcode",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "width",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "width",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "ratio",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "ratio",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "video_url",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "video_url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "music",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "music",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "cdn_url",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "cdn_url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "is_verified",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "is_verified",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "account_id",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "account_id",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "profile_followers",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "profile_followers",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "tt_chain_token",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "tt_chain_token",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "region",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "region",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "timestamp",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "timestamp",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "input",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "input",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "url"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1067534155,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEET_ID/edit#gid=1067534155",
          "cachedResultName": "Tiktok by keyword"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "YOUR_GOOGLE_SHEET_ID",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEET_ID/edit?usp=drivesdk",
          "cachedResultName": "Tiktok by keyword data Scraping "
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "YOUR_GOOGLE_SHEETS_CREDENTIAL_ID",
          "name": "Google Sheets Credential"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "e7b9dde9-0cd6-429e-b5ea-1e8269d7df7e",
      "name": "Decode Snapshot from Response",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -900,
        -560
      ],
      "parameters": {
        "url": "=https://api.brightdata.com/datasets/v3/snapshot/s_mbghznsg225nzgyhz8",
        "options": {},
        "sendQuery": true,
        "sendHeaders": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "format",
              "value": "json"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer BRIGHT_DATA_API_KEY"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "461df00a-925d-4bbf-b28e-7aa367ad54d5",
      "name": "Wait 1 minute",
      "type": "n8n-nodes-base.wait",
      "position": [
        -1540,
        -540
      ],
      "webhookId": "10b45556-5e91-4387-abd0-f9078b220286",
      "parameters": {
        "unit": "minutes",
        "amount": 1
      },
      "typeVersion": 1.1
    },
    {
      "id": "f15192de-4d53-4716-a2d1-876494712c81",
      "name": "Accepts keyword input from the user.",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -2580,
        -540
      ],
      "webhookId": "781b36e7-1076-4ddf-9541-bab8c9d4386c",
      "parameters": {
        "options": {},
        "formTitle": "TikTok ",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Keyword"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "a1bcfe64-ac31-43c2-b0d5-33caa9ef50a6",
      "name": "Sends keyword to Bright Data's Discover API to start scraping.",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -2280,
        -540
      ],
      "parameters": {
        "url": "https://api.brightdata.com/datasets/v3/trigger",
        "method": "POST",
        "options": {},
        "jsonBody": "=[\n  {\n    \"search_keyword\": \"{{ $json.Keyword }}\",\n    \"country\": \"\"\n  },\n  {\n    \"search_keyword\": \"{{ $json.Keyword }}\",\n    \"country\": \"\"\n  },\n  {\n    \"search_keyword\": \"{{ $json.Keyword }}\",\n    \"country\": \"\"\n  }\n]",
        "sendBody": true,
        "sendQuery": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "queryParameters": {
          "parameters": [
            {
              "name": "dataset_id",
              "value": "gd_lu702nij2f790tmv9h"
            },
            {
              "name": "include_errors",
              "value": "true"
            },
            {
              "name": "type",
              "value": "discover_new"
            },
            {
              "name": "discover_by",
              "value": "keyword"
            },
            {
              "name": "limit_per_input",
              "value": "2"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer BRIGHT_DATA_API_KEY"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "da3fc0d4-98a6-48a3-b691-6e29db0969c0",
      "name": "Checks the scraping status using snapshot ID.",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -1880,
        -540
      ],
      "parameters": {
        "url": "=https://api.brightdata.com/datasets/v3/progress/{{ $json.snapshot_id }}",
        "options": {},
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer BRIGHT_DATA_API_KEY"
            }
          ]
        }
      },
      "typeVersion": 4.2,
      "alwaysOutputData": true
    },
    {
      "id": "76797c1e-d329-4003-af3f-fac14a3fbdc8",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2660,
        -680
      ],
      "parameters": {
        "color": 3,
        "width": 280,
        "height": 340,
        "content": "🟥 1. Form Trigger Node\n📌 Purpose:\n\nUser submits a keyword input.\n\nThis starts the scraping process.\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "b849575e-2a93-42e3-a084-f536e634e035",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2360,
        -760
      ],
      "parameters": {
        "color": 4,
        "width": 340,
        "height": 420,
        "content": "🟩 2. HTTP Request (Trigger Scraping on Bright Data)\n🔗 POST to Bright Data\n\nSends the keyword to Bright Data.\n\nTriggers scraping using dataset ID.\n\nTikTok keyword-based discovery initiated.\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "e3648a2b-a0e7-41ab-9794-bd8fa1faf16a",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1980,
        -700
      ],
      "parameters": {
        "color": 5,
        "width": 320,
        "height": 360,
        "content": "🟦 3. Snapshot Progress Check\n🔍 GET - snapshot status\n\nFetches the current snapshot_id.\n\nChecks if the scraping task is finished (status == ready)."
      },
      "typeVersion": 1
    },
    {
      "id": "850f3c9d-2184-42b7-b6c5-e155c2d43f57",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1320,
        -720
      ],
      "parameters": {
        "color": 2,
        "width": 260,
        "height": 360,
        "content": "🟪 4. IF Node (Check Completion)\n📌 Condition:\n\nIf snapshot is ready → move forward.\n\nElse → wait and retry."
      },
      "typeVersion": 1
    },
    {
      "id": "3a54a9d4-07ff-4e04-831b-f618e9bdd48b",
      "name": "Check Final Status",
      "type": "n8n-nodes-base.if",
      "position": [
        -1240,
        -540
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "or",
          "conditions": [
            {
              "id": "35ed620d-b5d5-4e97-bcc5-52b283d85616",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.status }}",
              "rightValue": "ready"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "5cca9c7d-d10c-4817-9d10-d0c904ad059b",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1640,
        -720
      ],
      "parameters": {
        "color": 6,
        "width": 280,
        "height": 380,
        "content": "🟥 5. Wait Node\n🕒 Delays by 1 minute\n\nIf snapshot is not ready, pause for 1 minute.\n\nThen return to recheck loop."
      },
      "typeVersion": 1
    },
    {
      "id": "75b635ea-6e6c-41e7-8cae-168b2c6f8c00",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -640,
        -740
      ],
      "parameters": {
        "color": 3,
        "width": 300,
        "height": 380,
        "content": "🟨 6. Final Data Storage\n📌 Google Sheets Integration:\n\nStores extracted TikTok data.\n\nIncludes all post metrics and profile info.\n\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "e61d0a2b-f49c-4f76-ae0c-55f397d4ea32",
  "connections": {
    "Google Sheets": {
      "main": [
        []
      ]
    },
    "Wait 1 minute": {
      "main": [
        [
          {
            "node": "Check Final Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Final Status": {
      "main": [
        [
          {
            "node": "Decode Snapshot from Response",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Checks the scraping status using snapshot ID.",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Decode Snapshot from Response": {
      "main": [
        [
          {
            "node": "Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Accepts keyword input from the user.": {
      "main": [
        [
          {
            "node": "Sends keyword to Bright Data's Discover API to start scraping.",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Checks the scraping status using snapshot ID.": {
      "main": [
        [
          {
            "node": "Wait 1 minute",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Sends keyword to Bright Data's Discover API to start scraping.": {
      "main": [
        [
          {
            "node": "Checks the scraping status using snapshot ID.",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

相关工作流