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"
}
}
}
}