如何自定义YouTube视频的结束时间?


152

我试图弄清楚如何为嵌入式YouTube视频指定自定义结束时间。我知道我可以通过添加&start = 30来自定义开始时间,但是我没有看到任何与结束时间有关的信息。

我需要能够针对正在构建的网络应用执行此操作,因此,如果YouTube无法提供任何方法,那么我怎么能做到这一点?

我略过文档无济于事。谢谢!


将此答案标记为解决方案。
Iulian Onofrei

Answers:


202

我刚刚发现以下作品:

https://www.youtube.com/embed/[video_id]?start=[start_at_second]&end=[end_at_second]

注意:时间必须是整数秒(例如119,而不是1m59s)。


38
是的,它确实有效。同样,version=3可能没有必要。确保使用链接的“ API”形式,例如:https://www.youtube.com/v/7qkmGjWtG0w?start=840&end=1240&autoplay=1,而不是通常的形式,该形式的开头是:https://www.youtube.com/watch?v=7qkmGjWtG0w
Kai Carver 2014年

2
但是,它似乎返回了Flash / SWF流...在Chrome / Windows和IE上对我来说效果很好,但在Firefox上却不行。
Kai Carver 2014年

3
这种狗屎一直在变化。阅读API developers.google.com/youtube/documentation
PHearst,2015年

5
您甚至可以尝试使用这种形式:http://www.youtube.com/embed/BmOpD46eZoA?start=36&end=65易卜拉欣·乌鲁卡亚(Ibrahim Ulukaya)回答类似问题的建议
danicotra 16-10-29

2
如果您不嵌入视频,有没有办法做到这一点?我只想要一个可以与开始和结束时间共享的常规链接。我要分享的视频不允许嵌入。
JoeMjr2

66

我尝试了@ mystic11(https://stackoverflow.com/a/11422551/506073)的方法,并得到了重定向。这是一个有效的示例网址

http://youtube.googleapis.com/v/WA8sLsM3McU?start=15&end=20&version=3

如果version=3省略该参数,则视频将从正确的位置开始,但一直播放到结尾。从参数的文档中,end我猜是version=3要求使用AS3播放器。看到:

结束(支持的播放器:AS3,HTML5)

其他实验

自动播放

剪辑的视频部分的自动播放有效:

http://youtube.googleapis.com/v/WA8sLsM3McU?start=15&end=20&version=3&autoplay=1

循环播放

不幸的是,根据文档添加循环会在视频开始处开始第二次和后续迭代:http: //youtube.googleapis.com/v/WA8sLsM3McU?start=15&end=20&version=3&loop=1&playlist=WA8sLsM3McU

要正确执行此操作,您可能需要设置enablejsapi=1和使用javascript API

仅供参考,上面的视频循环播放:http : //www.infinitelooper.com/?v= WA8sLsM3McU&p =n#/15;19

删除品牌和相关视频

要删除Youtube徽标和要播放的视频结束时要单击的视频列表,请添加以下(&modestBranding=1&rel=0)参数:

http://youtube.googleapis.com/v/WA8sLsM3McU?start=15&end=20&version=3&autoplay=1&modestBranding=1&rel=0

使用删除上传者信息showinfo=0

http://youtube.googleapis.com/v/WA8sLsM3McU?start=15&end=20&version=3&autoplay=1&modestBranding=1&rel=0&showinfo=0

这样可以消除带有视频标题,上下拇指以及视频顶部的信息图标的细条。制作的最终版本相当干净,没有负面影响,让观众在观看想要观看的视频部分结束时可​​以退出YouTube的无效点击。


如何以分钟和秒为单位给出时间?
NEO

1
youtube.googleapis.com工作时,www.youtube.googleapis.com给我一个ssl错误。但是,如果您之前已经看过视频并将其留在某个点,则播放器会忽略指定的开始值,而跳到您所观看的位置处,似乎会出现状态问题
worenga 2015年


我只是尝试了https://www.youtube.com/embed/[video_id]?start=[start_at_second]&end=[end_at_second],但没有成功。https://www.youtube.com/embed/[video_id]&start=[start_at_second]&end=[end_at_second]做到了。注意&start=
hmj6jmh

@ hmj6jmh令人讨厌。这意味着youtube发生了变化,将&字符(通常是查询定界符)推入URI的路径部分。
ahcox


4

YouTube在结束时间内没有提供任何选择,但是有其他网站可以提供这种选择,例如 Tubechop。否则,请尝试编写一个函数,当您的视频播放了所需的时长时,可以将视频暂停/跳至下一个。

或者:使用Youtube Javascript播放器API,您可以执行以下操作:

function onPlayerStateChange(evt) {
    if (evt.data == YT.PlayerState.PLAYING && !done) {
        setTimeout(stopVideo, 6000);
        done = true;
    }
}

YouTube API博客


2
刚才mystic11的答案对我来说非常理想。我想知道它是否可靠。
马修

3
这是错的Youtube doesn't provide any option for an end time, but 。休息好。
空头

2
@NullHead您正在看的是2011年写的东西。
PHearst

1

今天我发现,旧的方法不能很好地工作。

因此,我使用了:“自定义YouTube开始时间和结束时间-Acetrot.com” http://www.youtubestartend.com/上的

他们提供了一个链接到 https://xxxx.app.goo.gl/yyyyyyyyyyhttps://v637g.app.goo.gl/Cs2SV9NEeoweNGGy9 链接包含着格式这样 https://www.youtube.com/embed / xyzabc123?start = 17&end = 21&version = 3&autoplay = 1


这与上面获得最高投票的答案相同。stackoverflow.com/a/11422551/857012
Brian Gordon

谢谢!我假设(也许希望是一个更好的词),这将是比投票最高的答案更长久的解决方案,因为当YouTube更改其网址格式时,他们可以对其进行更新(投票最高的答案目前不起作用,因为格式更改)。
Scott Gartner
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.