fix: lancement vidéo YouTube via IFrame Player API

- Remplacement iframe par div#youtube-player avec data-video-id
- ID vidéo extrait du videoUrl via regex côté PHP
- Chargement de l'API YouTube IFrame au load
- Création du player + playVideo() dans onReady au clic

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
isUnknown 2026-02-27 16:32:58 +01:00
parent 76add8b87f
commit 05604ea6ef
2 changed files with 37 additions and 23 deletions

View file

@ -1,38 +1,49 @@
export function playVideo() {
const playButton = document.querySelector('#hero-play-video');
if (!playButton) return;
if (!playButton) {
return;
}
const playerDiv = document.querySelector('#youtube-player');
if (!playerDiv) return;
playButton.addEventListener('click', function() {
// Charger l'API YouTube IFrame Player
const tag = document.createElement('script');
tag.src = 'https://www.youtube.com/iframe_api';
document.head.appendChild(tag);
let ytReady = false;
window.onYouTubeIframeAPIReady = () => { ytReady = true; };
playButton.addEventListener('click', function () {
const extract = document.querySelector('.extract');
const videoFull = document.querySelector('.video-full');
const titleSmall = document.querySelector('.page-title-small');
if (extract) {
extract.style.display = 'none';
}
if(titleSmall){
titleSmall.style.display = 'none';
}
if (extract) extract.style.display = 'none';
if (titleSmall) titleSmall.style.display = 'none';
if (videoFull) {
videoFull.style.display = 'block';
const iframe = videoFull.querySelector('iframe');
if (iframe) {
const src = iframe.src;
function createPlayer() {
new YT.Player('youtube-player', {
videoId: playerDiv.dataset.videoId,
width: '100%',
height: '100%',
playerVars: {
autoplay: 1,
rel: 0,
},
events: {
onReady: (e) => e.target.playVideo(),
},
});
}
// Ajouter les paramètres autoplay et mute pour YouTube
if (src) {
const separator = src.includes('?') ? '&' : '?';
iframe.src = src + separator + 'autoplay=1&mute=1';
iframe.setAttribute('allow', 'autoplay; encrypted-media');
}
if (ytReady) {
createPlayer();
} else {
window.onYouTubeIframeAPIReady = createPlayer;
}
}
});