PeerTube (SepiaSearch) API
Free PeerTube search API with no key: search videos across the federated PeerTube network via SepiaSearch, with duration, channel and licence data. Tested.
Endpoint tested and returned HTTP 200 on 2026-08-20
What is the PeerTube (SepiaSearch) API?
SepiaSearch is a free, key-free search API across the federated PeerTube network, indexing videos from thousands of independent instances with metadata including duration, channel, licence and view counts.
PeerTube is a decentralised, self-hostable video platform, which means there is no single catalogue to search. SepiaSearch solves that by indexing across instances, giving you one endpoint for the whole federated network.
Because PeerTube is favoured by creators who care about licensing, a genuinely useful proportion of results carry explicit Creative Commons licences — the `licence` field is populated far more often than on commercial platforms.
Quick facts
- Base URL
https://sepiasearch.org/api/v1/search- Authentication
- No API key required. Individual PeerTube instances expose the same API at their own domains.
- Rate limit
- No published hard limit; fair use expected.
- Pricing
- Free and open source.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the PeerTube (SepiaSearch) API
Every request below was executed against the live API on 2026-08-20, and the response shown is the real body it returned — not an illustration.
1. Search federated PeerTube videos
GET https://sepiasearch.org/api/v1/search/videos?search=linux&count=1
curl 'https://sepiasearch.org/api/v1/search/videos?search=linux&count=1'const res = await fetch("https://sepiasearch.org/api/v1/search/videos?search=linux&count=1");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://sepiasearch.org/api/v1/search/videos?search=linux&count=1", timeout=20)
res.raise_for_status()
print(res.json()){
"total": 16180,
"data": [
{
"id": 167978,
"uuid": "da5463ca-fbc7-4311-948a-356594d5c70a",
"shortUUID": "sXGnj113k5GYzdzzYmr4cY",
"score": 1,
"createdAt": "2025-05-11T20:36:00.942Z",
"updatedAt": "2026-08-13T18:00:34.304Z",
"publishedAt": "2025-05-11T20:43:40.247Z",
"originallyPublishedAt": null,
"category": {
"id": 15,
"label": "Science & Technology"
},
"licence": {
"id": null,
"label": "Unknown"
},
"language": {
"id": "en",
"label": "English"
},
"privacy": {
"id": 1,
"label": "Public"
},
"name": "Installing Linux Doesn't Need to Change. The Experience Does.",
"description": "People online complain that Linux is hard to install for new users. But who are these people and why do they levy these complaints? The biggest barrier for the new Linux user isn't the installer; it's the experience, the lack of empathy, and complacency of supposed Linux users.\r\n\r\nWebsite: https://trafotin.com\r\n\r\nDonate:\r\n✨ Patreon: https://patreon.com/trafotin\r\n▶️ YouTube Membership: https://www.youtube.com/channel/UC5U7mHlhP6s6478wd7ZvnhA/join\r\n\r\nLinks:\r\n▶️ YouTube: https://www.youtube.com/@trafotin?sub_confirmation=1\r\n🦑 Peertube: https://spectra.video/c/trafotin\r\n🐘 Mastodon: https://vt.social/@trafotin\r\n🦋 Bluesky: https://bsky.app/profile/trafotin.com\r\n𝕏 (Formerly Twitter): https://x.com/trafotin\r\n\r\n🪙 Crypto:\r\nXMR: 84ZpcYxjfkT7uFGXgmi2jH2wyhUBMx8hGBJ3sAp478rKSShMAJHR3DhVVPSwCAskReRBPifzpA5Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
search | string | Required | Search query. linux |
count | integer | Optional | Results per page, max 100. 10 |
start | integer | Optional | Pagination offset. 10 |
durationMin / durationMax | integer | Optional | Duration filter in seconds. 600 |
sort | string | Optional | -match, -publishedAt or -views. -publishedAt |
Response fields
totalinteger- Total videos matching the search.
data[].uuidstring- Video identifier.
data[].namestring- Video title.
data[].durationinteger- Length in seconds.
data[].channelobject- Publishing channel with its host instance.
data[].licenceobject- Licence, often an explicit Creative Commons one.
data[].urlstring- Canonical video URL on its home instance.
What you can build with the PeerTube (SepiaSearch) API
- Search the federated video network without platform lock-in
- Find openly licensed video content for reuse
- Build an alternative video discovery interface
- Aggregate independent creator content
Common errors and how to fix them
Empty data array
No videos matched.
Fix: The federated catalogue is much smaller than commercial platforms; broaden the query.
Video unavailable on its instance
Instances go offline or defederate.
Fix: The `url` points at the home instance — handle failures gracefully.
Inconsistent metadata
Instances are independently operated.
Fix: Field completeness varies; null-check before rendering.
PeerTube (SepiaSearch) API — frequently asked questions
What is PeerTube?
A decentralised, self-hostable video platform where anyone can run an instance. There is no central catalogue, which is why a federated search service like SepiaSearch exists.
Is the API free?
Yes, completely free with no API key. Individual PeerTube instances also expose the same API at their own domains.
Can I find openly licensed videos?
Yes, and unusually often. PeerTube attracts creators who care about licensing, so the `licence` field is populated with explicit Creative Commons terms far more frequently than on commercial platforms.
Can I search a single instance instead?
Yes. Every PeerTube instance exposes the same REST API, so point the same code at that instance's domain to search only its content.
Tools that pair with this API
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
Timestamp Converter
Convert timestamps to human-readable dates and dates back to timestamps. Auto-detects seconds vs milliseconds, shows local, UTC and ISO 8601 formats.
PeerTube (SepiaSearch) is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-20; always check the official documentation before relying on this API in production, as terms and limits can change.