XNXX Video Downloader avatar

XNXX Video Downloader

Pricing

$2.65 / 1,000 resolved videos

Go to Apify Store
XNXX Video Downloader

XNXX Video Downloader

Extract direct media links and metadata from public XNXX video URLs or IDs. Get titles, durations, thumbnails, MP4/HLS format variants, source URLs, and fresh Apify dataset exports.

Pricing

$2.65 / 1,000 resolved videos

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

📥 XNXX video downloader for URLs and IDs

XNXX Video Downloader extracts direct media links and metadata from public XNXX video URLs or video IDs. Add one or more known XNXX videos and get a clean Apify dataset with source video IDs, source URLs, titles, durations, thumbnails, MP4/HLS format variants, media URL expiry times when available, and scrape timestamps.

Use this XNXX downloader when you already have video links or IDs and need repeatable exports for content review, cataloging, media operations, research, archiving workflows, or an API pipeline. The Actor works with public, reachable XNXX video pages only. You do not need XNXX cookies, an XNXX account, a browser extension, or a source API key.

For a small first run, keep the prefilled sample targets and start the Actor. Once the output shape fits your workflow, paste your own list of public XNXX video URLs or IDs, run a larger batch, schedule the Actor, or call it through the Apify API.

✅ What this Actor does

  • Accepts public XNXX watch-page URLs.
  • Accepts raw XNXX video IDs.
  • Deduplicates repeated URL and ID aliases by video ID.
  • Saves one dataset row per successfully resolved public video.
  • Returns all source-exposed direct media formats found for the video, including MP4 and HLS links when XNXX exposes them.
  • Adds title, duration, thumbnail URL, source URL, video ID, and fetch timestamp when available.
  • Parses media URL expiry timestamps when the signed source URL exposes one.
  • Skips invalid, duplicate, private, removed, unavailable, blocked, or no-media targets without saving paid failure rows.

This Actor is focused on known public XNXX videos. It does not search XNXX, crawl categories, process albums, bypass private access, download files into Apify storage, create ZIP archives, or install a browser extension.

📦 Data you can export

Each output row represents one public XNXX video where media links were found. Core fields include:

  • videoId - stable XNXX video identifier for dedupe and reruns.
  • sourceUrl - source-confirmed XNXX watch URL.
  • title - source video title, when available.
  • durationSeconds - video duration in seconds, when available.
  • thumbnailUrl - source thumbnail or poster image URL, when available.
  • fetchedAt - ISO timestamp for when the direct media URLs were fetched.
  • availableFormats - source-exposed media variants with quality, width, height, contentType, mediaUrl, and expiresAt.

Direct media links can be signed and time-limited. Use fetchedAt and availableFormats[].expiresAt to decide when to refresh results. The Actor does not invent missing dimensions or metadata; nullable fields stay empty when XNXX does not expose them.

You can open the dataset in Apify, export it as JSON, CSV, Excel, XML, RSS, or HTML, call it through the Apify API, schedule recurring runs, or connect results to webhooks and integrations.

🚀 How to run

  1. Open the Actor input.
  2. Add one or more public XNXX video URLs or IDs in XNXX videos.
  3. Start the Actor.
  4. Open the dataset.
  5. Use availableFormats to choose the MP4 or HLS media link that fits your workflow.

The Actor pushes successful rows during the run, so you can inspect early results before a larger batch finishes.

🧾 Input

FieldWhat to enter
targetsOne or more public XNXX video URLs or raw XNXX video IDs.

Input example:

{
"targets": [
"https://www.xnxx.com/video-1czsl51a/example_video",
"1czsl51a"
]
}

The public input accepts up to 100 targets per run. Submit fewer targets when you want a smaller test.

📤 Output example

{
"videoId": "1czsl51a",
"sourceUrl": "https://www.xnxx.com/video-1czsl51a/example_video",
"title": "Sample video",
"durationSeconds": 2299,
"thumbnailUrl": "https://thumb-cdn77.xnxx-cdn.com/example/0/xv_5_t.jpg",
"fetchedAt": "2026-06-17T22:25:23.000Z",
"availableFormats": [
{
"quality": "high",
"width": null,
"height": null,
"contentType": "video/mp4",
"mediaUrl": "https://mp4-cdn77.xnxx-cdn.com/example/video_360p.mp4?secure=...",
"expiresAt": "2026-06-18T22:25:22.000Z"
},
{
"quality": "hls",
"width": null,
"height": null,
"contentType": "application/vnd.apple.mpegurl",
"mediaUrl": "https://hls-cdn77.xnxx-cdn.com/example/hls.m3u8",
"expiresAt": "2026-06-18T22:25:22.000Z"
}
]
}

💰 Pricing

This Actor uses pay-per-event pricing. You are charged only for each public XNXX video that is successfully resolved and saved.

The event price is $0.00265 per resolved video. Targets that are invalid, unavailable, private, removed, blocked, duplicated, or missing media links do not create paid video events.

⚠️ Limits and caveats

This Actor works with public XNXX videos that are reachable without logging in. It does not bypass source access controls, account gates, age gates, region restrictions, deleted pages, paywalled pages, or rights restrictions.

Media links come from the source page and may expire. Run the Actor again when you need fresh direct URLs. The Actor returns direct links and metadata; it does not store large video files in Apify key-value storage by default.

❓ FAQ

Can I download private or login-only XNXX videos?

No. The Actor only works with public videos that XNXX exposes without user credentials. It does not use cookies, accounts, or browser sessions.

Does this save video files to Apify storage?

No. The current Actor returns direct source media links and metadata. This keeps the run lighter and avoids turning large file transfers into the default cost path.

Why are some fields null?

Some XNXX pages expose less metadata or fewer media details than others. The Actor keeps those fields null instead of guessing.

Why do media URLs include expiry times?

Some direct media URLs are signed by the source and can expire. The Actor adds fetchedAt and expiresAt so downstream workflows can decide when to refresh links.

📝 Changelog

  • 0.1: Initial release.

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

🔗 Other actors

Made with ❤️ by Maxime Dupré