PeerTube Instance Harvester avatar

PeerTube Instance Harvester

Pricing

from $0.35 / 1,000 videos

Go to Apify Store
PeerTube Instance Harvester

PeerTube Instance Harvester

Point at any PeerTube instance and export its videos, channels and instance metadata from the public /api/v1 REST API. Federated, self-hosted YouTube alternative — one actor over thousands of instances.

Pricing

from $0.35 / 1,000 videos

Rating

0.0

(0)

Developer

Datamule

Datamule

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Share

Point at any PeerTube instance and export its videos, channels and instance metadata to a structured dataset — from the public /api/v1 REST API.

PeerTube is the ActivityPub-federated, self-hosted alternative to YouTube. Every instance — framatube.org, makertube.net, tube.tchncs.de and thousands more — exposes the identical public /api/v1 REST API with no auth for public content. This one actor works against all of them: no per-instance scraper, no host enumeration. Give it an instance URL and it turns that instance's video timeline, search results, channel directory, or server metadata into clean rows.

Why this actor

Most "PeerTube" tools on the market clone a single instance or scrape the web UI. This is a generic runner over the protocol — the same field is read by key presence on every instance, so an instance that omits an optional field yields null for that column instead of breaking. One actor, thousands of federated video sources.

It also captures federation correctly: a video listed on framatube.org may actually live on tube.tchncs.de. The real origin host is captured on every row, alongside the instance you queried (_source).

Modes

The run mode is chosen from your input:

ModeHow to triggerWhat you get
Videos (default)mode: videos (or just an instance URL)One row per video from /api/v1/videos. Add a search term to use /api/v1/search/videos. Sort with sort (default newest first).
Channelsmode: channelsOne row per channel from /api/v1/video-channels (name, host, followers, owner account).
Discoverymode: discovery or listOnly: trueOne row describing the instance: name, server version, signup policy, short description, total video count. A cheap way to inspect an instance.

Input

FieldTypeDescription
instanceUrlstring (required)Root of a PeerTube instance, e.g. https://framatube.org. The /api/v1 path is appended for you.
modestringvideos (default), channels, or discovery.
searchstringVideos mode: free-text search across the instance's federated index.
sortstringVideos mode: sort order (default -publishedAt). Also accepts -views, -likes, -trending, name, …
includeNsfwbooleanVideos mode: include NSFW videos (default false).
listOnlybooleanShortcut for discovery mode.
maxRecordsintegerGlobal cap on rows emitted (deterministic sample).
bearerstring (secret)Optional token for a private / rate-limited instance. Never required for public content, never logged.
extraHeadersobjectOptional extra HTTP headers for gated instances.

Example — newest videos from Framatube

{ "instanceUrl": "https://framatube.org", "mode": "videos", "maxRecords": 50 }

Example — search a large instance

{ "instanceUrl": "https://makertube.net", "search": "blender", "maxRecords": 100 }

Example — inspect an instance cheaply

{ "instanceUrl": "https://tube.tchncs.de", "listOnly": true }

Output

One flat, fully-nullable row per record. Video rows include: id, uuid, shortUUID, name, description, url (canonical watch URL), duration, views, likes, dislikes, nsfw, isLive, publishedAt, originallyPublishedAt, promoted category / licence / language / privacy labels, channelName / channelDisplayName / channelUrl, accountName / accountUrl, host (the real federating instance), thumbnailPath / previewPath / embedPath, plus a lossless _raw object holding the complete original record.

{
"_type": "video",
"_source": "https://framatube.org",
"_mode": "videos",
"name": "Wie fährst du dein Projekt zuverlässig an die Wand?",
"url": "https://tube.tchncs.de/videos/watch/007c7bd1-5860-40f4-9850-e8c57a0867c1",
"duration": 3799,
"views": 4,
"likes": 1,
"category": "Science & Technology",
"language": "German",
"channelDisplayName": "Software Architektur im Stream",
"host": "tube.tchncs.de",
"publishedAt": "2026-07-06T09:00:32.097Z"
}

Pricing

Pay-per-event: one Video event per emitted row (video, channel, or instance record). You only pay for records you receive.

Notes

  • An empty instance or a no-match search returns 0 records and a clean exit.
  • A URL that is not a PeerTube instance (an HTML page, a 404, JSON without the expected shape) fails fast with a clear message — nothing is fabricated.
  • Find instances via the PeerTube instances directory.