Code d'Embed Iframe — Une Balise, Toutes les Plateformes

Code d’Embed Iframe

Chaque vidéo sur AVCaption reçoit un unique code iframe :

<iframe
  src="https://avcaption.com/watch/{your_embed_token}"
  frameborder="0"
  allow="autoplay; encrypted-media; fullscreen"
  allowfullscreen
  loading="lazy"
  width="100%"
  style="aspect-ratio: 16/9"
></iframe>

Collez-le sur toute plateforme qui accepte le HTML. C’est tout.

Où ça fonctionne

CMS / Blog

  • WordPress (bloc Custom HTML, bloc Code, HTML brut du billet)
  • Ghost (HTML card)
  • Substack (HTML dans les billets, y compris payants)
  • Medium (limité — bookmark cards uniquement, pas d’iframe)
  • Hashnode (bloc Embed)

LMS / Plateformes de cours

  • Teachable (bloc Video accepte le code iframe via “Custom Code”)
  • Thinkific (bloc Custom Code)
  • Kajabi (bloc HTML dans billets et pages produit)
  • LearnDash (HTML dans le corps de leçon)
  • LearnWorlds (bloc Embed)
  • Podia (Custom HTML)

Builders no-code

  • Webflow (élément Embed)
  • Bubble (élément HTML)
  • Wix (bloc HTML iframe)
  • Squarespace (bloc Code)
  • Carrd (section Embed)
  • Framer (composant Embed)

Productivité / Knowledge

  • Notion (commande slash /embed)
  • Coda (Embed)
  • ClickUp (vue Embed)

Email — limité. La plupart des clients e-mail bloquent les iframes (Gmail, Outlook). Envoyez plutôt un lien avec aperçu og:image.

Paramètres d’URL

Ajoutez des query parameters à la src de l’iframe :

  • ?autoplay=1&muted=1 — démarrer la lecture au chargement (muet requis pour l’autoplay)
  • ?start=120 — placer la lecture à 120 s
  • ?subtitle=vi — présélectionner les sous-titres vietnamiens
  • ?quality=1080 — forcer la variante 1080p
  • ?loop=1 — redémarrer à la fin
  • ?controls=0 — masquer toutes les commandes (mode kiosque)

À combiner : ?autoplay=1&muted=1&start=30&subtitle=es.

En-têtes de sécurité

L’iframe répond avec :

  • Content-Security-Policy: frame-ancestors {your_whitelist} — les navigateurs bloquent l’embedding sur les origines non listées
  • Referrer-Policy: strict-origin — info de referrer limitée à scheme+host
  • Permissions-Policy: autoplay=*; fullscreen=* — nécessaire pour que l’attribut allow fonctionne

Vous ne configurez rien — AVCaption définit les bons en-têtes selon votre liste blanche de domaines.

Performance

  • First paint : 600-900 ms en 4G mobile, sous 300 ms en haut débit
  • HLS.js + JS du lecteur : ~60 Ko minifié+gzippé
  • Premier segment préchauffé au téléversement, servi depuis l’edge CDN
  • loading="lazy" diffère le chargement de l’iframe jusqu’à ce que l’utilisateur s’en approche (recommandé)

Dimensionnement responsive

L’iframe est totalement responsive avec width="100%" et aspect-ratio: 16/9. La vidéo s’adapte à son conteneur, ce que l’on veut sur la plupart des sites.

Pour une taille en pixels fixe : width="800" height="450" (ou tout ratio 16:9).

Pour du non-16:9 (ex. vidéo d’archive 4:3) : posez aspect-ratio: 4/3 pour coller à la source.

Démarrer

Chaque vidéo uploadée sur AVCaption a un code iframe sur la page détail de la vidéo. Uploadez une vidéo test, copiez l’iframe, collez-le dans un doc Notion ou un brouillon de billet de blog — l’embed se rend de la même façon que sur Teachable, Kajabi, Confluence, des pages Salesforce Community ou votre site custom. Cibles d’embed de production courantes : hébergement vidéo LMS, cours en ligne, produits numériques.

Questions fréquemment posées

L'embed iframe fonctionne-t-il sur WordPress ? +
Oui. Collez-le dans un bloc Custom HTML, un bloc Code ou directement dans le HTML du billet. Le filtrage des balises script par WordPress n'affecte pas les iframes.
Fonctionne-t-il dans un LMS comme Teachable, Thinkific, Kajabi ? +
Oui. Toutes les grandes plateformes LMS supportent les embeds iframe. Certaines disposent d'un bloc 'video embed' dédié ; d'autres acceptent le HTML brut — les deux fonctionnent.
Et Notion, Substack, Ghost, Bubble ? +
Notion supporte les embeds iframe via la commande slash /embed. Substack supporte les iframes dans les newsletters payantes. Ghost a un bloc HTML personnalisé. Bubble a un élément HTML. Tout fonctionne.
← content.back_to_index