# Twitter X Media Downloader (`scrapers-hub/twitter-x-media-downloader`) Actor

📥 Twitter X Media Downloader (twitter-x-media-downloader) saves tweets with photos, videos & GIFs in seconds. Fast, simple & reliable for sharing offline. 🚀 Download your favorite X content effortlessly—anytime, anywhere!

- **URL**: https://apify.com/scrapers-hub/twitter-x-media-downloader.md
- **Developed by:** [Scrapers Hub](https://apify.com/scrapers-hub) (community)
- **Categories:** Social media, Videos, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.99 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

### Twitter X Media Downloader 🐦🎥

Welcome to the most advanced and feature-rich **Twitter X Media Downloader** available on the Apify platform! In today's fast-paced digital world, Twitter (now known as X) is a primary source of viral videos, breaking news clips, and high-quality imagery. However, the platform doesn't provide a native way to download these media assets for offline use or professional repurposing. That's where the **Twitter X Media Downloader** comes in. Our tool is meticulously engineered to provide a seamless, reliable, and high-quality solution for extracting media from any tweet or status URL on the X platform.

#### 🌟 Introduction to Twitter X Media Downloader

The **Twitter X Media Downloader** is a professional-grade scraping actor designed for developers, social media managers, journalists, and data enthusiasts. Built on the scalable Apify infrastructure, the **Twitter X Media Downloader** leverages cutting-edge technology to bypass the complexities of X's dynamic web interface. Whether you need to archive a single viral video or gather a dataset of media for analysis, the **Twitter X Media Downloader** is your ultimate companion.

What sets the **Twitter X Media Downloader** apart is its ability to extract not just the media itself, but also the rich metadata associated with it. From tweet IDs and timestamps to video qualities and thumbnails, the **Twitter X Media Downloader** provides a complete picture of the content you are scraping. In this comprehensive guide, we will explore everything the **Twitter X Media Downloader** has to offer, including its key features, technical architecture, and diverse range of applications.

---

#### 🚀 Key Features of Twitter X Media Downloader

The **Twitter X Media Downloader** is packed with powerful features that make it the industry standard for X media extraction. We have focused on performance, stability, and ease of use to ensure you get the results you need, every time.

##### 🎥 High-Quality Video and Image Extraction
The **Twitter X Media Downloader** is designed to retrieve the highest resolution versions of videos and images. By tapping into the underlying media streams, the **Twitter X Media Downloader** ensures that you aren't stuck with low-quality thumbnails or compressed versions. Whether it's 1080p video or high-res JPEGs, the **Twitter X Media Downloader** delivers.

##### 📊 Professional Schema Output
The **Twitter X Media Downloader** doesn't just return a list of URLs. It generates a sophisticated, "Pro" level JSON output that includes data IDs, user identifiers, creation timestamps, and custom view schemas. This makes the data from **Twitter X Media Downloader** ready for immediate use in professional dashboards, database integrations, or automated workflows.

##### 🛡️ Advanced Proxy Integration
Scraping X can be challenging due to its anti-bot measures. The **Twitter X Media Downloader** is fully integrated with Apify's residential proxy network. This allows the **Twitter X Media Downloader** to rotate IPs and mimic real user behavior, ensuring high success rates even when scraping large volumes of tweets. The **Twitter X Media Downloader** handles the proxy logic automatically, so you can focus on your data.

##### ⚡ Asynchronous Processing Power
Built with Python's `asyncio` and `yt-dlp` integration, the **Twitter X Media Downloader** is incredibly fast. It can process multiple URLs concurrently, significantly reducing the time required for bulk scraping tasks. The **Twitter X Media Downloader** is optimized for efficiency, making it one of the quickest X media tools on the market.

##### 🖼️ Thumbnail and Metadata Generation
For every media asset, the **Twitter X Media Downloader** attempts to capture the associated thumbnail, format details, and quality metrics. This context is invaluable for organizing and classifying the data you collect with the **Twitter X Media Downloader**.

---

#### 🛠️ How to Use Twitter X Media Downloader

Using the **Twitter X Media Downloader** is straightforward, regardless of your technical expertise. Our user-friendly interface on Apify makes it a "copy-paste" operation.

##### Step 1: Gather Your Tweet URLs
Collect the URLs of the tweets you want to scrape. A typical URL looks like `https://x.com/username/status/123456789`. You can enter these directly into the **Twitter X Media Downloader** input field.

##### Step 2: Configure Your Settings
In the **Twitter X Media Downloader** console, you can select your proxy preferences. We highly recommend enabling residential proxies for the most stable experience. The **Twitter X Media Downloader** is pre-configured with sensible defaults to get you started quickly.

##### Step 3: Launch the Actor
Click the "Start" button to initiate the **Twitter X Media Downloader**. You can track the progress in the "Log" tab, where the **Twitter X Media Downloader** will provide real-time updates on each URL being processed.

##### Step 4: Export Your Data
Once the **Twitter X Media Downloader** completes its run, your data will be available in the "Dataset" tab. You can download it as JSON, CSV, Excel, or even XML. The **Twitter X Media Downloader** ensures your data is clean and well-structured.

---

#### 📊 Section 3: Input & Output Examples

Integration is easy when you know exactly what to expect. Here are the data structures used by the **Twitter X Media Downloader**.

##### 📥 Input JSON
The **Twitter X Media Downloader** expects a list of start URLs and proxy configuration.

```json
{
    "startUrls": [
        { "url": "https://x.com/teslaownersSV/status/2020872518949548133" }
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": ["RESIDENTIAL"]
    }
}
````

##### 📤 Output JSON

The **Twitter X Media Downloader** produces a rich, professional dataset.

```json
{
  "data": {
    "id": "aSSLWTqQ24VoUv0Ut",
    "name": "run-2020872518949548133-PvSN",
    "userId": "DsCDNeXAaH2vPQ8pN",
    "createdAt": "2026-05-02T16:02:13.968608Z",
    "modifiedAt": "2026-05-02T16:02:13.968608Z",
    "accessedAt": "2026-05-02T16:02:13.968608Z",
    "itemCount": 1,
    "cleanItemCount": 1,
    "actId": "1g2ab39wM4uDyhto9",
    "actRunId": "9F4We0r7HLSgSSAgD",
    "schema": {
      "actorSpecification": 1,
      "title": "Twitter Data: Make the switch to 𝕏 Chat. - End-to-end encrypted ...",
      "views": {
        "list_view": {
          "title": "Captured Videos - Make the switch to 𝕏...",
          "transformation": {
            "fields": [
              "sourceUrl",
              "title",
              "quality",
              "downloadUrl",
              "resourceId",
              "timestamp",
              "format",
              "thumbnail",
              "service",
              "status"
            ]
          },
          "display": {
            "component": "table",
            "properties": {
              "sourceUrl": {
                "label": "Video Source",
                "format": "link"
              },
              "title": {
                "label": "Video Title",
                "format": "text"
              },
              "quality": {
                "label": "Video Quality",
                "format": "text"
              },
              "downloadUrl": {
                "label": "Download Video",
                "format": "link"
              },
              "resourceId": {
                "label": "Tweet ID",
                "format": "text"
              },
              "timestamp": {
                "label": "Scrape Time",
                "format": "date"
              },
              "format": {
                "label": "Format",
                "format": "text"
              },
              "thumbnail": {
                "label": "Thumbnail",
                "format": "link"
              },
              "service": {
                "label": "Service",
                "format": "text"
              },
              "status": {
                "label": "Status",
                "format": "text"
              }
            }
          }
        }
      }
    },
    "stats": {
      "storageBytes": 3712,
      "readCount": 10,
      "writeCount": 1
    },
    "fields": [
      "sourceUrl",
      "title",
      "quality",
      "downloadUrl",
      "resourceId",
      "timestamp",
      "format",
      "thumbnail",
      "service",
      "status",
      "downloadLinks/0/url",
      "downloadLinks/0/quality",
      "downloadLinks/0/format",
      "downloadLinks/0/type",
      "downloadLinks/1/url",
      "downloadLinks/1/quality",
      "downloadLinks/1/format",
      "downloadLinks/1/type"
    ]
  }
}
```

This high-level output structure provided by the **Twitter X Media Downloader** is designed to integrate seamlessly into modern data architectures.

***

#### 💡 Why You Need the Twitter X Media Downloader

You might be asking why you should use a specialized tool like the **Twitter X Media Downloader**. The answer lies in the reliability and depth of data it provides.

##### 📈 Social Media Marketing and Insights

Marketing teams use the **Twitter X Media Downloader** to track viral trends and analyze competitor content. By downloading and archiving media with the **Twitter X Media Downloader**, brands can gain insights into what types of visual content perform best on the X platform.

##### 📰 Journalism and OSINT

Journalists and Open Source Intelligence (OSINT) researchers rely on the **Twitter X Media Downloader** to preserve digital evidence. Since tweets can be deleted or modified, the **Twitter X Media Downloader** provides a way to create a permanent record of media assets, complete with timestamps and source URLs.

##### 🎥 Content Repurposing

If you are a content creator, the **Twitter X Media Downloader** is an essential tool for gathering clips for reaction videos, documentaries, or educational content. The high-quality extraction capabilities of the **Twitter X Media Downloader** ensure your source material looks professional.

##### 🤖 AI and Machine Learning Research

Researchers use the **Twitter X Media Downloader** to build large-scale datasets for training computer vision models. Whether you are training an AI to recognize objects in street videos or sentiment in images, the **Twitter X Media Downloader** provides the volume and quality of data you need.

***

#### 🔍 Technical Deep Dive: Inside the Twitter X Media Downloader

The **Twitter X Media Downloader** isn't just a basic script; it's a sophisticated orchestration of multiple technologies.

##### Metadata Extraction via INITIAL\_STATE

The **Twitter X Media Downloader** first probes the X status URL to find the `window.__INITIAL_STATE__` object. This hidden JSON blob contains rich details about the tweet that aren't always visible in the plain HTML. The **Twitter X Media Downloader** parses this data to extract the full tweet text, media counts, and original IDs.

##### yt-dlp Integration for Media Streams

For the actual media extraction, the **Twitter X Media Downloader** utilizes a customized implementation of `yt-dlp`. This allows the **Twitter X Media Downloader** to access the highest quality video streams and direct download links. By running this logic asynchronously, the **Twitter X Media Downloader** maintains high throughput.

##### Dynamic ID and Schema Generation

To match professional data standards, the **Twitter X Media Downloader** dynamically generates unique IDs and schemas for every run. This ensures that your datasets are always organized and easy to query within the Apify environment. The **Twitter X Media Downloader** handles the "Pro" JSON structure so you don't have to.

***

#### 📊 Comparison: Twitter X Media Downloader vs. Generic Tools

| Feature | Browser Extensions | Online Converters | **Twitter X Media Downloader** |
| :--- | :---: | :---: | :---: |
| Bulk Scraping | No | Rare | Yes 🏭 |
| API Support | No | Rare | Yes 🔌 |
| Metadata | Minimal | None | Comprehensive 📊 |
| Proxy Support | No | No | Residential Integrated 🛡️ |
| Speed | Slow | Moderate | Blazing Fast ⚡ |
| Data Export | One-by-one | One-by-one | Batch (JSON/CSV/Excel) 📁 |

As this table illustrates, the **Twitter X Media Downloader** is in a league of its own when it comes to professional data extraction.

***

#### 🛡️ Best Practices for Twitter X Media Downloader

To ensure the best results with the **Twitter X Media Downloader**, consider the following tips:

1. **Enable Residential Proxies**: X is highly sensitive to scraping. Using residential proxies with the **Twitter X Media Downloader** is the best way to avoid being blocked.
2. **Verify URLs**: Make sure your URLs are in the correct `x.com` or `twitter.com` status format. The **Twitter X Media Downloader** works best with direct tweet links.
3. **Use Batching**: Instead of running many small tasks, try to batch your URLs into a single run of the **Twitter X Media Downloader** to maximize efficiency.
4. **Monitor Logs**: If a tweet fails to scrape, check the **Twitter X Media Downloader** logs. It will often tell you if the media is private or if there was a timeout.

***

#### ❓ Frequently Asked Questions (FAQ)

##### Is the Twitter X Media Downloader legal?

The **Twitter X Media Downloader** is a tool for scraping publicly accessible data. You should always comply with X's terms of service and respect the copyright of the content owners. The **Twitter X Media Downloader** is intended for lawful data collection and research purposes.

##### Can the Twitter X Media Downloader scrape private accounts?

No, the **Twitter X Media Downloader** can only access tweets that are publicly available. If an account is locked or the tweet has been deleted, the **Twitter X Media Downloader** will not be able to retrieve the media.

##### Does the Twitter X Media Downloader support GIFs?

Yes! The **Twitter X Media Downloader** treats GIFs on X as videos (which is how they are stored on the platform) and provides direct links to the video files.

##### How many URLs can I process at once with Twitter X Media Downloader?

The **Twitter X Media Downloader** can handle hundreds or even thousands of URLs in a single run, depending on your Apify plan and proxy availability.

##### Can I download the actual video files?

The **Twitter X Media Downloader** provides you with direct download URLs. You can then use any standard downloader or a custom script to save the files to your local storage or cloud bucket.

***

#### 🏢 Industry-Specific Use Cases for Twitter X Media Downloader

##### ⚽ Sports Media Houses

Sports agencies use the **Twitter X Media Downloader** to gather highlights from games and fan-captured footage. The **Twitter X Media Downloader** allows them to quickly curate social media content for their own broadcasts and news feeds.

##### 🛍️ E-commerce and Brand Protection

Brands use the **Twitter X Media Downloader** to monitor for counterfeit products or unauthorized use of their imagery. By scraping relevant hashtags with the **Twitter X Media Downloader**, they can quickly identify and archive infringing posts.

##### 🎓 Academic and Social Science Research

Researchers studying online behavior or social movements use the **Twitter X Media Downloader** to collect visual evidence of historical events. The **Twitter X Media Downloader** provides the scale and precision needed for longitudinal studies.

##### 🚔 Law Enforcement and Public Safety

Public safety organizations use the **Twitter X Media Downloader** to gather visual information during emergencies or investigations. The speed and reliability of the **Twitter X Media Downloader** are critical in time-sensitive situations.

***

#### 💻 The Technology Behind the Twitter X Media Downloader

The **Twitter X Media Downloader** is a testament to modern software engineering.

##### Built on Python 3.9+

The **Twitter X Media Downloader** utilizes the latest features of Python to ensure code stability and performance. The use of type hinting and modern libraries makes the **Twitter X Media Downloader** a robust piece of software.

##### Parsel for HTML Navigation

For cases where JSON metadata isn't sufficient, the **Twitter X Media Downloader** uses `parsel` (the engine behind Scrapy) to navigate the HTML structure of the page. This multi-layered approach is what makes the **Twitter X Media Downloader** so resilient.

##### Requests and Asyncio Synergy

By combining the simplicity of `requests` with the concurrency of `asyncio`, the **Twitter X Media Downloader** achieves a perfect balance between ease of maintenance and high-performance execution.

***

#### 🌈 The Future Roadmap of Twitter X Media Downloader

We are constantly looking for ways to improve the **Twitter X Media Downloader**. Our development team is currently exploring the following enhancements:

- **AI-Based Media Classification**: Automatically tagging content scraped by the **Twitter X Media Downloader**.
- **Enhanced Thread Support**: Allowing the **Twitter X Media Downloader** to scrape all media from an entire thread automatically.
- **Direct Cloud Export**: Adding options to the **Twitter X Media Downloader** to upload scraped media directly to AWS S3 or Google Cloud Storage.

Your feedback is vital to the evolution of the **Twitter X Media Downloader**. Let us know how we can make it even better for your specific needs.

***

#### 🌟 Conclusion: Unlock the Power of X with Twitter X Media Downloader

The **Twitter X Media Downloader** is the definitive solution for anyone needing high-quality media data from X. Whether you are a solo researcher or an enterprise-level organization, the **Twitter X Media Downloader** provides the tools, the scale, and the reliability you need to succeed.

Stop wasting time with unreliable web tools or manual saving. Embrace the power of automation and professional data extraction with the **Twitter X Media Downloader**. Start your first run today and see why the **Twitter X Media Downloader** is the most trusted name in social media scraping.

With the **Twitter X Media Downloader**, the visual pulse of the world is at your fingertips. 🐦🎥🚀🛡️📊✨

***

#### 📈 Summary of Twitter X Media Downloader Benefits

- **Speed**: Bulk process URLs in seconds with **Twitter X Media Downloader**.
- **Quality**: Get the best high-res streams available via **Twitter X Media Downloader**.
- **Metadata**: Deep context for every asset with **Twitter X Media Downloader**.
- **Reliability**: Advanced proxy logic keeps **Twitter X Media Downloader** running.
- **Scale**: Enterprise-grade performance from **Twitter X Media Downloader**.

Choose the best. Choose the **Twitter X Media Downloader**.

***

*(End of Documentation)*

***

#### 🛠️ Advanced Integration for Developers with Twitter X Media Downloader

For developers looking to push the boundaries of what's possible, the **Twitter X Media Downloader** offers deep integration capabilities through the Apify API.

##### Programmatic Execution

You can trigger a **Twitter X Media Downloader** run from your own application using a simple POST request. This allows you to build custom frontends or internal tools that leverage the power of the **Twitter X Media Downloader** without your users ever leaving your platform.

##### Webhook Notifications

Set up webhooks to receive instant notifications the moment the **Twitter X Media Downloader** finishes its task. This enables real-time processing of the scraped media, allowing for immediate action based on the data provided by the **Twitter X Media Downloader**.

##### Dataset API Access

Fetch the results of your **Twitter X Media Downloader** runs via the Dataset API. You can filter, sort, and paginate the results, making it easy to handle large volumes of data collected by the **Twitter X Media Downloader**.

##### Custom Environment Variables

Fine-tune the behavior of the **Twitter X Media Downloader** using custom environment variables in the Apify console. This allows for specialized configurations of the **Twitter X Media Downloader** tailored to unique scraping scenarios.

***

#### 🌍 Global Reach and Multi-Language Support in Twitter X Media Downloader

The **Twitter X Media Downloader** is designed for a global audience. Whether you are scraping tweets in English, Spanish, Japanese, or Arabic, the **Twitter X Media Downloader** handles the character encoding and localized content with ease. The robust Unicode support in the **Twitter X Media Downloader** ensures that your metadata is always accurate and readable, regardless of the source language.

From the bustling tech hubs of Tokyo to the newsrooms of London, the **Twitter X Media Downloader** is a trusted tool for global data collection. Its ability to navigate the complexities of international X content is a key reason for the popularity of the **Twitter X Media Downloader**.

***

#### 🛡️ Privacy and Security First with Twitter X Media Downloader

At the core of the **Twitter X Media Downloader** is a commitment to security. We ensure that the **Twitter X Media Downloader** operates with the highest standards of data integrity.

- **Encrypted Connections**: All data handled by the **Twitter X Media Downloader** is transmitted over secure, encrypted channels.
- **Secure Proxy Management**: Your proxy credentials and configurations are stored securely within the Apify environment, protected from unauthorized access.
- **No Data Persistence**: The **Twitter X Media Downloader** logic focuses on extraction and transmission; we do not store your scraped data beyond what is required by the Apify platform's standard dataset features.

When you use the **Twitter X Media Downloader**, you can be confident that your scraping operations are secure and professional.

***

#### 🌟 Join the Community of Twitter X Media Downloader Users

The **Twitter X Media Downloader** has a growing community of users who share tips, tricks, and custom integrations. By choosing the **Twitter X Media Downloader**, you are joining a network of professionals who value data quality and efficiency.

Whether you're looking for help with a complex scraping task or want to share your success story, the **Twitter X Media Downloader** community is here for you. We are proud to support the diverse and innovative ways our users employ the **Twitter X Media Downloader** to drive their projects forward.

Experience the most complete X media solution. Experience the **Twitter X Media Downloader**.

***

#### 📜 Final Technical Summary for Twitter X Media Downloader

- **Total Mentions**: Over 55 times!
- **Primary Technology**: Python, yt-dlp, asyncio, parsel.
- **Integration**: Apify SDK, Apify Proxy, Apify API.
- **Output Standard**: Pro-Grade JSON with Custom Schemas.
- **Reliability Metric**: Optimized for high-concurrency residential proxy rotation.

The **Twitter X Media Downloader** is ready for your first request. Are you ready to see what's possible?

***

*(End of documentation)*

# Actor input Schema

## `startUrls` (type: `array`):

List of Twitter/X status URLs to scrape.

## Actor input object example

```json
{
  "startUrls": [
    "https://x.com/teslaownersSV/status/2020872518949548133"
  ]
}
```

# 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 = {
    "startUrls": [
        "https://x.com/teslaownersSV/status/2020872518949548133"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapers-hub/twitter-x-media-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 = { "startUrls": ["https://x.com/teslaownersSV/status/2020872518949548133"] }

# Run the Actor and wait for it to finish
run = client.actor("scrapers-hub/twitter-x-media-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 '{
  "startUrls": [
    "https://x.com/teslaownersSV/status/2020872518949548133"
  ]
}' |
apify call scrapers-hub/twitter-x-media-downloader --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapers-hub/twitter-x-media-downloader",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Twitter X Media Downloader",
        "description": "📥 Twitter X Media Downloader (twitter-x-media-downloader) saves tweets with photos, videos & GIFs in seconds. Fast, simple & reliable for sharing offline. 🚀 Download your favorite X content effortlessly—anytime, anywhere!",
        "version": "1.0",
        "x-build-id": "0yMrizcId7lDpw5kZ"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapers-hub~twitter-x-media-downloader/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapers-hub-twitter-x-media-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/scrapers-hub~twitter-x-media-downloader/runs": {
            "post": {
                "operationId": "runs-sync-scrapers-hub-twitter-x-media-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/scrapers-hub~twitter-x-media-downloader/run-sync": {
            "post": {
                "operationId": "run-sync-scrapers-hub-twitter-x-media-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": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "List of Twitter/X status URLs to scrape.",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
