BYTETOOLS

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.

No API key requiredCORS enabledHTTPSFree tier

Endpoint tested and returned HTTP 200 on 20 Aug 2026

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 20 Aug 2026, 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
curl 'https://sepiasearch.org/api/v1/search/videos?search=linux&count=1'
JavaScript (fetch)
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);
Python (requests)
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())
Response — HTTP 200 (truncated)
{
  "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: 84ZpcYxjfkT7uFGXgmi2jH2wyhUBMx8hGBJ3sAp478rKSShMAJHR3DhVVPSwCAskReRBPifzpA5

Parameters

ParameterTypeRequiredDescription
searchstringRequiredSearch query. linux
countintegerOptionalResults per page, max 100. 10
startintegerOptionalPagination offset. 10
durationMin / durationMaxintegerOptionalDuration filter in seconds. 600
sortstringOptional-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

Alternatives to PeerTube (SepiaSearch) API

If PeerTube (SepiaSearch) does not fit, these video & streaming apis cover similar ground. Every one was called before publishing, and each links to its own reference page with a working curl command and the response it returned.

APIWhat it doesAuthCORSLast verified
TVmazeFree TV show API with no key: series info, full episode guides, cast, air dates and daily schedules with images. Genuinely open, no signup. Tested example.No keyYes19 Aug 2026
NoembedFree oEmbed proxy API with no key: get embed HTML, thumbnails and metadata for YouTube, Vimeo, Twitter and 200+ other sites from one endpoint. Tested.No keyYes19 Aug 2026
IPTV-orgFree IPTV-org API with no key: 10,000+ TV channels worldwide with countries, languages, categories, logos and stream metadata as static JSON. Tested example.No keyYes19 Aug 2026
YouTube oEmbedFree YouTube oEmbed endpoint with no API key: video title, author, thumbnail and embed HTML from any video URL. No quota, unlike the Data API. Tested.No keyNo20 Aug 2026
Shoof AflamShoof Aflam publishes a free, key-free API over 14,900+ Arabic movies and series with per-platform streaming availability, ratings and posters, as static JSON. Tested example included.No keyNo21 Aug 2026
The Simpsons APIA free, key-free Simpsons API: 1,182 characters with catchphrases and occupations, plus episodes and locations, paginated with a Rick-and-Morty-style envelope. Live example included.No keyYes21 Aug 2026
All Video & Streaming APIs

PeerTube (SepiaSearch) is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 20 Aug 2026; always check the official documentation before relying on this API in production, as terms and limits can change.