Overview
Structure#
P-Stream is a site, a proxy, an account server, and something running on your own machine. Only the first is required.
Frontend
The site itself. Static files, no server, no data — everything else here is something it talks to.
Proxy
Fetches the streams a browser isn't allowed to request itself. No database, no config, one container.
Extension or desktop
Makes those same requests from your own machine instead — your IP, your headers, your cookies.
Backend
Syncs your account across devices: bookmarks, progress, history, settings. Never sees or touches video.
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 through | What it means |
|---|---|
| A proxy | A server fetches on your behalf and returns the result with permissive headers. |
| The extension or desktop app | The 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 want | Run |
|---|---|
| Sources that reject shared servers | Extension, userscript or desktop app |
| A proxy on an IP nobody else is sharing | Proxy |
| Your own accounts and sync | Backend |
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.