Documentation Partenaire Officiel · StormView API
Logo StormView

StormView Embed API

Intégrez le lecteur vidéo universel StormView sur vos sites partenaires via une simple balise <iframe>. Sélection automatique intelligente de la meilleure source (VF / VO), qualité adaptative et zéro maintenance backend.

Zéro Latence Backend

Lecteur 100% autonome et sécurisé hébergé sur notre infrastructure.

Auto-Switch VF / VO

Sélection transparente du meilleur flux selon la préférence demandée.

100% Responsive

S'adapte automatiquement sur desktop, tablette et smartphones.

Mode Préparation Locale (Sans API)

Ce site fonctionne localement. Pour l'instant, aucune API n'est branchée. Vous pouvez tester le générateur de code d'intégration, les formats et l'interface. Dès que vous aurez fini de créer votre API, il vous suffira de renseigner son URL dans config.js pour activer le lecteur et les tests de disponibilité en direct !

Interactive Builder

Configurez votre contenu TMDB et visualisez le code d'intégration généré instantanément.

https://votre-api.com/embed/stormview?tmdb=550&type=movie&lang=vf
LECTEUR STORMVIEW EMBED

Votre lecteur, prêt à tester.

Choisissez vos identifiants TMDB ci-dessous puis lancez la simulation. Le code d'intégration est déjà disponible à la copie.

HTML IFRAME CODE

                

Sécurité & intégration

  • Ne pas utiliser l'attribut sandbox sur l'iframe, ou inclure au minimum allow-scripts allow-same-origin allow-popups.
  • Utilisez uniquement l'iframe officielle générée par StormView : les lecteurs <video>, HLS ou MP4 maison ne sont pas pris en charge.
  • Le lecteur démarre automatiquement. La cadence reste gérée à l'intérieur de l'iframe sur les interactions réelles du lecteur.
  • Mode strict : définir EMBED_FRAME_ANCESTORS_MODE=whitelist et EMBED_ALLOWED_ORIGINS sur le serveur.
  • Les URLs de flux vidéo sont signées cryptographiquement et liées à la session (expiration ~15 min).

Introduction

L'API StormView Embed vous permet d'intégrer un lecteur vidéo de haute qualité hébergé sur n'importe quel site web grâce à une simple balise <iframe>. Le lecteur gère la sélection automatique des meilleures sources, le lecteur interactif et la lecture — aucun code côté serveur n'est requis de votre côté.

Confidentiel : Cette page de documentation est exclusivement réservée aux partenaires autorisés de StormView Embed.

Quick Start

Copiez ce snippet pour intégrer un film :

HTML — FILM
<iframe
  src="https://votre-api.com/embed/stormview?tmdb=550&type=movie&lang=vf"
  width="100%" height="500" frameborder="0"
  allowfullscreen allow="autoplay; fullscreen; encrypted-media">
</iframe>

Pour une série TV, ajoutez les paramètres season et episode :

HTML — SÉRIE TV
<iframe
  src="https://votre-api.com/embed/stormview?tmdb=71712&type=tv&season=1&episode=1&lang=vf"
  width="100%" height="500" frameborder="0"
  allowfullscreen allow="autoplay; fullscreen; encrypted-media">
</iframe>
Important pour les sites partenaires

Sur votre site, utilisez uniquement l'URL ci-dessus : le lecteur démarre automatiquement et affiche son propre contrôle si un navigateur mobile exige un geste utilisateur. L'iframe doit comporter allow="autoplay; fullscreen; encrypted-media" sans attribut sandbox restrictif.

Parameters

ParamètreTypeRequisDescription
tmdbintegerOuiIdentifiant TMDB officiel du contenu
typestringOuimovie ou tv
seasonintegerSéries TVNuméro de saison (défaut : 1)
episodeintegerSéries TVNuméro d'épisode (défaut : 1)
langstringNonvf (Français) ou vo (Version originale). Sélection automatique.

Availability API

Vérifiez par programmation si un contenu est disponible avant de l'afficher sur votre page :

GET https://votre-api.com/api/embed-player/availability?tmdb=&type=&season=&episode=

Exemple de réponse JSON

JSON RESPONSE
{
  "ok": true,
  "vf": true,
  "vo": false,
  "available": true,
  "meta": { "title": "Fight Club", "type": "movie" }
}
ChampTypeDescription
okbooleanLa requête a réussi avec succès
vfboolean | nullDoublage français : true si confirmé, false si absent, null si non vérifié.
voboolean | nullVersion originale : null indique non vérifié.
availableboolean | nullAu moins une source confirmée disponible. Ne jamais considérer null comme false.
pendingbooleanVérification en cours. Ne pas masquer le lecteur tant qu'un résultat n'est pas strictement false.
should_embedbooleanRecommandation d'affichage : true sauf en cas d'absence explicitement confirmée.
metaobjectMétadonnées du titre (titre, type, année, etc.)
Ne masquez pas le lecteur en cas d'erreur réseau

Un code HTTP 202 ou une valeur null signifie « en cours de vérification », jamais « absent ». Ne testez pas seulement if (data.available). Masquez uniquement lorsque le champ de la langue voulue vaut strictement false.

JAVASCRIPT RECOMMANDÉ
let showReader = true;
try {
  const response = await fetch(availabilityUrl);
  if (response.ok) {
    const data = await response.json();
    // requestedLanguage vaut "vf" ou "vo".
    showReader = data.available !== false && data[requestedLanguage] !== false;
  }
} catch (_) { /* On conserve le lecteur : pas de faux négatif. */ }
reader.hidden = !showReader;

Sorties & calendrier

API JSON publique avec cache optimisé et accès navigateur autorisé (CORS). Dates au format standard ISO UTC ; pagination avec page et limit (100 max).

Dernières sorties référencées

GET https://votre-api.com/api/releases?from=2026-10-01&to=2026-10-31&type=movie&limit=30

Par défaut : 30 derniers jours triés par date décroissante. Filtres disponibles : type=movie|tv|anime.

Calendrier des épisodes annoncés

GET https://votre-api.com/api/calendar

Diffusions prévues pour les 7 prochains jours, avec season, episode, episode_title et date.

Format commun de réponse

JSON
{
  "ok": true,
  "items": [],
  "total": 0,
  "page": 1,
  "pages": 1,
  "per_page": 30,
  "meta": { "date_field": "release", "timezone": "UTC" }
}

Embed URL

Modèle universel de l'URL d'intégration :

https://votre-api.com/embed/stormview?tmdb=ID&type=movie|tv&season=1&episode=1&lang=vf|vo

Exemples d'intégration

HTML classique

HTML5
<!-- Film -->
<iframe
  src="https://votre-api.com/embed/stormview?tmdb=550&type=movie&lang=vf"
  width="100%" height="500" frameborder="0"
  allowfullscreen allow="autoplay; fullscreen; encrypted-media">
</iframe>

<!-- Série TV -->
<iframe
  src="https://votre-api.com/embed/stormview?tmdb=71712&type=tv&season=1&episode=1&lang=vf"
  width="100%" height="500" frameborder="0"
  allowfullscreen allow="autoplay; fullscreen; encrypted-media">
</iframe>

Composant React

JSX / REACT
import React from 'react';

export function StormViewPlayer({ tmdb, type = 'movie', season = 1, episode = 1, lang = 'vf' }) {
  const params = new URLSearchParams({ tmdb: String(tmdb), type, lang });
  if (type === 'tv') {
    params.set('season', String(season));
    params.set('episode', String(episode));
  }
  const src = `https://votre-api.com/embed/stormview?${params.toString()}`;

  return (
    <div style={{ position: 'relative', width: '100%', aspectRatio: '16/9' }}>
      <iframe
        src={src}
        width="100%"
        height="100%"
        style={{ position: 'absolute', inset: 0, border: 0 }}
        allowFullScreen
        allow="autoplay; fullscreen; encrypted-media"
        title="StormView Player"
      />
    </div>
  );
}

WordPress (Shortcode PHP)

PHP / WORDPRESS
// functions.php — shortcode [stormview tmdb="550" type="movie" lang="vf"]
function stormview_embed_shortcode($atts) {
    $a = shortcode_atts([
        'tmdb' => '',
        'type' => 'movie',
        'season' => '1',
        'episode' => '1',
        'lang' => 'vf'
    ], $atts);

    if (!$a['tmdb']) return '';

    $params = [
        'tmdb' => $a['tmdb'],
        'type' => $a['type'],
        'lang' => $a['lang']
    ];
    if ($a['type'] === 'tv') {
        $params['season'] = $a['season'];
        $params['episode'] = $a['episode'];
    }

    $url = 'https://votre-api.com/embed/stormview?' . http_build_query($params);

    return '<div style="position:relative;width:100%;aspect-ratio:16/9;">'
         . '<iframe src="' . esc_url($url) . '" width="100%" height="100%" '
         . 'style="position:absolute;inset:0;border:0;" allowfullscreen '
         . 'allow="autoplay; fullscreen; encrypted-media"></iframe></div>';
}
add_shortcode('stormview', 'stormview_embed_shortcode');

Utilisation dans vos articles ou pages : [stormview tmdb="550" type="movie" lang="vf"]