Overview

Structure#

P-Stream is a site, a proxy, an account server, and something running on your own machine. Only the first is required.

How a stream gets found#

P-Stream hosts no video. When you pick something, it searches public streaming sites for that title and plays whatever it finds — the loading screen and the player's Source menu both show which site it ended up on.

That search has to reach those sites from somewhere, and that is the one choice that most affects how well it works:

Reaching sources throughWhat it means
A proxyA server fetches on your behalf and returns the result with permissive headers.
The extension or desktop appThe request genuinely comes from your machine — your IP, headers and cookies.

Browsers refuse cross-site requests a site hasn't opted into, and many streaming CDNs additionally reject anything that doesn't look like a real browser: wrong Referer, no cookies, a datacentre IP. A proxy solves the first problem. Running it from your own machine solves both.

Neither stores anything about what you watch beyond the request passing through.

What you need to run#

Nothing is mandatory. Each piece you run yourself replaces one of ours.

You wantRun
Sources that reject shared serversExtension, userscript or desktop app
A proxy on an IP nobody else is sharingProxy
Your own accounts and syncBackend

Both are pointed at from Settings → Connections on pstream.cfd — a proxy under Use custom proxy workers → Add new worker, a backend under Backend Server.

On iOS, browser extensions aren't available at all — a proxy of your own is the only way to get the sources that need one.

Do accounts matter?#

No. Watchlist, history and settings live in the browser and everything works signed out. An account syncs them across devices, and is the only way to get them back if you clear your browser data. That sync is all the backend does.