P-Stream's source code (Allegedly)
Find a file
Pas 533d788eee Inject popup ad for xprime sources
Xprime's own site has ads, but people have found pstream (which doesnt have ads) and moves here since there are no ads. Xprime is losing money and is finding it difficult to support the proxies and servers.

clean up ad for xprime when switching sources or destroying player

new method for tracking if ad is shown

Revert "Track XPrime ad script load state in player"

This reverts commit c50bdd9ad8.

Track XPrime ad script load state in player

Adds xprimeAdScriptLoaded state and setter to the player store. Updates XPrimeAdOverlay to only show when the ad script is loaded, and base display logic to set the load state based on script events. This ensures the overlay only appears when the ad script is ready.

remove infinite loop

When conditions are met → show becomes true → timer starts
Timer fires after 5s → show becomes false
Effect re-runs (because show changed) → show becomes true again → new timer starts
Loop repeats infinitely

Refactor XPrime ad injection so it loads when the source changes
2025-12-03 12:19:07 -07:00
.github prettier 2025-11-07 16:50:35 -07:00
.vscode prettier 2025-11-07 16:50:35 -07:00
plugins prettier 2025-11-07 16:50:35 -07:00
public wow 2025-11-10 13:02:36 -07:00
src Inject popup ad for xprime sources 2025-12-03 12:19:07 -07:00
themes prettier 2025-11-07 16:50:35 -07:00
.dockerignore add docker 2022-05-03 18:21:11 +02:00
.editorconfig new linting config 2023-01-08 15:38:27 +01:00
.eslintrc.cjs prettier 2025-11-07 16:50:35 -07:00
.gitattributes fix(netfilm): use different cdn 2023-03-09 15:34:54 -07:00
.gitignore Chunk react-dom away from main package for faster load times + add rollup chunking analyzer + ignore vite config from tsconfig linting 2023-12-24 14:20:47 +01:00
.npmrc fix building for PWA 2023-10-25 23:04:54 +02:00
docker-compose.yaml prettier 2025-11-07 16:50:35 -07:00
Dockerfile update sudo-flix 2024-04-14 17:28:14 -04:00
example.env Revert "trakt stuff" 2025-11-16 12:48:28 -07:00
index.html prettier 2025-11-07 16:50:35 -07:00
LICENSE.md Rename LICENSE to LICENSE.md 2021-07-24 13:00:06 +01:00
manifest.json rename 2024-09-19 22:22:40 -06:00
package.json minor update 2025-11-30 11:13:51 -07:00
pnpm-lock.yaml update providers 2025-11-25 11:31:19 -07:00
postcss.config.js prettier 2025-11-07 16:50:35 -07:00
prettierrc.js prettier 2025-11-07 16:50:35 -07:00
README.md Update README.md 2025-11-11 11:47:39 -07:00
tailwind.config.ts prettier 2025-11-07 16:50:35 -07:00
tsconfig.json update packages 2025-10-25 00:21:34 -06:00
vercel.json Revert "try vercel method" 2025-01-14 16:28:02 -07:00
vite.config.mts prettier 2025-11-07 16:50:35 -07:00

P-Stream

P-Stream Image

Quick Deploy

Deploy with Vercel

Deploy to Cloudflare

NOTE: To self-host, more setup is required. Check the docs to properly set up!!!!

Service Link Source Code
P-Stream Docs docs source code
Extension extension source code
Proxy simple-proxy source code
Backend backend source code
Frontend P-Stream source code
Weblate weblate

I provide these if you are not able to host yourself, though I do encourage hosting the frontend.

Referrers

Running Locally

Type the following commands into your terminal / command line to run P-Stream locally

git clone https://github.com/p-stream/p-stream.git
cd smov
git pull
pnpm install
pnpm run dev

Then you can visit the local instance here or, at local host on port 5173.

Updating a P-Stream Instance

To update a P-Stream instance you can type the below commands into a terminal at the root of your project.

git remote add upstream https://github.com/p-stream/p-stream.git
git fetch upstream # Grab the contents of the new remote source
git checkout <YOUR_MAIN_BRANCH>  # Most likely this would be `origin/production`
git merge upstream/production
# * Fix any conflicts present during merge *
git add .  # Add all changes made during merge and conflict fixing
git commit -m "Update p-stream instance (merge upstream/production)"
git push  # Push to YOUR repository

Contact Me / Discord

Discord