RedGifs Bulk Video Downloader
Pricing
$9.00 / 1,000 saved videos
RedGifs Bulk Video Downloader
Process public RedGifs links, iframe URLs, IDs, or one search query in bulk. Get structured video rows with direct MP4 links, source metadata, quality details, and optional hosted file or ZIP data.
Pricing
$9.00 / 1,000 saved videos
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
124
Total users
6
Monthly active users
14 days ago
Last modified
Categories
Share
📥 RedGifs bulk video downloader
For developers, researchers, and media teams who need public RedGifs videos in a usable dataset, this Actor turns watch URLs, iframe URLs, raw IDs, or one search query into structured rows. Each saved row can include direct MP4 links, source identity, quality details, and public video metadata. This gives you a repeatable way to review, export, or use video links in an Apify workflow.
- Collect public links and metadata in a script with RedGifs downloader for GitHub.
- Turn a known public link or ID into one structured row with Download RedGifs from link.
- Choose an available format with sound when needed with RedGifs video downloader with sound.
- Pick a preferred source quality for each saved video with RedGifs video downloader HD.
- Find public videos from one query and export their rows with RedGifs scraper search export.
- Review hosted file details for a saved public video with Download RedGifs videos files.
📊 RedGifs video data
What you get
Each saved row represents one successfully resolved public RedGifs video. It can include the video ID, canonical and source URLs, title, description, duration, dimensions, audio flag, tags, niches, sexuality labels, thumbnails, poster, creator name, verification flag, views, likes, and publication data.
The row also shows whether it came from a direct target or search, the target type, the submitted target or search position, the requested and selected quality, the reason for the selection, the selected source link, and all available MP4 formats. Optional file and zipFile objects contain hosted file details when those fields are present.
First match only
If the same public video appears again through another URL, ID, or search result, the Actor saves the first eligible occurrence and ignores later copies. The saved row keeps the target or search context from that first match.
You can open the dataset in Apify, export it as JSON, CSV, Excel, XML, RSS, or HTML, call it from the Apify API, schedule recurring runs, or connect the output to webhooks and downstream tools.
▶️ Run a RedGifs batch
Steps
- Add public RedGifs watch URLs, iframe URLs, or raw video IDs in RedGifs URLs or IDs.
- Add one optional Search query. Use a separate run for each search query.
- Choose Preferred quality:
best,hd,sd, orsilent. - Set Maximum results to limit the total number of saved videos. Leave it empty to save all available results until the sources are exhausted.
- Start the Actor, open the output dataset, and use
directVideoUrlfor the source link ordownloadUrlfor the row's best download link.
Only public, reachable RedGifs media is in scope. Private, deleted, unavailable, and login-only media is outside the product.
⚙️ Input
Input fields
| Field | Type | What it does |
|---|---|---|
targets | array of strings | Adds one public RedGifs watch URL, iframe URL, or raw video ID per row. |
searchQuery | string | Finds matching public videos with one query for the run. Use a separate run for each query. |
preferredQuality | string | Chooses best, hd, sd, or silent. If the preferred quality is unavailable, the output explains the available choice. |
maxItems | integer | Limits total saved results across direct targets and search. Leave it empty to process all available results until the sources are exhausted. |
Example input
This is the public input used by a successful current-beta default-input run.
{"targets": ["https://www.redgifs.com/watch/seashellverifiablenorwaylobster","welllitfavorablefulmar"],"searchQuery": "funny","preferredQuality": "best","maxItems": 10}
The sample target list and search query are useful for a first run. Clear Maximum results when you want all available results until the sources are exhausted.
🧾 Output
Open the output dataset to inspect saved rows. Direct-target and search rows share the same base shape. Rows with hosted files add file, and rows with a hosted ZIP add both file and zipFile.
Dataset access
| Field | Type | What it does |
|---|---|---|
results | link string | Opens the saved video rows in the default dataset overview. |
Direct-link and search row
Nullable fields can be empty when RedGifs does not expose the value.
| Field | Type | What it does |
|---|---|---|
id | string | Stable RedGifs video ID. |
rowOrigin | string | Says whether the first saved match came from a direct target or a search result. |
input | string or null | Original URL or ID submitted for a direct target, or null for a search result. |
inputIndex | integer or null | Zero-based position of the direct target, or null for a search result. |
searchQuery | string or null | Search text that produced the row, or null for a direct target. |
searchPosition | integer or null | One-based position in search results, or null for a direct target. |
targetType | string | Normalized source type: watchUrl, iframeUrl, rawId, or searchResult. |
canonicalUrl | string | Canonical public RedGifs watch page. |
sourceUrl | string | Source URL used to fetch the public video data. |
title | string or null | Video title when RedGifs provides one. |
description | string or null | Public video description when available. |
durationSeconds | number or null | Video duration in seconds. |
width | integer or null | Video width in pixels. |
height | integer or null | Video height in pixels. |
hasAudio | boolean or null | Whether RedGifs marks the video as having audio. |
tags | array of strings | Public RedGifs tags. |
niches | array of strings | Public RedGifs niche labels. |
sexuality | array of strings | Public RedGifs sexuality labels. |
thumbnailUrl | string or null | Thumbnail image URL when available. |
posterUrl | string or null | Poster image URL when available. |
requestedQuality | string | Quality preference from the input. |
selectedQuality | string | Quality used for the direct video link. |
selectedQualityReason | string | Plain-English reason for the selected quality or fallback. |
downloadUrl | string | Best source link for this row. |
directVideoUrl | string | Direct source-hosted RedGifs MP4 link. |
availableFormats | array of objects | All source-exposed MP4 formats for the video. |
availableFormats[].quality | string | Quality label for the format: hd, sd, or silent. |
availableFormats[].url | string | Direct MP4 URL for the format. |
availableFormats[].mimeType | string | Media type for the format. |
userName | string or null | Public RedGifs username when available. |
verified | boolean or null | Whether RedGifs marks the user as verified. |
views | integer or null | Public view count when available. |
likes | integer or null | Public like count when available. |
published | boolean or null | Whether RedGifs marks the video as published. |
createdAt | string or null | Source creation timestamp when available. |
Direct-link example
This is a genuine row from current beta build 1.0.2. It shows a raw ID resolved to a public video with source MP4 links.
{"rowOrigin": "directTarget","inputIndex": 0,"input": "potablepassionatebovine","searchQuery": null,"searchPosition": null,"targetType": "rawId","id": "potablepassionatebovine","canonicalUrl": "https://www.redgifs.com/watch/potablepassionatebovine","sourceUrl": "https://www.redgifs.com/ifr/potablepassionatebovine","title": "Barely Legal Big Tits Busty College Exposed Nude Nudes Pawg TikTok White Girl Porn GIF by darkshogunate","description": null,"durationSeconds": 60.033,"width": 1080,"height": 1920,"hasAudio": true,"tags": ["Barely Legal","Big Tits","Busty","College","Exposed","Nude","Nudes","Pawg","TikTok","White Girl"],"niches": ["bigger-than-you-thought","curvy-chicks","pale-girls","phat-ass-white-girls","tik-tok"],"sexuality": ["straight"],"thumbnailUrl": "https://media.redgifs.com/PotablePassionateBovine-mobile.jpg","posterUrl": "https://media.redgifs.com/PotablePassionateBovine-poster.jpg","selectedQuality": "hd","requestedQuality": "best","selectedQualityReason": "Best available selected HD.","downloadUrl": "https://media.redgifs.com/PotablePassionateBovine.mp4","directVideoUrl": "https://media.redgifs.com/PotablePassionateBovine.mp4","availableFormats": [{"quality": "hd","url": "https://media.redgifs.com/PotablePassionateBovine.mp4","mimeType": "video/mp4"},{"quality": "sd","url": "https://media.redgifs.com/PotablePassionateBovine-mobile.mp4","mimeType": "video/mp4"},{"quality": "silent","url": "https://media.redgifs.com/PotablePassionateBovine-silent.mp4","mimeType": "video/mp4"}],"userName": "darkshogunate","verified": false,"views": 309438,"likes": 1821,"published": true,"createdAt": "2026-09-12T09:06:00.000Z"}
Hosted-file row
When a row has hosted file details, its complete shape includes every base field above plus these fields.
| Field | Type | What it does |
|---|---|---|
id | string | Stable RedGifs video ID. |
rowOrigin | string | Says whether the first saved match came from a direct target or a search result. |
input | string or null | Original URL or ID submitted for a direct target, or null for a search result. |
inputIndex | integer or null | Zero-based position of the direct target, or null for a search result. |
searchQuery | string or null | Search text that produced the row, or null for a direct target. |
searchPosition | integer or null | One-based position in search results, or null for a direct target. |
targetType | string | Normalized source type: watchUrl, iframeUrl, rawId, or searchResult. |
canonicalUrl | string | Canonical public RedGifs watch page. |
sourceUrl | string | Source URL used to fetch the public video data. |
title | string or null | Video title when RedGifs provides one. |
description | string or null | Public video description when available. |
durationSeconds | number or null | Video duration in seconds. |
width | integer or null | Video width in pixels. |
height | integer or null | Video height in pixels. |
hasAudio | boolean or null | Whether RedGifs marks the video as having audio. |
tags | array of strings | Public RedGifs tags. |
niches | array of strings | Public RedGifs niche labels. |
sexuality | array of strings | Public RedGifs sexuality labels. |
thumbnailUrl | string or null | Thumbnail image URL when available. |
posterUrl | string or null | Poster image URL when available. |
requestedQuality | string | Quality preference from the input. |
selectedQuality | string | Quality used for the direct video link. |
selectedQualityReason | string | Plain-English reason for the selected quality or fallback. |
downloadUrl | string | Best link for the row. With a hosted file, this is the hosted file link. |
directVideoUrl | string | Direct source-hosted RedGifs MP4 link. |
availableFormats | array of objects | All source-exposed MP4 formats for the video. |
availableFormats[].quality | string | Quality label for the format: hd, sd, or silent. |
availableFormats[].url | string | Direct MP4 URL for the format. |
availableFormats[].mimeType | string | Media type for the format. |
userName | string or null | Public RedGifs username when available. |
verified | boolean or null | Whether RedGifs marks the user as verified. |
views | integer or null | Public view count when available. |
likes | integer or null | Public like count when available. |
published | boolean or null | Whether RedGifs marks the video as published. |
createdAt | string or null | Source creation timestamp when available. |
file | object | Hosted file details for this row. |
file.storageKey | string | Apify storage key for the hosted file. |
file.downloadUrl | string | Link for downloading the hosted file. |
file.contentType | string or null | Media type of the hosted file when available. |
file.fileSizeBytes | integer | Hosted file size in bytes. |
Hosted-file example
This is a genuine row from current beta build 1.0.2 with hosted file details.
{"rowOrigin": "directTarget","inputIndex": 0,"input": "https://www.redgifs.com/watch/seashellverifiablenorwaylobster","searchQuery": null,"searchPosition": null,"targetType": "watchUrl","id": "seashellverifiablenorwaylobster","canonicalUrl": "https://www.redgifs.com/watch/seashellverifiablenorwaylobster","sourceUrl": "https://www.redgifs.com/ifr/seashellverifiablenorwaylobster","title": "Amateur OnlyFans Teen Porn GIF by embermoccha","description": null,"durationSeconds": 6.433,"width": 1080,"height": 2068,"hasAudio": true,"tags": ["Amateur","OnlyFans","Teen"],"niches": [],"sexuality": ["straight"],"thumbnailUrl": "https://media.redgifs.com/SeashellVerifiableNorwaylobster-mobile.jpg","posterUrl": "https://media.redgifs.com/SeashellVerifiableNorwaylobster-poster.jpg","selectedQuality": "hd","requestedQuality": "best","selectedQualityReason": "Best available selected HD.","downloadUrl": "https://api.apify.com/v2/key-value-stores/fr59vXQYYCj9yFHli/records/redgifs-seashellverifiablenorwaylobster-hd.mp4?disableContentDisposition=true","directVideoUrl": "https://media.redgifs.com/SeashellVerifiableNorwaylobster.mp4","availableFormats": [{"quality": "hd","url": "https://media.redgifs.com/SeashellVerifiableNorwaylobster.mp4","mimeType": "video/mp4"},{"quality": "sd","url": "https://media.redgifs.com/SeashellVerifiableNorwaylobster-mobile.mp4","mimeType": "video/mp4"},{"quality": "silent","url": "https://media.redgifs.com/SeashellVerifiableNorwaylobster-silent.mp4","mimeType": "video/mp4"}],"userName": "embermoccha","verified": false,"views": 3096,"likes": 0,"published": true,"createdAt": "2026-05-09T14:22:03.000Z","file": {"storageKey": "redgifs-seashellverifiablenorwaylobster-hd.mp4","downloadUrl": "https://api.apify.com/v2/key-value-stores/fr59vXQYYCj9yFHli/records/redgifs-seashellverifiablenorwaylobster-hd.mp4?disableContentDisposition=true","contentType": "video/mp4","fileSizeBytes": 5110596}}
Hosted ZIP row
When a hosted ZIP is present, its complete shape includes every base field, every file field, and these additional fields.
| Field | Type | What it does |
|---|---|---|
id | string | Stable RedGifs video ID. |
rowOrigin | string | Says whether the first saved match came from a direct target or a search result. |
input | string or null | Original URL or ID submitted for a direct target, or null for a search result. |
inputIndex | integer or null | Zero-based position of the direct target, or null for a search result. |
searchQuery | string or null | Search text that produced the row, or null for a direct target. |
searchPosition | integer or null | One-based position in search results, or null for a direct target. |
targetType | string | Normalized source type: watchUrl, iframeUrl, rawId, or searchResult. |
canonicalUrl | string | Canonical public RedGifs watch page. |
sourceUrl | string | Source URL used to fetch the public video data. |
title | string or null | Video title when RedGifs provides one. |
description | string or null | Public video description when available. |
durationSeconds | number or null | Video duration in seconds. |
width | integer or null | Video width in pixels. |
height | integer or null | Video height in pixels. |
hasAudio | boolean or null | Whether RedGifs marks the video as having audio. |
tags | array of strings | Public RedGifs tags. |
niches | array of strings | Public RedGifs niche labels. |
sexuality | array of strings | Public RedGifs sexuality labels. |
thumbnailUrl | string or null | Thumbnail image URL when available. |
posterUrl | string or null | Poster image URL when available. |
requestedQuality | string | Quality preference from the input. |
selectedQuality | string | Quality used for the direct video link. |
selectedQualityReason | string | Plain-English reason for the selected quality or fallback. |
downloadUrl | string | Best link for the row. With a hosted file, this is the hosted file link. |
directVideoUrl | string | Direct source-hosted RedGifs MP4 link. |
availableFormats | array of objects | All source-exposed MP4 formats for the video. |
availableFormats[].quality | string | Quality label for the format: hd, sd, or silent. |
availableFormats[].url | string | Direct MP4 URL for the format. |
availableFormats[].mimeType | string | Media type for the format. |
userName | string or null | Public RedGifs username when available. |
verified | boolean or null | Whether RedGifs marks the user as verified. |
views | integer or null | Public view count when available. |
likes | integer or null | Public like count when available. |
published | boolean or null | Whether RedGifs marks the video as published. |
createdAt | string or null | Source creation timestamp when available. |
file | object | Hosted file details for this row. |
file.storageKey | string | Apify storage key for the hosted file. |
file.downloadUrl | string | Link for downloading the hosted file. |
file.contentType | string or null | Media type of the hosted file when available. |
file.fileSizeBytes | integer | Hosted file size in bytes. |
zipFile | object | Hosted ZIP details for the run. |
zipFile.storageKey | string | Apify storage key for the ZIP. |
zipFile.downloadUrl | string | Link for downloading the ZIP. |
zipFile.fileSizeBytes | integer or null | ZIP size in bytes when available. |
Hosted ZIP example
This is a genuine row from current beta build 1.0.2 with hosted file and ZIP details.
{"rowOrigin": "directTarget","inputIndex": 0,"input": "https://www.redgifs.com/watch/seashellverifiablenorwaylobster","searchQuery": null,"searchPosition": null,"targetType": "watchUrl","id": "seashellverifiablenorwaylobster","canonicalUrl": "https://www.redgifs.com/watch/seashellverifiablenorwaylobster","sourceUrl": "https://www.redgifs.com/ifr/seashellverifiablenorwaylobster","title": "Amateur OnlyFans Teen Porn GIF by embermoccha","description": null,"durationSeconds": 6.433,"width": 1080,"height": 2068,"hasAudio": true,"tags": ["Amateur","OnlyFans","Teen"],"niches": [],"sexuality": ["straight"],"thumbnailUrl": "https://media.redgifs.com/SeashellVerifiableNorwaylobster-mobile.jpg","posterUrl": "https://media.redgifs.com/SeashellVerifiableNorwaylobster-poster.jpg","selectedQuality": "hd","requestedQuality": "best","selectedQualityReason": "Best available selected HD.","downloadUrl": "https://api.apify.com/v2/key-value-stores/agxBP1siqLlTwn7tg/records/redgifs-seashellverifiablenorwaylobster-hd.mp4?disableContentDisposition=true","directVideoUrl": "https://media.redgifs.com/SeashellVerifiableNorwaylobster.mp4","availableFormats": [{"quality": "hd","url": "https://media.redgifs.com/SeashellVerifiableNorwaylobster.mp4","mimeType": "video/mp4"},{"quality": "sd","url": "https://media.redgifs.com/SeashellVerifiableNorwaylobster-mobile.mp4","mimeType": "video/mp4"},{"quality": "silent","url": "https://media.redgifs.com/SeashellVerifiableNorwaylobster-silent.mp4","mimeType": "video/mp4"}],"userName": "embermoccha","verified": false,"views": 3096,"likes": 0,"published": true,"createdAt": "2026-05-09T14:22:03.000Z","file": {"storageKey": "redgifs-seashellverifiablenorwaylobster-hd.mp4","downloadUrl": "https://api.apify.com/v2/key-value-stores/agxBP1siqLlTwn7tg/records/redgifs-seashellverifiablenorwaylobster-hd.mp4?disableContentDisposition=true","contentType": "video/mp4","fileSizeBytes": 5110596},"zipFile": {"storageKey": "redgifs-videos-1789457349980.zip","downloadUrl": "https://api.apify.com/v2/key-value-stores/agxBP1siqLlTwn7tg/records/redgifs-videos-1789457349980.zip?disableContentDisposition=true","fileSizeBytes": null}}
💳 Pricing
Charge
This Actor uses pay-per-event pricing. You pay $0.009 for each public video saved to the dataset. A run that saves no video does not create a video charge.
Use Maximum results to set a smaller result count for a test or to limit spend.
🔌 Integrations
Ways to use the data
- Start runs and read output datasets with the Apify API.
- Schedule repeat runs for known targets or one search query.
- Export the dataset as JSON, CSV, Excel, XML, RSS, or HTML.
- Send run output to webhooks or downstream tools.
❓ FAQ
What happens when the same RedGifs video appears more than once?
The Actor saves the first eligible occurrence and ignores later copies. The row keeps the URL, ID, or search context from that first match.
Can I use a watch URL, iframe URL, or raw ID?
Yes. Add one of those public target types in each targets row. You can combine target types in one run.
Can I use direct targets and a search query together?
Yes. Add one search query with direct targets. Use a separate run for each search query.
What does Maximum results control?
It limits total saved results from direct targets and the search query. Leave it empty to process all available results until the sources are exhausted.
What happens if my preferred quality is not available?
The Actor uses another available quality and writes the reason in selectedQualityReason. availableFormats lists the source formats it found.
What does each download link point to?
directVideoUrl is the source-hosted RedGifs MP4 link. In a standard row, downloadUrl is the best source link. When hosted file details are present, downloadUrl and file.downloadUrl point to the hosted file.
Why is a file or ZIP field missing?
file and zipFile are optional objects. They appear only in rows that include those hosted details. Standard rows still include the source links and metadata.
Do I need a RedGifs account?
No RedGifs account is needed for public videos. The Actor does not bypass private, deleted, unavailable, or login-only media.
Can I use private or deleted videos?
No. The Actor is for public, reachable RedGifs media only.
📝 Changelog
v1.0 (13-09-2026)
- Remove the run timestamp from saved video rows.
- Keep normal startup logs focused on the run while preserving warnings and results.
- Use the public Actor link in the final run log.
v0.2 (10-09-2026)
- Process all available results when Maximum results is empty.
- Include titles for direct video targets when RedGifs provides them.
- Retry temporary RedGifs access failures.
- Open saved rows in the RedGifs videos overview.
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 🫡
🔗 Related Actors
- EroThots Video Downloader - Resolve known public EroThots video URLs or IDs into direct MP4 links and quality details.
- XNXX Video Downloader - Get direct MP4 or HLS links and metadata from known public XNXX URLs or IDs.
- SpankBang Video Downloader - Collect direct MP4 or HLS links and source details from public SpankBang watch URLs.
- PornTrex Downloader - Get source-hosted media variants and metadata from public PornTrex watch pages.
- RedTube Video Downloader - Resolve public RedTube video links or IDs into direct media links and video details.
Made with ❤️ by Maxime Dupré