en

PeerTube as a Tor Hidden Service

PeerTube is a free, open-source, federated video hosting platform. Unlike YouTube, PeerTube does not serve advertisements, does not profile viewers, and does not restrict content based on advertiser sensitivities. A self-hosted PeerTube instance provides a private video platform where the operator controls what content is hosted and who can access it. Running PeerTube as a Tor hidden service adds privacy for both the server operator (IP not exposed) and viewers (ISP cannot see that they accessed specific video content). For organizations that need to distribute sensitive video material privately, researchers hosting lecture recordings, journalists distributing video evidence, or communities with censorship concerns, a PeerTube .onion instance provides a practical alternative to commercial video platforms.

Need this done for your project?

We implement, you ship. Async, documented, done in days.

Start a Brief

PeerTube vs YouTube for Private Video Hosting

YouTube's model: free hosting in exchange for tracking viewers (to target advertising) and content restriction (demonetization, age restrictions, copyright strikes, political content limitations). For organizations distributing sensitive research, training videos for restricted communities, or content that YouTube's algorithm or moderation might restrict: a self-hosted PeerTube provides full control without the tracking and restriction tradeoffs. PeerTube .onion advantages: viewer anonymity (ISP cannot log that a specific viewer watched specific content), server anonymity (the server IP is not exposed, making DMCA and takedown requests harder to action against the server), censorship resistance (no centralized platform to pressure), and no algorithmic suppression. PeerTube federation: PeerTube instances can federate with each other (ActivityPub protocol), making content from your .onion instance visible in the Fediverse (if configured to do so) while still protecting server location.

PeerTube Installation for .onion Hosting

PeerTube requirements: Node.js 18+, PostgreSQL 14+, Redis, FFmpeg (for video transcoding), and sufficient disk space for videos. Hardware requirements are higher than other services: video transcoding is CPU-intensive. Iceland VPS II ($59.99/mo) is the minimum practical plan for PeerTube with transcoding. Install following the official PeerTube documentation (joinpeertube.org). Configure PeerTube's webserver (Nginx) to listen on 127.0.0.1:80. Configure Tor: HiddenServicePort 80 127.0.0.1:80. Configure PeerTube's webserver URL: in config/production.yaml set webserver.hostname: 'youraddress.onion' and webserver.port: 80 and webserver.https: false. These settings ensure PeerTube generates correct .onion URLs for video embeds, API responses, and federation metadata.

Video Transcoding and Storage Considerations

PeerTube transcodes uploaded videos into multiple resolutions (240p, 360p, 720p, 1080p) using FFmpeg. Transcoding is CPU-intensive: a 10-minute 1080p video may take 5-15 minutes to transcode on a 4-core VPS. Configure PeerTube to transcode at appropriate resolutions for your audience: if viewers are on Tor (bandwidth-limited), enabling only 240p and 360p reduces storage and bandwidth while matching what viewers can actually stream via Tor. Video storage: each video is stored in multiple resolutions, multiplying storage requirements. Configure a retention policy for old videos. Storage expansion: if the VPS fills up, adding a block storage volume is the most practical expansion path. Remote storage (object storage) is possible but reintroduces cloud provider trust if privacy is a concern.

Viewer Privacy and Streaming Over Tor

Video streaming over Tor has bandwidth limitations: Tor circuits provide 1-10 Mbit/s, which is sufficient for 240p (500 Kbit/s) and 360p (1 Mbit/s) but marginal for 720p (2.5 Mbit/s) and insufficient for 1080p streaming. Configure PeerTube to default to low resolutions for new viewers. PeerTube uses WebTorrent for peer-assisted streaming by default - disable WebTorrent for .onion deployments (WebTorrent reveals viewer IP to other peers). In PeerTube settings: disable WebTorrent and use direct HTTP streaming only. For viewer privacy: Tor Browser protects viewer identity for the streaming connection. Viewer accounts: if your PeerTube instance requires login, viewers reveal their account identity (username) even through Tor. Consider whether login is necessary for your use case.

Federation and Discoverability Configuration

PeerTube federation (ActivityPub): by default, a PeerTube instance federates with other instances in the Fediverse. This makes your videos visible to followers on Mastodon, Lemmy, and other ActivityPub platforms - but also potentially reveals the existence of your instance to other instances. For a private .onion PeerTube: disable federation in config/production.yaml (set activities.broadcast to false) or configure federation only with specific trusted instances. Channel visibility: configure channels and videos as unlisted (accessible via direct URL) or private (require login) to prevent discovery through the federation network while still allowing distribution via direct .onion URLs shared through trusted channels.

Why Anubiz Host

100% async — no calls, no meetings
Delivered in days, not weeks
Full documentation included
Production-grade from day one
Security-first approach
Post-delivery support included

Ready to get started?

Skip the research. Tell us what you need, and we'll scope it, implement it, and hand it back — fully documented and production-ready.

Anubiz Chat AI

Online