最近,可以使用#t=2m0s
或#t=120
来设置直接链接的开始时间:
http://www.youtube.com/watch?v=Fk2bUvrv-Uc#t=2m30s
以及嵌入视频:
<iframe width="420" height="315" \
src="http://www.youtube.com/embed/Fk2bUvrv-Uc#t=2m30s" \
frameborder="0" allowfullscreen></iframe>
现在看来YouTube掉了#t开始时间支持,上面的功能不再适用了。我现在如何在特定的开始时间内引用视频?
答案 0 :(得分:58)
现在看起来使用了不同的参数 - start=<number of seconds>
(请参阅this blog和documentation)。
示例:
<iframe width="420" height="315" frameborder="0" allowfullscreen
src="http://www.youtube.com/embed/Nc9xq-TVyHI?start=110&end=119"></iframe>
对于直接链接,只需将#
替换为&
:
http://www.youtube.com/watch?v=Fk2bUvrv-Uc&t=2m30s
答案 1 :(得分:14)
您可以使用&amp; t =代替#t =
答案 2 :(得分:3)
YouTube放弃了对嵌入视频的#t开始时间支持。现在我们需要以太网根据新API直接使用start=N&end=M
参数,或者编写一些额外的代码,将旧的#t=(n)m(n)s
符号转换为新的API兼容样式。
答案 3 :(得分:3)
我能够根据开头和结尾让视频片段工作,但确切的代码需要如下:
?开始= X&安培;端= Y
其中x是以秒为单位的开始时间,y是以秒为单位的结束时间
如果'?'不存在它不起作用。此外,代码需要直接放在URL后面没有任何空格,否则它不起作用。
答案 4 :(得分:1)
我使用这个方法和JQuery插件分享了大量的视频。我已经调整了插件,以便您可以继续使用(n)m(n)的表示法。你可以相当容易地改变它,从URL中获取#t值,而不是我存储它的data
属性。
(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 );
答案 5 :(得分:0)
使用iframe嵌入代码的开始和结束时间在我的测试中无效。对我有用的是这段代码:
自:
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>
答案 6 :(得分:0)
似乎对(#t =)工作(再次?),至少对于直接URL。 声明的网址: https://www.youtube.com/watch?v=Fk2bUvrv-Uc#t=2m30s 工作,即:它跳到2分30秒。 我在FF,Chrome,IE11上测试了这个。 但最好使用&amp; t =,&amp;是连接字符的常见URL参数。
答案 7 :(得分:0)
使用
/watch?v=<videoID>&t=<s>
使用
<videoID>=id of the video
<t>=number of seconds to skip
示例:
https://m.youtube.com/watch?t=58&v=9W35QxCZnK4
视频从58秒开始 或
https://www.youtube.com/watch?t=120&v=9W35QxCZnK4
视频从2分钟开始