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 →
{
"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.
airtopApi
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 →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Blotato. Uses googleSheets, @blotato/n8n-nodes-blotato. Event-driven trigger; 65 nodes.
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.
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.
Agendamiento. Uses n8n-nodes-evolution-api, redis, dataTable, executeWorkflowTrigger. Event-driven trigger; 60 nodes.