Aller au contenu

PlayerSource

PlayerSource décrit le média chargé. C'est la seule partie impossible à inventer : type, URL, fichier, droits DRM et identifiants doivent venir du produit ou du backend.

Champ Obligatoire Défaut Explication À utiliser quand À éviter si
type Oui Aucun Type de média : local-file, url, hls ou dash. hls pour .m3u8, dash pour .mpd, url pour fichier direct. Ne pas utiliser url pour un manifeste adaptatif avec ABR/DRM attendu.
url Oui selon type Aucun URL chargée par le moteur. Sources CDN, assets applicatifs, manifestes HLS/DASH. URL vide, temporaire ou signée comme identifiant durable.
file Oui pour local-file Aucun File navigateur fourni par l'utilisateur. Preview locale ou import utilisateur. Mode serveur ou source distante.
contentId Non mais recommandé undefined Identifiant stable pour progression, métadonnées, sous-titres et hors-ligne. Toute app avec reprise, catalogue, épisodes ou télémétrie. URL signée ou valeur volatile.
live Non undefined Signale un flux live. TV, événement en direct, low-latency. VOD avec durée inconnue.
drm Non undefined Key systems, license server, headers, robustesse, licence persistante. Droits fournis avec chaque asset. Tokens permanents en dur dans le navigateur.
abr Non Aucun cap Hints de débit adaptatif : maxHeight, maxBandwidth. Mobile, data saver, TV ancienne, profil entreprise. Le présenter comme une garantie absolue.
profile Non Moteur par défaut Profil local : default, tv, mobile, low-latency. Ajuster un média dans une playlist. Contredire un profil global sans règle.
sidecar Non undefined metadataUrl, subtitles, chapters, thumbnails VTT. Sous-titres locaux, chapitres, artwork, previews timeline. Sidecars cross-origin sans CORS compatible.
offlineEligible Non false par intention Autorise la source au téléchargement hors-ligne. Contenus téléchargeables par contrat. DRM ou licence fragile sans droits vérifiés.

Exemple DASH

source: {
  type: "dash",
  url: "https://cdn.example.com/movie.mpd",
  contentId: "movie-42",
  abr: { maxHeight: 1080 },
  drm: {
    keySystems: {
      "com.widevine.alpha": {
        licenseServerUrl: "https://license.example.com/widevine"
      }
    }
  }
}