Redgifs Video Scraper
Pricing
from $0.85 / 1,000 video results
Redgifs Video Scraper
Scrapes public video data from redgifs.com searches, niches, profiles and video pages: creator, tags, views, likes, date, duration, size, audio flag, poster and thumbnail and the direct .mp4 video file URLs. Or just the video page and file URLs.
Pricing
from $0.85 / 1,000 video results
Rating
0.0
(0)
Developer
DataWatcher
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
21 hours ago
Last modified
Categories
Share
Scrape RedGIFs videos from redgifs.com by keyword search, niche, account or post URL, and get clean data as JSON, CSV or Excel, or through the API. Every video row has the direct link to the video file (.mp4): open it to play the video, or save it to download it. You also get the creator, the creator's OnlyFans link, tags, views, likes, date, duration, size, audio flag, poster and thumbnail. No login, no browser.
- Direct video links:
videoFileUrl(full quality) andpreviewVideoUrl(smaller copy). - Image posts are kept as rows with
mediaTypeimageand the full-size picture inimageUrl. - Searches, niches and accounts are read page by page until your
maxResultsor another cap in the input is reached.
The actor reads public data and returns the links to the files.
Want the files saved, named creatorname_video-id.mp4? Use RedGIFs Video Downloader (it charges per saved file).
⭐ Why this one
1️⃣ One schema across video sites. All our video actors share one output schema and one input schema. Build your pipeline once: our other video actors (Erome Video Scraper, XFree Video Scraper, Erome Video Downloader, RedGIFs Video Downloader, XFree Video Downloader) take the same input and return the same fields, so adding a site means changing the actor name, not your code.
- Low price, no start fee. $1.00 per 1,000 videos; the median RedGIFs scraper charges $9.50, and 3 of 5 add a start fee. You pay only for rows you get.
- Every input a RedGIFs buyer needs. Keyword searches, niches, accounts and post URLs, alone or mixed in one run, with one row per post.
- A direct video link on every row.
videoFileUrl(full quality) andpreviewVideoUrlcome with the data, so you can play or download the file at no extra request. - Links-only mode. Turn on
onlyVideoUrlsfor rows with just the post page and the two links: the fastest run, at the same price per post. - Honest runs. A run summary with a list of failed inputs, and a health status (
ok,degradedorfailed) with the reason. - Creator data included. Username, display name, profile link and OnlyFans link on every row, plus account data once per account.
🔎 What it extracts
One row per unique post. The page types it reads:
| Page type | Example URL | Input to use |
|---|---|---|
| Search | https://www.redgifs.com/search/gifs?query=amateur&order=score | searchQueries or startUrls |
| Account | https://www.redgifs.com/users/creatorname | usernames or startUrls |
| Niche | https://www.redgifs.com/niches/just-boobs | tags or startUrls |
| Post page | https://www.redgifs.com/watch/examplepostid | videoUrls or startUrls |
- Niche names are the slug of the niche URL (
just-boobs). - Search filter:
all(default) orpost. A search returns at most 10,000 results (a limit of the site). - An
orderin a search, account or niche URL is used as given when the site accepts it. - Account data (followers, total posts, bio and more) is saved once per account in the run stats (
accountProfiles).
🚀 How to scrape RedGIFs videos
- Open the actor on Apify and click Try for free.
- Fill in a search, niches or accounts, or paste redgifs.com URLs into
startUrlsorvideoUrls. - Click Start.
- Download the RedGIFs video data as JSON, CSV or Excel from the Output tab, or fetch it with the Apify API.
Example inputs:
{ "searchQueries": [{ "query": "amateur", "filter": "all" }], "maxResults": 50 }
{ "tags": ["just-boobs"], "tagSort": "latest", "maxResults": 100 }
🤖 Use with AI agents (MCP)
AI assistants (Claude, ChatGPT, Cursor…) can run this actor through Apify's MCP server. Connect the server in your assistant, then ask, for example:
Use the RedGIFs Video Scraper to get the 20 newest videos of the niche just-boobs with their direct .mp4 links.
🔌 Run it your way
- Schedule it with Apify schedules.
- Call it from the Apify API and its clients (Python, JavaScript).
- Connect it to Make, n8n, Zapier, webhooks or Google Sheets.
- Ask an AI agent to run it: see Use with AI agents (MCP).
🔀 Mixing inputs and duplicates
You can use all five source inputs in one run: startUrls, searchQueries, usernames, tags, videoUrls.
| Rule | What happens |
|---|---|
| One row per post | Matched by id over the whole run: a post found by a search and by its account is written once. |
| First input kept | sourceType and sourceUrl keep the first input that found it. |
| Same input twice | Read once. |
maxResults | One cap for the run, split fairly over the inputs still to read. |
| Input check | Every input is checked: valid ones run, others get a clear message. |
🎬 Direct video links
videoFileUrlis the direct link to the video file, e.g.https://media.redgifs.com/ExamplePostId.mp4. Open it in a browser to play the video, or save it to download it.
previewVideoUrlis the smaller copy, e.g.https://media.redgifs.com/ExamplePostId-mobile.mp4.
- The links come with every row at no extra request.
urlis the post's page on redgifs.com, not the file.- Image posts have no video link: their
videoFileUrl,previewVideoUrlanddurationSecondsarenullandimageUrlholds the picture.
⚡ Links-only mode (onlyVideoUrls)
With onlyVideoUrls set to true, each row has only the post page and the two direct video links. It is the fastest run. The price per post is the same as for a full row. Image posts have no video links: their links-only row has empty video links and an extra imageUrl.
⚙️ Input
| Input | Type | Default | Range | Meaning |
|---|---|---|---|---|
startUrls | list of URLs | none | redgifs.com URLs | Search, account, niche or post URLs. The kind is found from the URL. |
searchQueries | list | none | – | Items {"query": "...", "filter": "all" | "post"}. A plain text line means {"query": text, "filter": "all"}. |
usernames | list of text | none | – | Account names, with or without @, or account URLs. Every post of each account. |
tags | list of text | none | – | Niche slugs (e.g. just-boobs), or niche page URLs. |
tagSort | text | empty (default order) | latest or popular | Order of searches, accounts and niches. |
videoUrls | list of URLs | none | – | Post page URLs. One row per post. |
onlyVideoUrls | yes/no | false | – | Rows are only url, videoFileUrl, previewVideoUrl. |
maxResults | integer | 100 | 1 to 1,000 | Maximum posts returned over all inputs. |
maxRequests | integer | 200 | 1 to 1,000 | Maximum requests of the run (list pages and posts). |
maxPagesPerSource | integer | 100 | 1 to 100 | Maximum list pages for one search, account or niche (100 posts per page). |
maxScrollsPerPage | integer | 100 | 1 to 100 | Not used on this site (pages are numbered). |
maxRequestRetries | integer | 2 | 0 to 5 | Retries after a network error or a server error. |
requestTimeoutSecs | integer | 30 | 5 to 120 | Time limit of one request, in seconds. |
Use at least one of startUrls, searchQueries, usernames, tags or videoUrls. When a cap ends the run, stopReason says which (see Run stats).
📦 Output: RedGIFs video data
Every full row has all of these fields. A missing text, number or object is null. A missing list is [].
| Field | Type | Meaning |
|---|---|---|
recordType, schemaVersion, source | text | Always video; the output schema version; the site (redgifs). |
id | text | The site's id of the post. |
url | text | The post's page on redgifs.com (not the file). |
mediaType | text | video or image. |
imageUrl | text or null | Direct link to the full-size image when mediaType is image; empty for videos. |
sourceType | text | search, profile, tag or direct_video. |
sourceUrl | text | The input that first found the post. |
title | text or null | Always null: the site gives no title. |
creator | object or null | username, displayName, profileUrl, onlyfansUrl of the account that posted it. |
taggedAccounts | list | Always []: the site has no tagged accounts. |
views | integer or null | Views as a number at run time. |
likes | integer or null | Likes. |
durationSeconds | number or null | Length in seconds; null for images. |
width, height | integer or null | Size in pixels. |
hasAudio | yes/no or null | Whether the video has sound; null for images. |
thumbnailUrl | text or null | Small preview image URL. |
posterUrl | text or null | Larger preview image URL. |
tags | list | Tags in the site's order, no repeats. |
videoFileUrl | text or null | Direct link to the video file (.mp4, full quality). null for images. |
previewVideoUrl | text or null | Direct link to the smaller .mp4 copy. null for images. |
dates | object | posted (when the post was published) and scraped (when the row was made), ISO 8601 UTC. |
Example: a full row
{"recordType": "video","schemaVersion": "4.4.0","source": "redgifs","id": "examplepostid","url": "https://www.redgifs.com/watch/examplepostid","mediaType": "video","sourceType": "search","sourceUrl": "https://www.redgifs.com/search/gifs?query=amateur","title": null,"creator": { "username": "creatorname", "displayName": "Example Creator", "profileUrl": "https://www.redgifs.com/users/creatorname", "onlyfansUrl": "https://onlyfans.com/creatorname" },"taggedAccounts": [],"views": 12345,"likes": 123,"durationSeconds": 22.8,"width": 1080,"height": 1920,"hasAudio": true,"thumbnailUrl": "https://media.redgifs.com/ExamplePostId-mobile.jpg","posterUrl": "https://media.redgifs.com/ExamplePostId-poster.jpg","tags": ["Amateur", "Solo"],"videoFileUrl": "https://media.redgifs.com/ExamplePostId.mp4","previewVideoUrl": "https://media.redgifs.com/ExamplePostId-mobile.mp4","imageUrl": null,"dates": { "posted": "2025-01-01T12:00:00Z", "scraped": "2025-01-02T12:00:00Z" }}
Example: a links-only row
{"url": "https://www.redgifs.com/watch/examplepostid","videoFileUrl": "https://media.redgifs.com/ExamplePostId.mp4","previewVideoUrl": "https://media.redgifs.com/ExamplePostId-mobile.mp4"}
📊 Run stats
Each run saves two records in the key-value store. OUTPUT:
| Key | Meaning |
|---|---|
status | success, partial (some inputs failed, rows kept) or failed. |
sourcesProcessed | Inputs read. |
listingPagesVisited | List pages read. |
videoCardsFound | Posts seen, before dedupe. |
uniqueVideosEmitted | Rows written. |
duplicatesSkipped | Posts already written. |
mediaUrlsFound, mediaUrlsMissing | Rows with / without a videoFileUrl (images count as missing). |
requestsUsed | Requests made. |
stoppedEarly | true when a cap ended the run. |
stopReason | The cap: maxResults, maxRequests, maxPagesPerSource or chargeLimit; else null. |
sourceErrors | List of inputs that failed, with the message. |
sources | One entry per input: type, URL, status, pages, videos. |
accountProfiles | The account data, once per account read. |
chargedEvents | How many times each billing event was charged. |
RUN_HEALTH: {"status": "ok" | "degraded" | "failed", "reason": ...}. reason says why a run is not ok.
💰 Pricing
Pay per event. There is no start fee. Free plan: each run returns up to 1,000 videos; upgrade your Apify plan for more.
| Event | Price | When it is charged |
|---|---|---|
video-scraped | $0.0010 ($1.00 per 1,000) | Each unique post row written, with its direct links. Links-only rows too. |
- 1,000 videos, each with its direct
.mp4link: $1.00. - Duplicate posts are free. The links are included in the price.
🎯 Use cases
- Build a list of direct
.mp4links for a niche, keyword or creator and hand it to your own player or downloader. - Track a creator's new posts on a schedule, with views and likes.
- Find creators and their OnlyFans links in a niche.
- Research which tags and niches get the most views and likes.
- Run the same pipeline over several video sites, since they share one schema.
❓ FAQ
How do I export RedGIFs videos to Excel or CSV?
Run the actor, open the Output tab and pick Excel or CSV in the export options. JSON, XML and HTML are there too, and the Apify API returns the same data.
How do I get direct .mp4 links in my RedGIFs video data?
Every video row has videoFileUrl (full quality) and previewVideoUrl. Turn on onlyVideoUrls for rows with only the links, the fastest run.
Can I get RedGIFs data through an API?
Yes. Call the actor from the Apify API or its clients (Python, JavaScript), then read the rows from the run's dataset.
How much does it cost?
$1.00 per 1,000 videos with their direct links, no start fee. Duplicate posts are free.
Can I combine it with other video sites?
Yes. All our video actors share one output schema and one input schema, so rows from different sites fit one table. See the list below.
Data notice
This actor returns only what the site shows publicly at run time. We don't store or keep that data and are not its controller — you decide how you use it.
🔗 Other video scrapers (same schema)
RedGIFs (this site)
- RedGIFs Video Downloader: saves the video files (.mp4)
Erome
- Erome Video Scraper: links and data
- Erome Video Downloader: saves the video files (.mp4)
XFree
- XFree Video Scraper: links and data
- XFree Video Downloader: saves the video files (.mp4)
💬 Feedback and custom work
Need another portal, a field or a custom feed? Open an issue on the Issues tab.