bb.pinaysex.net Embed API

Embed our player
on any website

A simple iframe-based API that lets you embed our streaming player directly on your site. Two URL patterns cover every movie and TV episode. No authentication token required.

No auth token Movies & TV HLS player iframe-based

How it works

Our embed player runs on dedicated /embed/ routes that are completely separate from the main site. No post has to exist for a title — just point an iframe at the right URL with a TMDB ID and the player resolves and streams the content automatically.

🎬
Movies
One URL with the TMDB movie ID. Embed any film in seconds.
📺
TV Episodes
URL includes season and episode number. Deep-link directly to any episode.
🔀
Mirror Fallback
The player tries multiple stream sources automatically. Viewers get the best available mirror.
ℹ️
TMDB IDs are the numeric identifiers used by The Movie Database. You can find a title's ID in its TMDB URL: themoviedb.org/movie/550 → ID is 550.

Embed in 30 seconds

Copy one of these snippets, replace the TMDB ID, and paste into your site's HTML.

🎬 Movie — Fight Club (TMDB ID: 550)

html
<iframe
  src="https://bb.pinaysex.net/embed/movie/550/"
  width="800"
  height="450"
  frameborder="0"
  allowfullscreen
  allow="autoplay; fullscreen"
></iframe>

📺 TV Episode — Breaking Bad S2E1 (TMDB ID: 1396)

html
<iframe
  src="https://bb.pinaysex.net/embed/tv/1396/2/1/"
  width="800"
  height="450"
  frameborder="0"
  allowfullscreen
  allow="autoplay; fullscreen"
></iframe>
💡
Responsive embed? Wrap the iframe in a container with position:relative; padding-bottom:56.25% (16:9) and set the iframe to position:absolute; inset:0; width:100%; height:100%. See the full example in the Code Examples section.

Embed URL format

Two URL patterns — one for movies, one for TV episodes. Both resolve the title from TMDB at request time; no content post needs to exist on this server.

GET
https://bb.pinaysex.net/embed/movie/{tmdb_id}/
Embeds a movie. {tmdb_id} is the numeric TMDB movie ID.
GET
https://bb.pinaysex.net/embed/tv/{tmdb_id}/{season}/{episode}/
Embeds a specific TV episode. All three path segments are required for TV.

Path Segments

SegmentTypeRequiredDescription
tmdb_id integer Required The TMDB numeric identifier for the movie or TV show.
season integer TV only Season number (1-based). Required for TV, absent for movies.
episode integer TV only Episode number within the season (1-based). Required for TV.

Query string options

Append these to the embed URL to customise player behaviour. They override admin defaults on a per-embed basis.

ParameterValuesDefaultDescription
autoplay 1 / 0 Optional Force autoplay on (1) or off (0). When on, the player skips the splash screen and starts muted per browser autoplay policy.
sub BCP-47 code or off Optional Pre-select subtitle language. Use standard codes: en, fr, pt-BR, es. Pass off to disable subtitles regardless of admin default.

Examples with parameters

text
# Autoplay a movie with English subtitles
https://bb.pinaysex.net/embed/movie/550/?autoplay=1&sub=en

# TV episode, autoplay off, French subtitles
https://bb.pinaysex.net/embed/tv/1396/2/1/?autoplay=0&sub=fr

# Force subtitles off
https://bb.pinaysex.net/embed/movie/550/?sub=off

Integration examples

Copy-paste ready snippets for the most common use cases.

Responsive 16:9 embed (CSS)

html
<!-- Wrapper keeps 16:9 ratio at any width -->
<div style="position:relative;padding-bottom:56.25%;height:0;overflow:hidden">
  <iframe
    src="https://bb.pinaysex.net/embed/movie/550/"
    style="position:absolute;inset:0;width:100%;height:100%;border:0"
    allowfullscreen
    allow="autoplay; fullscreen"
  ></iframe>
</div>

Dynamic TV episode switcher (JavaScript)

javascript
const BASE   = 'https://bb.pinaysex.net/embed/tv';
const TMDB_ID = 1396; // Breaking Bad
const iframe  = document.getElementById('player-frame');

function loadEpisode(season, episode) {
  iframe.src = `${BASE}/${TMDB_ID}/${season}/${episode}/`;
}

// Example: load S3E7 when a button is clicked
document.getElementById('play-s3e7').addEventListener('click', () => {
  loadEpisode(3, 7);
});

WordPress shortcode (PHP — add to your theme's functions.php)

php
/**
 * [fstream_embed type="movie" id="550"]
 * [fstream_embed type="tv" id="1396" s="2" e="1"]
 */
add_shortcode( 'fstream_embed', function( $atts ) {
    $a = shortcode_atts([
        'type' => 'movie',
        'id'   => 0,
        's'    => 1,  // season
        'e'    => 1,  // episode
        'w'    => 800,
        'h'    => 450,
    ], $atts );

    $base = 'https://bb.pinaysex.net/embed/';
    $url  = $a['type'] === 'tv'
        ? $base . "tv/{$a['id']}/{$a['s']}/{$a['e']}/"
        : $base . "movie/{$a['id']}/";

    return sprintf(
        '<iframe src="%s" width="%d" height="%d" frameborder="0" allowfullscreen allow="autoplay; fullscreen"></iframe>',
        esc_url( $url ), (int) $a['w'], (int) $a['h']
    );
} );

Fair use guidelines

The embed API has no hard API-key rate limits, but to keep the service running well for everyone, please follow these guidelines.

Lazy-load iframes
Add loading="lazy" to the iframe tag so the player only loads when it's about to enter the viewport.
🔄
Don't auto-rotate titles
Avoid changing the iframe src on a timer or in rapid loops — each src change triggers a new stream resolution.
📦
Cache on your side
The embed URLs are static — build them once and cache the HTML output. You don't need to regenerate them per request.
ℹ️
Stream resolution results are cached server-side for a configurable TTL (default 4 hours). Repeated loads of the same title within that window are served instantly from cache and don't hit external sources.