Rumble Scraper
Under maintenancePricing
from $1.35 / 1,000 videos
Rumble Scraper
Under maintenanceCollect public Rumble videos, channel profiles, and playlists from searches or links. Get available comments, captions, subtitle files, and video downloads for research and content review.
Pricing
from $1.35 / 1,000 videos
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
🎬 Collect Rumble videos, channels, and playlists
Rumble Scraper helps researchers, content teams, and developers collect public Rumble data in a dataset. Search by keyword or submit links to get video details, channel profiles, or playlists. Video rows can include comments, media download links, and existing captions with subtitle files, so you can review content and use the data in your own work.
- Find videos about a topic with Rumble video search.
- Find creators by keyword with Rumble channel search.
- Check public creator details with a Rumble channel profile scraper.
- Build a video list from a creator page with a Rumble channel videos scraper.
- List a creator's playlists with a Rumble channel playlists scraper.
- Review Rumble trending videos for content research.
- Collect Rumble editor picks for a list of selected videos.
📦 Public Rumble data you can collect
Each run returns one type of row: video, channel, or playlist. Video discovery supports keyword searches, video links, channel links, playlist links, trending videos, and editor picks. Channel discovery supports keywords and channel or user links. Playlist discovery supports channel links and playlist links.
Video rows can include titles, descriptions, dates, publishers, tags, categories, counts, comments and replies, reported revenue, media files, and captions. Channel rows can include images, counts, verification state, join date, social links, and public email addresses. Playlist rows include available playlist details and video totals.
Optional details depend on what Rumble provides. Missing details can be absent or empty. A video can be saved even when it has no captions or download links. The Actor reads public content without a customer login. It does not open private or paid-only content, create captions from audio, translate text, or keep a history of changes.
🚀 Start a Rumble collection
- Choose Videos, Channels, or Playlists.
- Choose how to find that content.
- Enter keywords or links if that choice needs them.
- Set a result limit and, for videos, choose caption languages.
- Start the Actor and open the dataset. Export it as JSON or CSV, or read it through the Apify API.
Only the fields for the selected choices are used. Other form fields remain visible but are ignored. One run can use several keywords or links with the same settings. Repeated submitted values are processed once. A Rumble object is saved once per run by its ID; later matches do not merge more details into the saved row. Unavailable inputs are left out while other inputs can still be processed.
⚙️ Input
Input fields
| Field | Type | What it does |
|---|---|---|
maxItems | integer | Run-wide row limit, not a limit per keyword or link. Omit it or use 0 for no row cap. Must be a whole number of 0 or more. The form prefills 6; this is not a schema default. |
resultType | string | Required: videos, channels, or playlists. The form prefills videos; there is no schema default. |
videoSource | string | Required for Videos: search, video, channel, playlist, trending, or editorPicks. The form prefills search; there is no schema default. Other row types ignore it. |
searchOrder | string | Video keyword search order: relevance, views, reactions, or uploadDate. Defaults to relevance. Ignored for other choices. |
videoUrls | array | Public Rumble video, Short, or embed links for Videos with videoSource: "video". Accepts URL strings or objects with a url field. Omission means an empty list. |
captionLanguageChoice | string | For Videos, all gets all available caption tracks. preferred gets only exact codes in captionLanguages. Defaults to all. Ignored for other row types. |
captionLanguages | array of strings | Exact caption codes used with preferred. Omission means an empty list and no selected tracks. Codes such as en and en-auto are distinct. Missing codes are not replaced with another language. |
channelSource | string | Required for Channels: search or channel. No default. Other row types ignore it. |
playlistSource | string | Required for Playlists: channel or playlist. No default. Other row types ignore it. |
keywords | array of strings | Search phrases for Videos or Channels with search selected. Each entry is one phrase. Omission means an empty list. The form prefills ["science"]; there is no schema default. |
channelUrls | array | Public Rumble /c/ or /user/ links for channel discovery. Returns videos, profiles, or playlists based on resultType. Accepts URL strings or objects with a url field. Omission means an empty list. |
playlistUrls | array | Public Rumble /playlists/ links for playlist discovery. Returns videos or playlist details based on resultType. Accepts URL strings or objects with a url field. Omission means an empty list. |
Except for trending and editor picks, the selected discovery choice needs at least one keyword or link. The result limit does not promise that many matches. Runs can also stop at the charge limit or when the available content ends.
This input comes from the successful default-input run:
{"maxItems": 6,"resultType": "videos","videoSource": "search","searchOrder": "relevance","captionLanguageChoice": "all","keywords": ["science"]}
🧾 Output
Output fields
Each table describes one dataset row shape. Nested paths use [] for array members. Counts, dates, and other optional details appear only when available. An empty array means no entries were returned for that field.
Video rows
| Field | Type | What it does |
|---|---|---|
rowType | string | video. |
id | string | Rumble video ID. |
url | string | Public video link. |
title | string | Video title. |
description | string | Public video description. |
thumbnailUrl | string | Thumbnail image link. |
durationSeconds | number | Video length in seconds. |
publishedAt | string | Publication date stated by Rumble. |
publisher | object | Channel or user that published the video. |
publisher.id | string | Publisher ID. |
publisher.name | string | Publisher name. |
publisher.url | string | Publisher profile link. |
tags | array of strings | Video tags. |
categories | array of strings | Video categories. |
views | integer | View total. |
upvotes | integer | Upvote total. |
downvotes | integer | Downvote total. |
commentCount | integer | Full comment total stated by Rumble; it can exceed the returned comments. |
videoFormat | string | Video format stated by Rumble. |
liveState | string | Live-stream state stated by Rumble. |
comments | array of objects | Available public comments. |
comments[].id | string | Comment ID. |
comments[].text | string | Comment text. |
comments[].author | object | Public comment author. |
comments[].author.name | string | Author name. |
comments[].author.url | string | Author profile link. |
comments[].publishedAt | string | Comment publication date. |
comments[].replies | array of objects | Available replies to the comment. |
comments[].replies[].id | string | Reply ID. |
comments[].replies[].text | string | Reply text. |
comments[].replies[].author | object | Public reply author. |
comments[].replies[].author.name | string | Reply author name. |
comments[].replies[].author.url | string | Reply author profile link. |
comments[].replies[].publishedAt | string | Reply publication date. |
revenue | array of objects | Revenue amounts reported by Rumble, when available. |
revenue[].value | number | Reported amount. |
revenue[].unit | string | Reported currency or other unit. |
downloads | array of objects | Available video files. |
downloads[].url | string | Video download link. |
downloads[].quality | string | Media quality. |
downloads[].format | string | Media format. |
captionLanguages | array of strings | All offered caption codes, including tracks not selected for extraction. |
captions | array of objects | Existing caption tracks that were extracted. |
captions[].language | string | Caption code. |
captions[].text | string | Full caption text. |
captions[].segments | array of objects | Caption text with video timing. |
captions[].segments[].startSeconds | number | Segment start in seconds from the video start. |
captions[].segments[].endSeconds | number | Segment end in seconds from the video start. |
captions[].segments[].text | string | Segment text. |
captions[].srtUrl | string | SRT subtitle file link. |
captions[].vttUrl | string | VTT subtitle file link. |
This genuine video row is shortened. The string "..." marks omitted text, comments, and timed segments.
{"rowType": "video","id": "448572544","url": "https://rumble.com/v7h8tpy-table-of-titans-racket-science.html","title": "Table of Titans: Racket Science","description": "...","thumbnailUrl": "https://hugh.cdn.rumble.cloud/video/fwe2/1a/s8/1/2/v/h/9/2vh9A.qR4e-small-Table-of-Titans-Racket-Scie..jpg","durationSeconds": 11852,"publishedAt": "2026-10-22T19:04:30+00:00","publisher": {"id": "35333795","name": "Hulkanator","url": "https://rumble.com/user/Hulkanator"},"tags": [],"liveState": "not_live","revenue": [],"downloads": [],"categories": ["News","Politics"],"views": 4953,"upvotes": 187,"downvotes": 1,"captionLanguages": ["en-auto"],"comments": "...","commentCount": 6,"captions": [{"language": "en-auto","text": "...","segments": "...","srtUrl": "https://api.apify.com/v2/key-value-stores/Gjz5cn4lYOXduTJGN/records/caption-448572544-656e2d6175746f.srt?signature=YCy8lnwQyfGmKbM508TK","vttUrl": "https://api.apify.com/v2/key-value-stores/Gjz5cn4lYOXduTJGN/records/caption-448572544-656e2d6175746f.vtt?signature=1v1hPfyvTWB3MvmeAzGQx"}]}
Channel rows
| Field | Type | What it does |
|---|---|---|
rowType | string | channel. |
id | string | Rumble channel or user ID. |
url | string | Public profile link. |
title | string | Profile name. |
description | string | Public profile description. |
thumbnailUrl | string | Profile image link. |
bannerUrl | string | Banner image link. |
followers | integer | Follower total. |
subscribers | integer | Subscriber total. |
videoCount | integer | Full video total stated by Rumble. |
views | integer | Channel view total. |
isVerified | boolean | Whether Rumble marks the profile as verified. |
accountType | string | Account type stated by Rumble. |
joinedAt | string | Profile join date. |
socialLinks | array of strings | Public social links stated in the profile. |
emails | array of strings | Public email addresses stated in the profile. |
This is a complete channel row from a successful run:
{"rowType": "channel","id": "53626741","url": "https://rumble.com/user/DIYSassySkinLAB","title": "DIYSassySkinLAB","description": "Hello friends!\nI started my DIY and self-love journey at 53. My outer appearance didn't reflect what I felt inside. I felt so young at heart - still filled with laughter and playfulness. However, the woman in the mirror was no longer recognizable. I didn't see me. I saw a sad and aging woman.\nI started researching and found the beautiful, DiY community.\nIt took a few months of watching many encouraging influencers, listening to knowledgeable doctors, and studying anatomy and aesthetic medicine before I was comfortable enough to begin my own process of aging backwards. I never expected the results I began seeing. More shocking still were the changes I began feeling about myself and life. It was as if my inner glow was shining outwards. I had discovered me again!\nI want each man and woman to feel the empowerment that comes with our ability to make the changes we desire. Thank you all for following my journey and allowing me to follow yours. Much love Stacy Let's AGE Backwards! L.A.B.","thumbnailUrl": "https://hugh.cdn.rumble.cloud/video/z0/1/D/K/m/1DKmd.asF.4-vxenp-r4ut56.jpeg","bannerUrl": "https://hugh.cdn.rumble.cloud/video/z15/1/D/K/m/1DKmd.baa.2.jpeg","followers": 3502,"subscribers": 0,"videoCount": 439,"views": 396444,"isVerified": false,"accountType": "user","joinedAt": "2021-12-28","socialLinks": ["https://facebook.com/share/nTLRQP3qiXr913FZ/"],"emails": []}
Playlist rows
| Field | Type | What it does |
|---|---|---|
rowType | string | playlist. |
id | string | Rumble playlist ID. |
url | string | Public playlist link. |
title | string | Playlist title. |
description | string | Public playlist description. |
thumbnailUrl | string | Playlist image link. |
publishedAt | string | Playlist creation date. |
updatedAt | string | Playlist update date. |
publisher | object | Channel or user that owns the playlist. |
publisher.id | string | Publisher ID. |
publisher.name | string | Publisher name. |
publisher.url | string | Publisher profile link. |
videoCount | integer | Full video total stated by Rumble. |
This is a complete playlist row from a successful run:
{"rowType": "playlist","id": "bnbrvSZWYQw","url": "https://rumble.com/playlists/bnbrvSZWYQw","title": "WimpoleFillers Product Demos","description": "","thumbnailUrl": "https://hugh.cdn.rumble.cloud/video/fww1/3a/s8/1/W/H/F/7/WHF7A.oq1b-small-Correcting-My-Cheek-and-Ant..jpg","publishedAt": "2026-08-02T02:49:16+00:00","updatedAt": "2026-10-17T19:01:30+00:00","publisher": {"id": "53626741","name": "DIYSassySkinLAB","url": "https://rumble.com/user/DIYSassySkinLAB"},"videoCount": 6}
💳 Pricing
The configured charge is $0.00135 per saved video, channel profile, or playlist, or $1.35 per 1,000. Each run returns and charges for its selected row type. Available details, comments, downloads, and captions are part of the video charge; there is no separate event for them.
There is no Actor-owned setup charge or charge for a lookup that saves no row. Duplicate matches skipped within a run do not add a row charge. Apify platform usage costs may also apply. Check the Pricing tab for the current hosted price and set a charge limit before a large run.
🔌 Integrations
Use the Apify API to start runs and read dataset rows from your own code. Use Apify schedules for repeat runs and webhooks to notify your workflow when a run finishes. JSON exports keep nested comments and captions together; CSV can be useful for flat fields such as names, links, and counts.
❓ FAQ
Why is a caption language missing from the extracted tracks?
With preferred, only exact codes in captionLanguages are selected. Run with all first, then copy codes from the returned captionLanguages. For example, en does not select en-auto. The Actor does not replace missing selections or create captions from audio.
Can a video have no captions or download links?
Yes. These depend on what is available for that public video. A valid video row can still contain its title, link, publisher, and other available details. Subtitle files are made from existing captions.
How do I get the videos in a playlist?
Choose resultType: "videos" and videoSource: "playlist", then supply playlistUrls. Choose Playlists instead when you want playlist details rather than its video rows.
Can I get all three row types in one run?
No. Each run returns only its selected resultType. Start separate runs for videos, channels, and playlists.
Will the Actor return every comment and every optional field?
It returns available public details. The comment total can be larger than the comments returned. Missing fields do not prove that a value is zero. The Actor does not guarantee access to every object or complete coverage of optional details.
Is this a Rumble API or a transcript generator?
You can call this Actor through the Apify API. It is not an official Rumble API. It reads public Rumble data and existing captions; it does not generate transcripts, summaries, or translations.
📝 Changelog
v0.0 (27-10-2026)
- 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
- Rumble Video Downloader returns playable media links for known Rumble video, Short, or embed URLs.
- YouTube Channel Search Scraper finds public YouTube channels by keyword.
- YouTube Channel Statistics Scraper collects channel counts for creator research on YouTube.
- YouTube Channel Scraper collects public YouTube channel details for a creator list.
- YouTube Transcript API extracts existing captions from known YouTube videos.
Made with ❤️ by Maxime Dupré