XNXX Video Downloader avatar

XNXX Video Downloader

Pricing

from $2.25 / 1,000 saved videos

Go to Apify Store
XNXX Video Downloader

XNXX Video Downloader

Resolve known public XNXX video URLs or IDs into direct source media links and metadata. Get one Apify dataset row for each successfully resolved video, with titles, durations, thumbnails, source URLs, fetch times, and source-exposed MP4 or HLS formats.

Pricing

from $2.25 / 1,000 saved videos

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

75

Total users

1

Monthly active users

17 days ago

Last modified

Share

XNXX Video Downloader gives researchers, media teams, and developers direct source media links and video metadata for known public XNXX watch-page URLs or raw video IDs. It saves one structured Apify dataset row for each successfully resolved video, so you can review, catalog, or pass the links into an API workflow without copying page details by hand.

Each successful row represents one public XNXX video with usable source media. The row keeps the stable videoId, source-confirmed sourceUrl, title, duration, thumbnail, and fetchedAt time. availableFormats lists source-exposed MP4 or HLS choices with quality, dimensions, content type, direct media URL, and expiresAt when the source URL provides one. Missing source values stay null; direct links may be signed or time-limited.

▶️ Resolve known XNXX videos

  1. Add one or more known public XNXX watch-page URLs or raw video IDs in XNXX videos.
  2. Start the Actor.
  3. Open the default dataset and inspect the saved rows.
  4. Pick a mediaUrl from availableFormats for the format your workflow needs.

The Actor saves the first eligible occurrence of a source video as soon as it is found. If another URL or ID points to the same videoId, it is ignored after that first saved occurrence. The saved row describes the first match, not later aliases. This Actor does not search XNXX or crawl categories, profiles, or albums, and it does not store video files in Apify storage.

It reads public, reachable pages without XNXX cookies, an XNXX account, a browser extension, or a source API key. It does not bypass source access controls, account gates, age gates, region restrictions, deleted pages, paywalled pages, or rights restrictions.

Use the prefilled target for a small first run, then add your own target list or schedule repeated runs after you inspect the output shape.

⚙️ Input

The input accepts known public XNXX watch-page URLs and raw video IDs. The form requires at least one non-empty target and accepts up to 100 targets. There is no separate result-limit field, so the Actor processes the submitted targets until they are exhausted.

Input fields

FieldTypeWhat it does
targetsarray of stringsRequired. Adds 1 to 100 non-empty public XNXX watch-page URLs or raw video IDs, with one target per row.

Example input

This example is copied from the public input of a successful current-beta run.

{
"targets": [
"https://www.xnxx.com/video-t25dr83/nympho_teen_wanna_fuck_her_neighbour_creampie_",
"https://www.xnxx.com/video-1f4nl704/sneaky_teens_have_public_sex",
"https://www.xnxx.com/video-1bkzkdb2/beautiful_18_year_old_amateur_neighbor_yelling_at_me_to_stop"
]
}

🧾 Output

The output has one dataset link and one successful video row shape. Open results to view the default dataset overview.

Output fields

FieldTypeWhat it does
resultslink stringOpens the successful video rows in the default dataset overview.
videoIdstringStable XNXX video identifier for recognizing the source video.
sourceUrlstringSource-confirmed XNXX watch URL for the video.
titlestring or nullVideo title shown on XNXX, when available.
durationSecondsinteger or nullVideo duration in seconds, when available.
thumbnailUrlstring or nullThumbnail or poster URL shown by XNXX, when available.
fetchedAtdate-time stringTime when the direct media URLs in the row were fetched.
availableFormatsarray of objectsSource-exposed MP4 and HLS media formats available for the video.
availableFormats[].qualitystring or nullSource quality label, such as low, high, or HLS, when known.
availableFormats[].widthinteger or nullFormat width in pixels, when known.
availableFormats[].heightinteger or nullFormat height in pixels, when known.
availableFormats[].contentTypestring or nullMedia content type, when known.
availableFormats[].mediaUrlstringDirect media URL for the format.
availableFormats[].expiresAtdate-time string or nullExpiry time found in the media URL, when available.

Example video row

This complete row is copied from a successful current-beta run. Its source URLs are shown exactly as returned.

{
"videoId": "t25dr83",
"sourceUrl": "https://www.xnxx.com/video-t25dr83/nympho_teen_wanna_fuck_her_neighbour_creampie_",
"title": "Nympho Teen wanna fuck her neighbour ( Creampie )",
"durationSeconds": 542,
"thumbnailUrl": "https://thumb-cdn77.xnxx-cdn.com/6aeccb26-76c5-439a-a769-0513e53d026e/0/xv_29_t.jpg",
"fetchedAt": "2026-09-09T21:59:45.792Z",
"availableFormats": [
{
"quality": "low",
"width": null,
"height": null,
"contentType": "video/mp4",
"mediaUrl": "https://mp4-cdn77.xnxx-cdn.com/6aeccb26-76c5-439a-a769-0513e53d026e/0/video_240p.mp4?secure=2kHFxTYDwRV7hAdo1K2p4g==,1789001985",
"expiresAt": "2026-09-10T00:59:45.000Z"
},
{
"quality": "high",
"width": null,
"height": null,
"contentType": "video/mp4",
"mediaUrl": "https://mp4-cdn77.xnxx-cdn.com/6aeccb26-76c5-439a-a769-0513e53d026e/0/video_360p.mp4?secure=EcSJJvVU2OKwvU4PblzdyA==,1789001985",
"expiresAt": "2026-09-10T00:59:45.000Z"
},
{
"quality": "hls",
"width": 854,
"height": 480,
"contentType": "application/vnd.apple.mpegurl",
"mediaUrl": "https://hls-cdn77.xnxx-cdn.com/wNO_bwhXKWBJtM4wRjotVw==,1789001985/6aeccb26-76c5-439a-a769-0513e53d026e/0/hls.m3u8",
"expiresAt": "2026-09-10T00:59:45.000Z"
}
]
}

💳 Pricing

This Actor uses pay-per-event pricing.

Charged event

The Saved video event is charged once for each successfully resolved public video saved to the dataset. The current base-tier price is $0.00265 per saved video; other account tiers use the prices shown in the pricing panel. A target that is invalid, unavailable, private, removed, blocked, duplicated, or has no usable media does not create a saved video event.

🔌 Integrations

Use the Apify API to read the dataset in code, or open it in Apify and export the rows as JSON, CSV, Excel, XML, RSS, or HTML. You can schedule repeated runs in Apify when you want to check the same known targets again.

❓ FAQ

Can I use a raw XNXX video ID?

Yes. Add the ID as one target in the targets list. The Actor resolves it as a known public XNXX video target.

Can I mix URLs and IDs in one run?

Yes. Add public watch-page URLs and raw XNXX video IDs in the same targets list.

What happens when two targets point to the same video?

The Actor saves the first eligible occurrence and ignores later URL or ID aliases for that source video. It does not merge later matches into the saved row.

What happens when a target has no usable media?

The Actor saves no video row for that target. Invalid, private, removed, blocked, unavailable, or no-media targets do not become failure rows.

Can I search XNXX by keyword?

No. Add a known public video URL or raw video ID. The Actor does not search XNXX or discover videos from categories, profiles, or albums.

Can I download files into Apify storage?

No. The Actor returns direct links held by the source and metadata. It does not copy video files or create ZIP archives in Apify storage.

Some source links are signed or time-limited. Check expiresAt when it is present and run the same target again when you need another source link.

Why are some fields null?

Some XNXX pages expose less metadata or fewer format details. The Actor keeps those values null instead of guessing.

📝 Changelog

v0.1

  • Initial release.

🆘 Support

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

Made with ❤️ by Maxime Dupré