Video Streaming API
With NO Ads

We offer free streaming links for movies and episodes that can be
effortlessly integrated into your website through our embed links.

Deliver an optimized User Experience

There are plenty of essential features optimized to provide the best user experience.

Auto Update
Links are automatically updated with new or better quality as soon as they are available online.
Responsive
The player is responsive and can work on every Desktop, Mobile, Tablet without problem.
High Quality
The quality of the links is the latest available, most are 1080p.
Fast Streaming Servers
The player includes a list of fastest streaming servers, users can easily optional.

API Documentation

Detailed representation of the API endpoints for P-Stream Embed includes comprehensive information regarding the available methods, request formats, required parameters and optional parameters.
Example:
Or:
Example:
Example with IDs:

Note: The /media/ format requires TMDB IDs for season and episode, while the /embed/ format uses season and episode numbers.

Example:
Time Stamp Parameter t=08:47

Time code in HH:MM:SS format

Tells the player when to start the video
Theme Parameter theme=default

Player theme (default: default)

Available themes: Default, Classic, Blue, Teal, Red, Gray, Green, Mocha, Pink
Language Parameter language=en

Player interface language (default: en)

Available languages: en (English), de (German), fr (French), es (Spanish), it (Italian), pt (Portuguese), ru (Russian), many more... (2 character ISO 639-1 language code)
Logo Parameter logo=true

Show/hide player logo (default: true)

Set to false to hide the player logo
Downloads Parameter downloads=true

Enable/disable downloads menu (default: true)

Set to false to hide the downloads menu
Watch Party Parameter has-watchparty=true

Enable/disable watch party feature (default: true)

Set to false to hide the watch party menu
Language Order Parameter language-order=en,hi,fr,de,nl,pt

Set subtitle language priority order (default: en,hi,fr,de,nl,pt)

Comma-separated list of language codes (e.g., fr,de,en,ru,he)
All In One Parameter allinone=true

Enable/disable episode selector, next episode button, and info button (default: false)

Set to true to show these features
Scale Parameter scale=0.9

Set the scale of the interface (default: 1)

Set to a value between 0 and 2
Backlink Parameter backlink=https://yoursite.com

Backlink URL (default: "" = hidden)

Show the backlink within the player and redirect to your site
Enable FED API Parameter fedapi=true

"Setup FED API" button visiblility (default: true)

Show or hide the "Setup FED API" button in the source selection view
Enable Debrid Parameter debrid=true

"Setup Debrid" button visiblility (default: true)

Show or hide the "Setup Debrid" button in the source selection view
Interface settings Parameter interface-setting=true

Hide or show interface settings (default: true)

Show or hide the theme and language settings in the player
Tips Parameter tips=true

Hide or show tips (default: true)

Show or hide interface usage tips in the player while scraping

The player can communicate with your website through postMessage events. The player sends time updates that can be used to track playback progress or integrate with your analytics. Here's how to listen for these events:

Basic Implementation:
// Listen for messages from the player iframe
window.addEventListener("message", (event) => {
  // Verify the message is from our player domain
  if (event.origin !== "https://iframe.pstream.mov") return;
  
  // Handle time update events
  if (event.data.type === "playerTimeUpdate") {
    console.log("Current time:", event.data.time);
    console.log("Total duration:", event.data.duration);
  }
  
  // Handle episode change events
  if (event.data.type === "episodeChanged") {
    console.log("Changed from S" + event.data.oldSeasonNumber + 
                "E" + event.data.oldEpisodeNumber + 
                " to S" + event.data.seasonNumber + 
                "E" + event.data.episodeNumber);
    
    // You can use this to update your UI or track viewing history
  }
});
Available Events:
playerTimeUpdate

Fired when the playback time changes. Updates are throttled to every 1 second to prevent excessive message passing.

{
	type: "playerTimeUpdate",
	time: number,      // Current time in seconds
	duration: number   // Total duration in seconds
	tmdbId: string,    // TMDB ID
	imdbId: string     // IMDB ID
}
episodeChanged

Fired when the user changes episodes within a TV series. This event provides both the new episode/season information and the previous values.

{
	type: "episodeChanged",
	episodeNumber: number,    // New episode number
	seasonNumber: number,     // New season number
	tmdbId: string,           // TMDB ID of the show
	imdbId: string,           // IMDB ID of the show
	oldEpisodeNumber: number, // Previous episode number
	oldSeasonNumber: number   // Previous season number
}
Implementation Details:
  • Time updates are throttled to prevent excessive message passing
  • The time value is always between 0 and the total duration
  • Updates are sent both during normal playback and when seeking
  • Episode change events are fired whenever a user switches episodes within a series
  • The event is sent to the parent window using window.parent.postMessage()