TXXX Video Downloader avatar

TXXX Video Downloader

Pricing

from $1.90 / 1,000 resolved videos

Go to Apify Store
TXXX Video Downloader

TXXX Video Downloader

Resolve public txxx.com watch-page URLs or numeric TXXX video IDs into dataset rows. Export direct source-hosted media links plus source titles, durations, thumbnails, tags, and expiry hints when available.

Pricing

from $1.90 / 1,000 resolved videos

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

13

Total users

0

Monthly active users

15 days ago

Last modified

Share

📥 TXXX downloader for public video URLs and IDs

TXXX Downloader helps developers, researchers, and media teams who already have public TXXX video targets. It turns supported public txxx.com watch-page URLs or numeric video IDs into Apify dataset rows with stable IDs, source URLs, metadata, tags, and direct source-hosted media links.

Use this TXXX video downloader for content review, cataloging, media operations, research, archiving workflows, or an API pipeline. Each successful row keeps the source link and lists the source media variants and expiry details when available.

Each saved row represents one public TXXX video with at least one direct source-hosted media link. It includes a stable video ID, a source-confirmed watch URL, source metadata when available, tags, and the available media formats.

Repeated URL or ID representations are matched by video ID. The first eligible occurrence is saved, and later matches are ignored. The saved row describes only that first match.

Direct media links stay at the source and can be signed or time-limited. Check availableFormats[].expiresAt when it is present, and run the same target again when you need a fresh link. The Actor does not invent missing quality labels, dimensions, or metadata.

Only successful rows are emitted. Invalid, unsupported, private, removed, blocked, unresolved, or no-media targets are reported in the run log instead of creating placeholder rows.

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

🚀 Resolve known TXXX video targets

  1. Open the Actor input.
  2. Add one or more public txxx.com watch-page URLs or numeric video IDs in TXXX videos.
  3. Start the Actor.
  4. Open the dataset.
  5. Use availableFormats[].mediaUrl for a direct source-hosted media link, and check expiresAt when it is present.

The Actor saves the first eligible occurrence of each source video as it is found and ignores later copies. The public input accepts up to 100 targets per run.

Limits and access

This Actor works with public TXXX videos that can be reached without logging in. It does not use your TXXX account, cookies, browser session, browser extension, or source API keys.

Some media URLs can expire after they are fetched. If a direct link stops working later, rerun the Actor for the same source URL or video ID to get fresh source links.

Use the Actor only for content you have the right to access, process, or download. The Actor returns source-hosted links; it does not copy videos into Apify storage.

⚙️ Input

Input fields

FieldTypeWhat it does
targetsarray of stringsRequired. Adds 1 to 100 public txxx.com watch-page URLs or numeric TXXX video IDs. Other hosts, including txxx.me, are rejected and reported in the run log, so they do not create dataset rows.

Example input

The example below is the public input from a successful current-beta default-input run.

{
"targets": [
"https://txxx.com/videos/21661387/horny-adult-video-gags-crazy/",
"21661387"
]
}

Use a supported txxx.com page or a numeric ID for each target. If a host is unsupported, the run log reports it and no dataset row is created for that target.

🧾 Output

The output panel provides a results link to the default dataset. Each successful dataset row has the fields below.

Output fields

FieldTypeWhat it does
resultsstringOpens the default dataset overview with the saved video rows.
videoIdstringIdentifies the source video for matching and reruns.
sourceUrlstringGives the source-confirmed TXXX watch-page URL.
titlestring or nullGives the video title when TXXX provides it.
descriptionstring or nullGives the video description when TXXX provides it.
durationSecondsinteger or nullGives the video length in seconds when available.
thumbnailUrlstring or nullLinks to the source thumbnail or poster when available.
tagsarray of stringsLists source-provided tags or categories when available.
availableFormatsarray of objectsLists the direct source-hosted media variants found for the video.
availableFormats[].qualitystring or nullGives the source quality or resolution label when known.
availableFormats[].widthinteger or nullGives the media width in pixels when known.
availableFormats[].heightinteger or nullGives the media height in pixels when known.
availableFormats[].contentTypestring or nullGives the media content type when known.
availableFormats[].mediaUrlstringLinks directly to the source media for this format.
availableFormats[].expiresAtstring or nullGives the parsed expiry time when the source exposes or implies one.

Example video row

This complete row is copied from a successful current-beta run. The source media URL may expire after the run.

{
"videoId": "21661387",
"sourceUrl": "https://txxx.com/videos/21661387/horny-adult-video-gags-crazy/",
"title": "Horny Adult Video Gags Crazy",
"description": null,
"durationSeconds": 479,
"thumbnailUrl": "https://tn.txxx.tube/contents/videos_screenshots/21661000/21661387/288x162/1.jpg",
"tags": [
"Fetish",
"HD",
"Latex",
"Humiliation",
"Handcuffs",
"Shibari Bondage",
"Gagging",
"Bondage",
"Hogtied",
"leather",
"Blindfolded",
"rubber",
"pvc",
"gagged (bit or ball)",
"handcuffed"
],
"availableFormats": [
{
"quality": "220kbps",
"width": 1280,
"height": 720,
"contentType": "video/mp4",
"mediaUrl": "https://ip396430037.ahcdn.com/key=vohql+tMstH+iwLswmLfyA,s=,end=1789076139,limit=3/data=HLaPxA/state=aqHRF14g/buffer=623000/speed=5100000/referer=none,.txxx.com,.gstatic.com/reftag=063878343/download2=/ssd3/121/0/492752620/tx/c7/videos/21661000/21661387/21661387_hq.mp4",
"expiresAt": "2026-09-09T21:35:39.000Z"
}
]
}

This keeps exports focused on successfully resolved videos. Failed or rejected targets are reported in the run log instead of becoming dataset rows.

💳 Pricing

This Actor uses pay-per-event pricing. You are charged one Resolved video event only for each public TXXX video saved to the dataset with at least one direct media link.

Failed, invalid, duplicate, private, removed, blocked, unresolved, or no-media targets do not create paid video events.

🔌 Integrations

Use the Apify API to start runs and read the dataset. You can also export the dataset in common formats, schedule runs, or connect it to downstream workflows.

❓ FAQ

Does this TXXX downloader save MP4 files?

No. The Actor returns direct source-hosted media links and metadata in the dataset. It does not mirror files, create ZIP archives, or store video copies.

Does it need TXXX cookies or an account?

No. It is built for public, reachable TXXX videos and does not ask for cookies, account sessions, source API keys, or extension accounts.

Can I choose a preferred quality?

The Actor returns all source-exposed variants it can validate. Choose the media link you want from availableFormats in the dataset.

Why are some targets skipped?

Targets can be skipped when they are invalid, duplicate, private, removed, blocked by the source, unresolved, or have no source-exposed media link. Skipped targets are reported in logs instead of being saved as failure rows.

Can I use the results through an API?

Yes. The output is an Apify dataset, so you can fetch it through the Apify API, export it in common formats, schedule runs, or connect it to downstream workflows.

📝 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é