# Threads Video Downloader (`futurizerush/threads-video-downloader`) Actor

Extract video and image links from public Threads posts. Paste up to 20 post URLs, collect media URLs and post details, and export structured results. No login required.

- **URL**: https://apify.com/futurizerush/threads-video-downloader.md
- **Developed by:** [Rush](https://apify.com/futurizerush) (community)
- **Categories:** Videos, Social media, Agents
- **Stats:** 39 total users, 6 monthly users, 100.0% runs succeeded, 2 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

$10.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Threads Video Downloader

🎬 **Extract video and image links from public Threads posts**. Process multiple post URLs at once, collect media URLs and post details, and export structured results as JSON, CSV, or Excel. No login required.

---

### Quick Start (3 Easy Steps)

1. **Get Post Links**: Open a Threads post → Click Share → Copy link
2. **Paste Links**: Add them to the input box below (up to 20)
3. **Click Run**: Get your media links and post details

---

### What You Get

#### Each Post Returns:
| Field | Description |
|-------|-------------|
| `post_url` | Full Threads post URL |
| `post_id` | Unique post identifier |
| `username` | Post author's account name |
| `post_text` | Post text content |
| `contains_media` | Whether post has any media |
| `contains_videos` | Whether post has videos |
| `contains_images` | Whether post has images |
| `contains_video_thumbnails` | Whether post has video thumbnails |
| `video_url` | First video download URL, easy to open from the table |
| `video_thumbnail_url` | First video thumbnail URL |
| `image_url` | First image download URL, easy to open from the table |
| `video_urls` | Array of video download URLs |
| `video_thumbnail_urls` | Array of video thumbnail URLs |
| `image_urls` | Array of image download URLs |
| `video_count` | Number of videos found |
| `video_thumbnail_count` | Number of video thumbnails |
| `image_count` | Number of images found |
| `total_media_count` | Total media items |
| `extracted_at` | When data was extracted (ISO 8601 UTC) |

#### Media URLs
- Media links can expire, so download the files you need promptly

### How to Use

#### Input Format

Provide an array of Threads post URLs:

```json
{
  "post_urls": [
    "https://www.threads.com/@instagram/post/DQNCKbZjq-v",
    "https://www.threads.com/@zuck/post/DSVRshjkbtK"
  ]
}
````

#### Post URL Format

Supported format: `https://www.threads.com/@{username}/post/{POST_CODE}`

Examples:

- ✅ `https://www.threads.com/@instagram/post/DQNCKbZjq-v`
- ✅ `https://www.threads.net/@zuck/post/DSVRshjkbtK`
- ✅ `https://threads.com/@instagram/post/DQNCKbZjq-v`
- ❌ `threads.com/@user/post/ABC` (missing `https://`)
- ❌ `https://www.threads.com/@user` (missing `/post/` part)

### Output

#### Dataset Output Example

```json
{
  "post_url": "https://www.threads.com/@instagram/post/DQNCKbZjq-v",
  "post_id": "DQNCKbZjq-v",
  "username": "instagram",
  "post_text": "...",
  "contains_media": true,
  "contains_videos": true,
  "contains_images": false,
  "contains_video_thumbnails": true,
  "video_url": "https://scontent.cdninstagram.com/v/t72.../.../video.mp4?...",
  "video_thumbnail_url": "https://scontent.cdninstagram.com/v/t51.../.../cover.jpg?...",
  "image_url": null,
  "video_urls": [
    "https://scontent.cdninstagram.com/v/t72.../.../video.mp4?..."
  ],
  "video_thumbnail_urls": [
    "https://scontent.cdninstagram.com/v/t51.../.../cover.jpg?..."
  ],
  "image_urls": [],
  "video_count": 1,
  "video_thumbnail_count": 1,
  "image_count": 0,
  "total_media_count": 2,
  "extracted_at": "2026-06-15T03:08:33Z"
}
```

### Use Cases

#### Media Backup

Collect post URLs you want to backup → Run the tool → Export as JSON/CSV → Download media files.

#### Content Monitoring

Use Apify Scheduler to run periodically → Monitor new media from creators → Build a media archive.

#### Research & Analysis

Collect topic-related post URLs → Extract media and post info → Analyze content types and trends.

### Tips

#### How to Get Post URLs

1. Open the post in Threads app or website
2. Click the share button
3. Copy the link
4. Paste into the input field

#### How to Download Your Media

**Easy method:**

1. Click on any video or image link in your results
2. Right-click on the media and select "Save as..."
3. Done!

**For multiple files:**

- Export results as CSV or JSON
- Use your browser's download manager or any bulk download tool

### Limits

- **20 posts per run** — need more? Run again with your next batch
- **Public posts only** — private accounts cannot be accessed
- **Links can expire** — download promptly for best results
- **Text-only posts** — some posts may not contain downloadable media

### FAQ

**Q: Why can't I find media in some posts?**
A: Common reasons: the post only has text, has been deleted, or is from a private account.

**Q: Why do media URLs expire?**
A: Public media links can be temporary. Download the files you need soon after the run finishes.

**Q: Can I download videos automatically?**
A: This tool provides download URLs. Use your browser or a download manager to save files.

**Q: How many posts can I process?**
A: Up to 20 posts per run. For more, run multiple times.

**Q: What about carousel posts?**
A: Carousel posts are supported when the media is publicly available. Some posts may expose fewer downloadable items than appear in the app.

### Need Another Threads Workflow?

- [Threads Scraper - Posts, Profiles & Search](https://apify.com/futurizerush/meta-threads-scraper?fpr=rush): collect public posts, search keywords, discover profiles, and export account data.
- [Threads Replies Scraper](https://apify.com/futurizerush/threads-replies-scraper?fpr=rush): collect public replies and comments for conversation analysis.

### Disclaimer

This tool is provided for personal, educational, and research purposes only. Users are solely responsible for ensuring their use complies with all applicable laws, regulations, and the Terms of Service of Meta Platforms, Inc. (including Threads).

- Media content is owned by the original creators and is protected by copyright
- This tool does not store, host, or redistribute any media content
- Media URLs can be temporary and subject to expiration
- The tool accesses only publicly available content
- No guarantees are made regarding availability, accuracy, or completeness of extracted data
- Use at your own risk — the developer assumes no liability for misuse

By using this tool, you acknowledge and agree to these terms.

***

**Keywords**: Threads video downloader, Threads image downloader, download Threads videos, download Threads images, Meta Threads media extractor, Threads post media, Threads carousel downloader, Threads batch download, Threads media URLs, Threads video saver, Threads content download, save Threads videos, Threads media backup, Threads scraper, Apify Threads, Claude Code, OpenClaw, Gemini, Antigravity, Codex, ChatGPT

# Actor input Schema

## `post_urls` (type: `array`):

Add up to 20 Threads post links (one per line). Example: https://www.threads.com/@instagram/post/DQNCKbZjq-v

## Actor input object example

```json
{
  "post_urls": [
    "https://www.threads.com/@instagram/post/DQNCKbZjq-v"
  ]
}
```

# Actor output Schema

## `results` (type: `string`):

Extracted Threads media links and post details

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "post_urls": [
        "https://www.threads.com/@instagram/post/DQNCKbZjq-v"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("futurizerush/threads-video-downloader").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "post_urls": ["https://www.threads.com/@instagram/post/DQNCKbZjq-v"] }

# Run the Actor and wait for it to finish
run = client.actor("futurizerush/threads-video-downloader").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "post_urls": [
    "https://www.threads.com/@instagram/post/DQNCKbZjq-v"
  ]
}' |
apify call futurizerush/threads-video-downloader --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=futurizerush/threads-video-downloader",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Threads Video Downloader",
        "description": "Extract video and image links from public Threads posts. Paste up to 20 post URLs, collect media URLs and post details, and export structured results. No login required.",
        "version": "0.0",
        "x-build-id": "Barzv8AmXOXTbBh0s"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/futurizerush~threads-video-downloader/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-futurizerush-threads-video-downloader",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/futurizerush~threads-video-downloader/runs": {
            "post": {
                "operationId": "runs-sync-futurizerush-threads-video-downloader",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/futurizerush~threads-video-downloader/run-sync": {
            "post": {
                "operationId": "run-sync-futurizerush-threads-video-downloader",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "post_urls"
                ],
                "properties": {
                    "post_urls": {
                        "title": "🔗 Paste Your Threads Post Links",
                        "minItems": 1,
                        "maxItems": 20,
                        "type": "array",
                        "description": "Add up to 20 Threads post links (one per line). Example: https://www.threads.com/@instagram/post/DQNCKbZjq-v",
                        "items": {
                            "type": "string",
                            "pattern": "^https://(?:www\\.)?threads\\.(net|com)/@[a-zA-Z0-9_.]+/post/[A-Za-z0-9_-]+(?:/media)?/?(?:[?#].*)?$"
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
