PeerTube Scraper: Videos, Channels, Accounts & Search
Pricing
$1.00 / 1,000 result items
PeerTube Scraper: Videos, Channels, Accounts & Search
Scrape any PeerTube instance via the official /api/v1 REST API. Videos, channels, accounts, search - cross-instance federation routing. No browser, no proxies, no auth. Pay only per result item.
Pricing
$1.00 / 1,000 result items
Rating
0.0
(0)
Developer
Perconey
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
What does PeerTube Scraper do?
PeerTube Scraper pulls structured data from any PeerTube instance via the official /api/v1/* REST API. Videos with views, likes/dislikes, duration, embed link, thumbnails. Channels with subscriber counts. Accounts with follower counts. Full-text search. The actor calls the documented public API directly: no browser, no proxies, no cookies, no anti-bot fight. One actor works with every PeerTube-protocol server in the Fediverse: framatube.org, video.blender.org, tilvids.com, peertube.cpy.re, makertube.net, and hundreds more.
Try it instantly: pick getVideos, leave instance as https://framatube.org, click Start. You get the 30 newest Framatube videos (title, duration, views, likes, channel) in under 3 seconds for $0.03.
Why use PeerTube Scraper?
- Federation researchers: Compare video communities across instances. Same channel concept exists on lots of servers with different culture and policies.
- Indie video creators: Find PeerTube instances that match your niche. Use
searchChannelsto discover where your audience lives outside of YouTube / Vimeo. - OSS maintainers: Track talks and demos about your project. Schedule daily
searchVideosruns with your project name. - Trend analysts: Both likes AND dislikes are exposed (unlike YouTube). Compute controversy ratios on educational / political videos.
- Academic researchers: PeerTube is a federated decentralized video platform on ActivityPub - rich material for network science studies.
- YouTube alternatives advocates: Build a discovery layer that surfaces high-quality PeerTube content to mainstream audiences.
How to use PeerTube Scraper
- Open the Input tab.
- Pick an action from the dropdown.
getVideosis the simplest starting point. - Set instance (default
https://framatube.org). To scrape a different server, paste its URL. - For channel / account / video-detail / search actions, fill queries.
- Tune sort (-publishedAt / -views / -likes / -trending) and maxItems (default 30).
- Toggle nsfw off if you want to skip adult content.
- Click Start.
Query format by action
| Action | Query format |
|---|---|
| getVideos | leave empty (uses instance + sort) |
| searchVideos | free-text search query |
| getVideoDetail | video uuid (e.g. 9845e20c-7236-4270-8b69-88530a61f616) or numeric id |
| getChannels | leave empty (uses instance) |
| searchChannels | free-text search query |
| getChannelVideos | name@host (e.g. blender_open_movies@video.blender.org) |
| getAccountProfile | name@host (e.g. framasoft@framatube.org) |
| getAccountVideos | name@host |
Input
| Field | Required | Description |
|---|---|---|
action | yes | Which API call to make. Eight options. |
instance | yes | PeerTube instance URL. Default https://framatube.org. |
queries | sometimes | Required for search / detail / channel / account actions. Empty for the per-instance feeds. |
maxItems | no | Max items per query. Default 30. |
sort | no | -publishedAt (default), -views, -likes, -trending, or publishedAt. |
nsfw | no | Include NSFW content. Default true (passes through with the nsfw flag for downstream filtering). |
Output
Every item carries _type (video / channel / account / error) plus _action and _instance.
{"_type": "video","_action": "getVideos","_instance": "https://framatube.org","id": 65272,"uuid": "9845e20c-7236-4270-8b69-88530a61f616","name": "Why Free Software Matters for Climate Justice","duration": 1284,"views": 12450,"likes": 312,"dislikes": 4,"comments": 27,"publishedAt": "2026-05-10T14:00:00Z","nsfw": false,"isLive": false,"thumbnail_url": "https://framatube.org/lazy-static/thumbnails/...","embed_url": "https://framatube.org/videos/embed/9845e20c-...","url": "https://framatube.org/w/9845e20c-...","channel": { "name": "framasoft", "displayName": "Framasoft", "host": "framatube.org" },"account": { "name": "framasoft", "displayName": "Framasoft", "host": "framatube.org" }}
You can download the dataset in JSON, CSV, XML, Excel, RSS or HTML format from the Output tab.
Data fields
| Type | Key fields |
|---|---|
video | id, uuid, name, description, duration, views, likes, dislikes, comments, publishedAt, nsfw, isLive, category, language, thumbnail_url, embed_url, url, channel, account |
channel | id, name, displayName, host, description, followersCount, followingCount, url, avatar, ownerAccount |
account | id, name, displayName, host, description, followersCount, followingCount, url, avatar |
Pricing
Pay-per-result: $0.001 per item. No flat monthly fee.
Cost examples:
- Daily 30 newest Framatube videos: $0.03
- 1,000 videos from a creator: $1.00
- 50 channels matching a search term: $0.05
- Top-100 most-viewed videos on an instance: $0.10
Tips
- Cross-instance routing is automatic. Write
blender_open_movies@video.blender.organd the actor talks to video.blender.org even if yourinstancefield points to framatube.org. Same pattern as Mastodon / Lemmy. - Likes AND dislikes are exposed. Compute
controversy = min(likes, dislikes) / max(likes, dislikes)to find polarizing content. - Sort options matter. PeerTube does NOT have a "trending" endpoint, but
-trendingas a sort parameter approximates it. - NSFW filtering is client-side. The API does not let you exclude NSFW on the server; the actor passes the flag through and (optionally) filters in-process.
FAQ, disclaimers, support
Is this legal? The actor calls each PeerTube instance's official public REST API with documented endpoints. Public read access is the design intent of the AGPL-licensed PeerTube software. We send a clear User-Agent identifying the actor and honor rate-limit / Retry-After headers.
Will I get rate-limited? PeerTube's per-IP rate limits are generous for read-only traffic and the actor backs off on 429 / Retry-After. For very heavy scraping consider donating to the instance you're hitting most.
Why is getChannelVideos failing for a channel? PeerTube channel records live on the channel's HOME instance. Use the name@host format like blender_open_movies@video.blender.org. The actor auto-routes.
What about live streams? isLive: true videos appear in the feed. The actor returns metadata only - it does not download the stream.
Bug or feature request? Open an Issue on the actor's Issues tab. I usually respond within a day.
Need a scraper for Mastodon, Lemmy, Bluesky, Hacker News, dev.to, arxiv? See my other actors at https://apify.com/perconey.