Récemment, on pouvait utiliser #t=2m0s
ou #t=120
pour définir l'heure de début des liens directs:
http://www.youtube.com/watch?v=Fk2bUvrv-Uc#t=2m30s
ainsi que pour intégrer des vidéos:
<iframe width="420" height="315" \
src="http://www.youtube.com/embed/Fk2bUvrv-Uc#t=2m30s" \
frameborder="0" allowfullscreen></iframe>
Il semble maintenant que YouTube ait abandonné le support de l'heure de démarrage et que ce qui précède ne fonctionne plus. Comment puis-je maintenant faire référence à des vidéos avec une heure de début particulière?
On dirait qu'un paramètre différent est utilisé maintenant - start=<number of seconds>
(voir ce blog et documentation ).
Exemple:
<iframe width="420" height="315" frameborder="0" allowfullscreen
src="http://www.youtube.com/embed/Nc9xq-TVyHI?start=110&end=119"></iframe>
Pour les liens directs, il suffit simplement de remplacer #
par &
:
http://www.youtube.com/watch?v=Fk2bUvrv-Uc&t=2m30s
Vous pouvez utiliser & t = au lieu de # t =
YouTube a abandonné la prise en charge de l'heure de démarrage pour les vidéos intégrées. Nous devons maintenant utiliser directement les paramètres start=N&end=M
en secondes, en fonction de leur nouvelle API, ou écrire du code supplémentaire qui transforme notre ancienne notation #t=(n)m(n)s
en un nouveau style compatible API.
Le clip vidéo a pu fonctionner en fonction du début et de la fin, mais le code exact doit être le suivant:
? start = x & end = y
où x est l'heure de début en secondes et y l'heure de fin en secondes
si la '?' n'est pas présent cela ne fonctionne pas. De plus, le code doit être placé directement après l'URL SANS espace ou cela ne fonctionne pas.
J'ai eu un grand nombre de vidéos chapeautées en utilisant cette méthode avec un plugin JQuery. J'ai adapté le plugin pour que vous puissiez continuer à utiliser la notation (n) m (n) s. Vous pouvez changer cela assez facilement en récupérant la valeur #t de l'URL au lieu de l'attribut data
dans lequel je la stocke.
(function( $ ) {
$.fn.videoChapters = function(iframeID) {
if(typeof window.orig_video === 'undefined') {
window.orig_video = [];
}
window.orig_video[iframeID] = $('#'+iframeID).clone();
var chapterContainer = this;
$(this).find('a').on('click', function(e) {
e.preventDefault();
$('#'+iframeID).remove();
$(chapterContainer).prevAll('.video-iframe').first().find('h3').after(window.orig_video[iframeID]);
var video = $('#'+iframeID);
if(typeof window.video_source === 'undefined') {
window.video_source = [];
}
if(typeof window.video_source[iframeID] === 'undefined') {
window.video_source[iframeID] = $(video).attr('src');
}
/* to use it with a normal anchor change this to something like the below, of course it will vary for URL
* so it'd be better to use a regex, but I'll let someone else worry about that.
*
* var str = $(e.target).attr('href').split('#t')[1];
* var nstr = $(str).split("s")[0];
* var mstr = $(nstr).split("m");
* var min = Number(mstr[0]);
* var sec = Number(mstr[1]);
*
* */
var seconds = $(e.target).data('seconds');
/* youtube dropped old min/secs format, now we convert what's there to pure seconds */
var splsec = seconds.split('m');
var min = Number(splsec[0]);
var sec = Number(splsec[1].split('s')[0]);
min = min * 60;
var total = min + sec;
var newSource = window.video_source[iframeID] + "?start="+total+"&autoplay=1&rel=0";
$(video).attr('src', newSource);
});
};
})( jQuery );
Les heures de début et de fin utilisant le code intégré iframe ne fonctionnent pas avec mon test. Ce qui fonctionne pour moi est ce code:
De:
http://www.youtube.com/embed/[VIDEOID]
À:
http://www.youtube.com/v/[VIDEOID]&start=[SECONDS]&end=[SECONDS]
<object width="640" height="385">
<param name="movie" value="http://www.youtube.com/v/[VIDEOID]&start=100&end=500" />
<param name="allowscriptaccess" value="always" />
<embed src="http://www.youtube.com/v/[VIDEOID]&start=100&end=500" type="application/x-shockwave-flash" allowscriptaccess="always" width="640" height="385" />
</object>
Cela semble fonctionner (encore?) Avec le # t =, au moins pour les URL directes . L'URL indiquée: https://www.youtube.com/watch?v=Fk2bUvrv-Uc# t = 2m30s fonctionne, c’est-à-dire qu’il passe à 2min 30sec. Je l’ai testé sur FF, Chrome, IE11 . Mais il est probablement préférable d’utiliser & t =, & est le caractère de concaténation des arguments d’URL commun.