XVideos Scraper - Video Metadata, Tags & Views
Pricing
from $6.15 / 1,000 results
XVideos Scraper - Video Metadata, Tags & Views
XVideos scraper for public video metadata with no API key. Export title, exact views, rating, up/down votes, comments, duration, tags, pornstars, upload date, HD quality and direct video URLs by search, tag/category or channel. Sort and paginate. Clean JSON, CSV or Excel.
Pricing
from $6.15 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
22
Total users
2
Monthly active users
6 hours ago
Last modified
Categories
Share
XVideos Scraper - Video Metadata, Tags, Views & Ratings
The most complete XVideos scraper for public video metadata, with no API key required. Export title, exact view count, rating percent, up and down votes, comment count, duration, tags, credited pornstars, upload date, HD quality flag and direct video and preview URLs, by search keyword, tag/category or channel/pornstar profile. Results come back as clean JSON, CSV or Excel for content analytics, trend research and catalog building.
Here is one representative real result, with every field the actor returns when withDetails is on:
{"videoId": "opmvtmk282b","videoIdNumeric": 90673267,"title": "Yoga Whore Needs Big Cock To Stretch And Open Her Cunt","url": "https://www.xvideos.com/video.opmvtmk282b/yoga_whore_needs_big_cock_to_stretch_and_open_her_cunt","durationSeconds": 1044,"views": 543200,"ratingPercent": 100,"votes": 2208,"votesUp": 1800,"votesDown": 407,"commentsCount": 7,"isHD": true,"maxQuality": "1440p","hasClosedCaptions": true,"uploadedAt": "2026-07-07T22:00:00+00:00","uploader": "POVD","uploaderUrl": "https://www.xvideos.com/povd","uploaderType": "channel","pornstars": ["David Lee Xxx", "Thea Summers"],"pornstarUrls": ["https://www.xvideos.com/models/david_lee_xxx-model","https://www.xvideos.com/models/thea-summers-model1"],"tags": ["blonde", "sexy", "petite", "blowjob", "riding", "yoga", "POV", "small-tits"],"description": "Yoga Whore Needs Big Cock To Stretch And Open Her Cunt","thumbnail": "https://thumb-cdn77.xvideos-cdn.com/c30fc53d-3ac8-4d9c-bd16-d8af36905037/5/xv_10_t.jpg","previewVideoUrl": "https://thumb-cdn77.xvideos-cdn.com/c30fc53d-3ac8-4d9c-bd16-d8af36905037/5/preview.mp4","videoFileUrl": "https://mp4-cdn77.xvideos-cdn.com/c30fc53d-3ac8-4d9c-bd16-d8af36905037/5/mp4_sd.mp4?secure=...","observedAt": "2026-09-04T14:03:05.759Z","error": null}
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Why this scraper
- Quickstart
- Input reference
- Output reference
- Comparison with other XVideos actors
- Use cases
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
This XVideos data scraper loads a public search, tag/category or channel/pornstar listing, paginates through it, and writes one normalized record per video to the run dataset. When withDetails is on, it also opens each video page to add the exact view count, rating percent, up and down votes, comment count, upload date, description, direct preview and video-file URLs, and the structured pornstars and tags lists.
Every record is deduplicated across pages, dates are normalized to ISO 8601, and missing source values are returned as null, never invented. This is an adult site, so only public listing and video-page metadata is collected. No login, no official API and no API key are used.
Why this scraper
- Widest field coverage. View count, rating percent, up/down votes, comment count, tags, credited pornstars with profile URLs, HD quality, closed-caption flag, upload date and direct media URLs, not just the six listing fields other actors stop at.
- Three source types. Search keyword, tag/category, or channel/studio/model/pornstar profile, with sort by relevance, newest, rating, views or longest.
- No API key, no browser. Fast HTTP collection with rotating proxy support and pay-per-result billing.
- Analyst-ready output. Stable columns in every row (honest
nullwhen a value is absent), export to JSON, CSV or Excel.
Quickstart
Open the actor, paste this into the input, and press Run. It searches for yoga and fetches video details.
{"searchQuery": "yoga","maxVideos": 25,"withDetails": true}
Pick exactly one source: searchQuery, tag, or channel. If more than one is filled, the first non-empty in that order is used.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
searchQuery | string | no | (empty) | Keyword to search public videos, for example yoga, cars. |
tag | string | no | (empty) | Public tag/category slug, for example milf from /tags/milf. Ignored when a search query is set. |
channel | string | no | (empty) | Channel, studio, model or pornstar profile slug, for example brazzers from /channels/brazzers. Ignored when a higher-priority source is set. |
sort | enum | no | relevance | relevance, uploadDate, rating, views, or longest. Applies to search and channel sources. |
maxVideos | integer | no | 10 | Maximum number of videos to collect. Free Apify plans are capped at 10 per run. |
withDetails | boolean | no | true | When on, each video page is opened to add exact views, rating, votes, comments, upload date, description, tags, pornstars and media URLs. Off returns listing-level fields only (faster). |
proxy | object | no | Apify proxy | Standard Apify proxy configuration. XVideos rate limits per IP, so a rotating residential proxy is recommended for large runs. |
Provide exactly one source. Sources do not combine.
Output reference
One dataset item per video. Every row carries every field below (listing-level fields are always populated; detail fields are filled when withDetails is on, otherwise null). Types: string, integer, boolean, string[], or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
videoId | string | XVideos short video ID (from the video URL). |
videoIdNumeric | integer | Numeric internal video ID (stable join key). |
title | string | Video title. |
url | string | Video page URL. |
durationSeconds | integer | Duration in seconds. |
views | integer | View count (exact when detail is on). |
ratingPercent | integer | Positive-rating percentage (detail only). |
votes | integer | Total vote count (detail only). |
votesUp | integer | Positive votes (detail only). |
votesDown | integer | Negative votes (detail only). |
commentsCount | integer | Number of public comments (detail only). |
isHD | boolean | Whether the video carries an HD quality badge. |
maxQuality | string | Highest advertised quality, for example 1080p, 1440p (listing sources). |
hasClosedCaptions | boolean | Whether closed captions are available (listing sources). |
uploadedAt | string | Upload date/time in ISO 8601 (detail only). |
uploader | string | Uploader, channel or studio name. |
uploaderUrl | string | Uploader profile URL. |
uploaderType | string | Uploader type, for example channel, model, pornstar, profile. |
pornstars | string[] | Credited pornstars/models (detail only). |
pornstarUrls | string[] | Profile URLs of the credited pornstars/models, aligned by index (detail only). |
tags | string[] | Tags/keywords for the video (detail only). |
description | string | Video description (detail only). |
thumbnail | string | Thumbnail image URL. |
previewVideoUrl | string | Animated preview clip URL. |
videoFileUrl | string | Direct MP4 file URL from the video page (detail only). |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | null on success. If a single video's detail page fails, the listing-level record is still returned with a short error note. |
Comparison with other XVideos actors
| Capability | This actor | Typical "xvideos scraper" (keyword only) | XVideos downloader actors |
|---|---|---|---|
| Search keyword | Yes | Yes | Sometimes |
| Tag / category source | Yes | No | No |
| Channel / studio / pornstar source | Yes | No | No |
| Sort (relevance, newest, rating, views, longest) | Yes | No | No |
| Title, URL, duration, thumbnail, uploader, views | Yes | Yes | Partial |
| Exact views, rating percent, votes up/down | Yes | No | No |
| Comment count | Yes | No | No |
| Tags and credited pornstars (with profile URLs) | Yes | No | No |
| Upload date | Yes | No | No |
| HD flag, max quality, closed-caption flag | Yes | No | Partial |
| Direct video-file and preview URLs | Yes | No | Yes |
| Cross-page deduplication | Yes | Varies | n/a |
| Pay per result, no API key | Yes | Yes | Yes |
Named keyword-only actors return only title, video URL, duration, thumbnail, uploader and views from search results and do not open video pages. This actor accepts all of their inputs and returns all of their outputs, plus the detail-page and quality fields above.
Use cases
- Content and trend analytics. Track views, ratings, votes and comment counts across tags or channels over time.
- Catalog and recommendation building. Pull structured metadata, tags and pornstar credits into a database.
- Market and competitor research. Compare studios/channels by output volume, engagement and HD share.
- Dataset creation. Build labeled adult-content metadata datasets with stable, typed columns.
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~xvideos-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"searchQuery":"yoga","maxVideos":25,"withDetails":true}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~xvideos-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"tag":"amateur","sort":"views","maxVideos":100}'
Apify CLI:
apify call scrapers_lat/xvideos-scraper \--input '{"channel":"brazzers","maxVideos":50}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per video record returned (
resultevent). WhenwithDetailsis on and a detail page is fetched successfully, an additivedetailsevent is also charged. See the pricing tab for current prices. - No charge on failure. If a run errors, the actor writes an item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 records per run and return listing-level fields only. Upgrade for higher
maxVideosand detail-page enrichment. - Rate limits. XVideos rate limits per IP. Keep a rotating (residential) proxy on for large runs.
FAQ and troubleshooting
Do I need an API key or login? No. The actor reads only public listing and video pages. There is no XVideos API key and no login.
A run returned 0 records. Why?
The search, tag or channel matched nothing, or the source rate-limited the run. Keep the proxy on, lower maxVideos, or try a different keyword. Zero-result runs are not charged.
Some records have an error note but still have data. Why?
When a single video's detail page fails to load, the listing-level record is still returned with a short error note so you keep the row. The base listing fields are always present, and the details add-on is not charged for that row.
Can I get the direct video file URL?
Yes. With withDetails on, each record carries videoFileUrl and previewVideoUrl parsed from the video page. These are time-signed CDN URLs and expire.
Which sources can I combine?
None; pick exactly one of searchQuery, tag, or channel. If more than one is set, the first non-empty in that order is used.
Is this an official XVideos tool? No. This actor is independent and has no affiliation with XVideos. It reads only publicly available listing and video-page metadata.
Related scrapers
- xHamster Video Metadata & Search Scraper: search and video metadata from xHamster.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with XVideos. Accesses only publicly available data.
