AutomationFlowsGeneral › Automated Video Download From Sample.cat Using Airtop Browser Automation

Automated Video Download From Sample.cat Using Airtop Browser Automation

ByAirtop @cesar-at-airtop on n8n.io

README

Event trigger★★★★☆ complexity10 nodesAirtop
General Trigger: Event Nodes: 10 Complexity: ★★★★☆ Added:

This workflow corresponds to n8n.io template #4522 — we link there as the canonical source.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "3sBreSJpd5kPX4b2",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Simple File Download",
  "tags": [],
  "nodes": [
    {
      "id": "354c8e55-f322-4f63-bf53-84ff65bbd2d7",
      "name": "When clicking \u2018Test workflow\u2019",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -440,
        0
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "37e66a0e-bbce-449d-a769-77470b4ea57f",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        380,
        -240
      ],
      "parameters": {
        "width": 220,
        "height": 300,
        "content": "Wait a few seconds to make sure the file is ready for download. Alternatively, you can loop until `Get file data` outputs status `available`\n"
      },
      "typeVersion": 1
    },
    {
      "id": "2a1889bf-b197-4c08-9be9-b2762c1b6f61",
      "name": "Session",
      "type": "n8n-nodes-base.airtop",
      "position": [
        -220,
        0
      ],
      "parameters": {
        "additionalFields": {}
      },
      "credentials": {
        "airtopApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "6823c35c-30c0-4dc5-8ef9-f42fb3f8d58b",
      "name": "Window",
      "type": "n8n-nodes-base.airtop",
      "position": [
        0,
        -100
      ],
      "parameters": {
        "url": "https://sample.cat/en/webm",
        "resource": "window",
        "getLiveView": true,
        "disableResize": true,
        "additionalFields": {}
      },
      "credentials": {
        "airtopApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "7a77f04f-c9e8-429f-81cc-c2155b777012",
      "name": "Terminate",
      "type": "n8n-nodes-base.airtop",
      "position": [
        0,
        100
      ],
      "parameters": {
        "operation": "terminate"
      },
      "credentials": {
        "airtopApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "815f96e1-004e-4ad9-96b5-54d74ff4891f",
      "name": "Wait",
      "type": "n8n-nodes-base.wait",
      "position": [
        440,
        -100
      ],
      "parameters": {
        "amount": 10
      },
      "typeVersion": 1.1
    },
    {
      "id": "0343563a-d6e1-4f82-a3ad-c2c014981024",
      "name": "Get file data",
      "type": "n8n-nodes-base.airtop",
      "position": [
        660,
        -100
      ],
      "parameters": {
        "limit": 1,
        "resource": "file",
        "sessionIds": "={{ $('Session').item.json.sessionId }}",
        "outputSingleItem": false
      },
      "credentials": {
        "airtopApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "d7f971b7-45b9-4e44-925d-8d89490828a0",
      "name": "Click on download button",
      "type": "n8n-nodes-base.airtop",
      "position": [
        220,
        -100
      ],
      "parameters": {
        "resource": "interaction",
        "additionalFields": {},
        "elementDescription": "Blue download button for file \"SD 640x360 (Seawater, drone view video, 30 FPS)\""
      },
      "credentials": {
        "airtopApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "5622799b-7063-414d-825e-b1e091ed7a7b",
      "name": "Download file",
      "type": "n8n-nodes-base.airtop",
      "position": [
        880,
        -100
      ],
      "parameters": {
        "fileId": "={{ $json.id }}",
        "resource": "file",
        "operation": "get",
        "outputBinaryFile": true
      },
      "credentials": {
        "airtopApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "defcc9ed-8c0a-4bbc-aa3a-f60f418f20a8",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1060,
        -460
      ],
      "parameters": {
        "color": 5,
        "width": 560,
        "height": 1120,
        "content": "README\n\n# Automating Video File Download from Sample.cat with Airtop.ai\n\n\n## Use Case\nAutomating file downloads from web pages is useful for scenarios like bulk media retrieval, dataset access, or recurring content backups. This workflow ensures a hands-free, consistent process for retrieving downloadable content.\n\n\n## What This Automation Does\nThis automation performs a reliable download of a video file from a specified webpage using the following steps:\n\n- Initiates an Airtop browser session.\n- Opens a specified URL containing downloadable media.\n- Interacts with the page to click the download button.\n- Waits for the file to be processed and made available.\n- Retrieves metadata to confirm availability.\n- Downloads the file.\n- Terminates the browser session to clean up resources.\n\n\n## How It Works\n1. **Manual Trigger**: Activated by user test.\n2. **Session**: Starts an Airtop browser session.\n3. **Window**: Navigates to `https://sample.cat/en/webm`.\n4. **Interaction**: Simulates a click on the download button for the video titled \u201cSD 640x360 (Seawater, drone view video, 30 FPS)\u201d.\n5. **Wait**: Pauses for 10 seconds to allow the file to be ready for download.\n6. **Get File Data**: Checks for downloadable files in the session.\n7. **Download File**: Retrieves the file using its ID.\n8. **Terminate**: Ends the browser session to free up resources.\n\n\n## Setup Requirements\n1. [Airtop API Key](https://portal.airtop.ai/api-keys) \u2014 required to authenticate API calls.\n\n\n## Next Steps\n- **Enhance with Retry Logic**: Loop file availability check until `status = available` for more robust automation.\n- **Customize File Targets**: Dynamically pass URLs and button descriptors for multi-source downloads.\n- **Connect to Storage**: Pipe downloaded files to cloud storage or databases for archiving.\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "a371078e-c97a-4c14-8b39-e67fdd998c02",
  "connections": {
    "Wait": {
      "main": [
        [
          {
            "node": "Get file data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Window": {
      "main": [
        [
          {
            "node": "Click on download button",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Session": {
      "main": [
        [
          {
            "node": "Window",
            "type": "main",
            "index": 0
          },
          {
            "node": "Terminate",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get file data": {
      "main": [
        [
          {
            "node": "Download file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Click on download button": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking \u2018Test workflow\u2019": {
      "main": [
        [
          {
            "node": "Session",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

README

Source: https://n8n.io/workflows/4522/ — original creator credit. Request a take-down →

More General workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

General

Sell a Used Car. Uses manualTrigger, airtop. Event-driven trigger; 14 nodes.

Airtop
General

Blotato. Uses googleSheets, @blotato/n8n-nodes-blotato. Event-driven trigger; 65 nodes.

Google Sheets, @Blotato/N8N Nodes Blotato
General

This template is a hands-on, practical exam designed to help you master n8n Expressions—the key to accessing and manipulating data in your workflows.

Stop And Error
General

This template is a hands-on, practical exam designed to test your understanding of the fundamental JSON data types. It's the perfect way to solidify your knowledge after learning the basics.

Stop And Error
General

Agendamiento. Uses n8n-nodes-evolution-api, redis, dataTable, executeWorkflowTrigger. Event-driven trigger; 60 nodes.

N8N Nodes Evolution Api, Redis, Data Table +2