Skip to content

Features

Everything in v0.5.0, in the order you meet it.

Grouped by lifecycle rather than by marketing category. Every line carries the detail that makes it checkable against a running instance.

Publish

Getting video in, and getting it encoded.

Resumable and chunked uploads
A dropped connection picks up where it stopped rather than starting the file again.
Straight-to-storage uploads
Chunks stream to the storage backend — local or S3 — and never touch the server's disk. A server dying mid-upload loses nothing.
Lean encode path
A full-ladder job reads the source once, down from 8, and decodes it in full 3 times, down from 13. Peak scratch computes to about 3.6 GB, from about 10.3.
Upload from a URL
Asynchronous fetch, SSRF-guarded, with a sandboxed yt-dlp path you can enable.
Per-user quotas
Storage limits per account, so one uploader cannot fill the disk.
ClamAV scanning
Optional scanning on upload. Budget an extra 2 GB of RAM if you turn it on.
HLS ladder
H.264 and AAC. A 1080p TargetAll job runs 12 encode passes, about 1.5 to 2.5 times the source duration on 4 vCPU.
CMAF packaging and DASH
Packaged alongside HLS from the same renditions.
VP9 and WebM download
An optional downloadable rendition next to the streaming ladder.
Codec profile flags
HEVC and AV1 are behind flags and default to off.
Live streaming
RTMP ingest with privacy-gated HLS output, and a replay that becomes a VOD when the stream ends.
Channel auto-sync mirroring
Mirror a channel into your instance and keep it in step.

Watch

The player and everything around it.

Bespoke player
Keyboard shortcuts, picture-in-picture and theatre mode, written for this platform rather than skinned onto a generic one.
I-frame trick-play
Scrubbing runs against an I-frame rendition, so the preview keeps up with the pointer.
Thumbnails, storyboards, chapters
Storyboards drive scrub previews; chapters break a long recording into parts.
WebVTT captions
Upload them, or have Whisper generate them and edit what it produced.
Password-protected videos
Scoped playback tokens, not an unlisted URL that leaks the moment somebody forwards it.
Embeds, oEmbed, RSS, sitemap, PWA
Your video plays on other people's pages, and your instance is readable by the things that index it.

Find

Search and ranking, with the parts still on probation labelled.

Hybrid full-text and trigram search
Two indexes queried together, so a half-remembered title still resolves.
Typo-tolerant autosuggest
Suggestions while typing, tolerant of the wrong letters.
Decayed-counter trending
View counters decay with age, so last quarter's hit does not sit at the top forever.
Co-visitation recommendations
Built from what viewers actually watched next.
LightGBM ranker
Shadow-evaluated: it scores results and its scores are compared, but it does not decide the order until you promote it.

How it compares

Where Vidra differs, and where it does not.

Two of these columns agree more often than they differ — self-hosting is the thing they share. Where Vidra parts company is federation, runtime, and what you can do about egress.

Who sets the rules

Hosted platforms (YouTube)
Google. The terms, the moderation policy and the ranking are theirs to change.
Other self-hosted video platforms
You do. That is what self-hosting means.
Vidra
You do. Registration approval, reports and instance settings sit in your own admin console.

Ads and your audience

Hosted platforms (YouTube)
The platform sells advertising against your audience and sets the revenue share.
Other self-hosted video platforms
No ad system unless the project ships one.
Vidra
No ad system and no monetisation layer. Vidra is not a creator monetisation platform.

Federation

Hosted platforms (YouTube)
None. Accounts, subscriptions and discovery stay on one platform.
Other self-hosted video platforms
Varies by project. ActivityPub where it is offered.
Vidra
ActivityPub and ATProto. Enabled per instance; once on, every channel federates by default and can opt out.

Runtime

Hosted platforms (YouTube)
Not something you run.
Other self-hosted video platforms
Varies by project. Check the one you are comparing.
Vidra
A Go backend (Go 1.26, Echo) and a Next.js 16 frontend, over PostgreSQL 18 and Redis 8.

Egress

Hosted platforms (YouTube)
Theirs to pay for.
Other self-hosted video platforms
Yours to pay for.
Vidra
Yours, and offloadable: a CDN in front of your HLS, or IPFS gateways carrying public media.

Licence

Hosted platforms (YouTube)
Proprietary, hosted service.
Other self-hosted video platforms
Varies. Check the licence before you commit to it.
Vidra
AGPL v3. Use it, study it, modify it, redistribute it — and a modified service owes its users the source.

Leaving

Hosted platforms (YouTube)
Takeout exports your video files. The URLs, the embeds and the audience stay on the platform.
Other self-hosted video platforms
Your files and your database are already on your disk.
Vidra
Your files and your database are already on your disk, behind one compose file.

Vidra is a clean-room implementation rather than a fork of anything, and it is not PeerTube-API-compatible. Comparing against PeerTube specifically? That has its own page. Moving an existing instance across is supported and documented — read the migration overview.

Connect

ActivityPub federation, ATProto for Bluesky, messaging, one storage network, and identity.

ActivityPub
Your channels and videos are addressable from the rest of the fediverse.
ATProto
Viewers sign in with Bluesky, or with any ATProto PDS.
Cross-posting to Bluesky
Optional, for public videos, and off until you enable it.
IPFS media, dual-tier
A public tier that offloads delivery to gateways, and a private tier keyed to your own swarm — replication, not distribution. Off by default. What IPFS actually does →
Direct messages
One-to-one conversations, with images and files — attachments are capped at 100 MiB and scanned for malware before they become linkable.
End-to-end encrypted conversations
An opt-in conversation type. Encryption runs on your device; the server stores only ciphertext and cannot read the content — though, as with Signal or Matrix, it still knows who is talking to whom and when. Text only: attachments stay in standard conversations, where they can be scanned.
Disappearing messages
Encrypted conversations can auto-delete on a timer, 30 seconds to 90 days. Expired messages vanish from every read immediately and are hard-deleted from the server by a sweeper.
OAuth, OIDC and TOTP two-factor
Sign in through an identity provider you already run, with a TOTP second factor either way.

Moderate

The work that starts on day two.

Reports and moderation
A reporting path for viewers and a queue for acting on it.
Registration approval
New accounts wait for a person to let them in.
Admin console
More than a hundred instance settings, changeable at runtime rather than through a redeploy.

Operate

What you touch after it is live.

The vidra CLI
setup, doctor, status, logs, deploy, rollback, backup and restore, all scripted.
vidra doctor
26 checks against a running instance, with the failure named.
Probes
/healthz, /readyz, /schemaz and /version.
Metrics and traces
Prometheus metrics and OpenTelemetry traces, both first-party.
Durable queues
Postgres-backed, claimed with SKIP LOCKED and leases: queued work survives a restart, and two workers cannot claim the same job.
Roles and replicas
One boot variable splits the same image into api and worker processes. Replicas take leases, elect a leader for sweeps, and drain behind /readyz — soak-tested at two replicas with a deliberate counterfactual.
Schema history
121 SQL migrations, versioned with the code.
API surface
228 paths under one OpenAPI contract.
Accessibility
Accessibility failures fail the build: axe gates CI in both frontends, and this site's own CI gates WCAG 2.2 AA explicitly.
Three things Vidra does not do
In-player peer-to-peer
On the roadmap, not in v0.5.0. Do not size your bandwidth around it.
DRM
None shipped: a test lane proves the seam, and production DRM sits behind an unbuilt roadmap item. If your distributor requires encrypted playback today, Vidra is the wrong tool.
A hosted tier
A design decision, not a gap in the roadmap.

Start with one command.

One command. 4 vCPU. About $63 a month.

Install