Rumble Scraper avatar

Rumble Scraper

Under maintenance

Pricing

from $1.35 / 1,000 videos

Go to Apify Store
Rumble Scraper

Rumble Scraper

Under maintenance

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

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

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.

📦 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

  1. Choose Videos, Channels, or Playlists.
  2. Choose how to find that content.
  3. Enter keywords or links if that choice needs them.
  4. Set a result limit and, for videos, choose caption languages.
  5. 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

FieldTypeWhat it does
maxItemsintegerRun-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.
resultTypestringRequired: videos, channels, or playlists. The form prefills videos; there is no schema default.
videoSourcestringRequired for Videos: search, video, channel, playlist, trending, or editorPicks. The form prefills search; there is no schema default. Other row types ignore it.
searchOrderstringVideo keyword search order: relevance, views, reactions, or uploadDate. Defaults to relevance. Ignored for other choices.
videoUrlsarrayPublic 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.
captionLanguageChoicestringFor Videos, all gets all available caption tracks. preferred gets only exact codes in captionLanguages. Defaults to all. Ignored for other row types.
captionLanguagesarray of stringsExact 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.
channelSourcestringRequired for Channels: search or channel. No default. Other row types ignore it.
playlistSourcestringRequired for Playlists: channel or playlist. No default. Other row types ignore it.
keywordsarray of stringsSearch 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.
channelUrlsarrayPublic 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.
playlistUrlsarrayPublic 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

FieldTypeWhat it does
rowTypestringvideo.
idstringRumble video ID.
urlstringPublic video link.
titlestringVideo title.
descriptionstringPublic video description.
thumbnailUrlstringThumbnail image link.
durationSecondsnumberVideo length in seconds.
publishedAtstringPublication date stated by Rumble.
publisherobjectChannel or user that published the video.
publisher.idstringPublisher ID.
publisher.namestringPublisher name.
publisher.urlstringPublisher profile link.
tagsarray of stringsVideo tags.
categoriesarray of stringsVideo categories.
viewsintegerView total.
upvotesintegerUpvote total.
downvotesintegerDownvote total.
commentCountintegerFull comment total stated by Rumble; it can exceed the returned comments.
videoFormatstringVideo format stated by Rumble.
liveStatestringLive-stream state stated by Rumble.
commentsarray of objectsAvailable public comments.
comments[].idstringComment ID.
comments[].textstringComment text.
comments[].authorobjectPublic comment author.
comments[].author.namestringAuthor name.
comments[].author.urlstringAuthor profile link.
comments[].publishedAtstringComment publication date.
comments[].repliesarray of objectsAvailable replies to the comment.
comments[].replies[].idstringReply ID.
comments[].replies[].textstringReply text.
comments[].replies[].authorobjectPublic reply author.
comments[].replies[].author.namestringReply author name.
comments[].replies[].author.urlstringReply author profile link.
comments[].replies[].publishedAtstringReply publication date.
revenuearray of objectsRevenue amounts reported by Rumble, when available.
revenue[].valuenumberReported amount.
revenue[].unitstringReported currency or other unit.
downloadsarray of objectsAvailable video files.
downloads[].urlstringVideo download link.
downloads[].qualitystringMedia quality.
downloads[].formatstringMedia format.
captionLanguagesarray of stringsAll offered caption codes, including tracks not selected for extraction.
captionsarray of objectsExisting caption tracks that were extracted.
captions[].languagestringCaption code.
captions[].textstringFull caption text.
captions[].segmentsarray of objectsCaption text with video timing.
captions[].segments[].startSecondsnumberSegment start in seconds from the video start.
captions[].segments[].endSecondsnumberSegment end in seconds from the video start.
captions[].segments[].textstringSegment text.
captions[].srtUrlstringSRT subtitle file link.
captions[].vttUrlstringVTT 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

FieldTypeWhat it does
rowTypestringchannel.
idstringRumble channel or user ID.
urlstringPublic profile link.
titlestringProfile name.
descriptionstringPublic profile description.
thumbnailUrlstringProfile image link.
bannerUrlstringBanner image link.
followersintegerFollower total.
subscribersintegerSubscriber total.
videoCountintegerFull video total stated by Rumble.
viewsintegerChannel view total.
isVerifiedbooleanWhether Rumble marks the profile as verified.
accountTypestringAccount type stated by Rumble.
joinedAtstringProfile join date.
socialLinksarray of stringsPublic social links stated in the profile.
emailsarray of stringsPublic 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

FieldTypeWhat it does
rowTypestringplaylist.
idstringRumble playlist ID.
urlstringPublic playlist link.
titlestringPlaylist title.
descriptionstringPublic playlist description.
thumbnailUrlstringPlaylist image link.
publishedAtstringPlaylist creation date.
updatedAtstringPlaylist update date.
publisherobjectChannel or user that owns the playlist.
publisher.idstringPublisher ID.
publisher.namestringPublisher name.
publisher.urlstringPublisher profile link.
videoCountintegerFull 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.

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 🫡

Made with ❤️ by Maxime Dupré