单个嵌入 URL 中的多个 YouTube 视频

Posted

技术标签:

【中文标题】单个嵌入 URL 中的多个 YouTube 视频【英文标题】:Multiple YouTube videos in a single embed URL 【发布时间】:2020-07-24 10:22:15 【问题描述】:

是否可以创建一个包含多个视频的开始和结束时间的嵌入 URL;像下面?

http://www.youtube.com/embed/VTNSdABrKAI?start=134&end=225/embed/I4LoGhyb2uc?start=172&end=257

因此下一个剪辑在同一视频帧中播放,而不是在网页上放置多个嵌入 URL;

http://www.youtube.com/embed/VTNSdABrKAI?start=134&end=225

http://www.youtube.com/embed/I4LoGhyb2uc?start=172&end=257

或者避免创建、编辑和上传全新的 YouTube 视频以及处理以下版权主张?

https://www.youtube.com/watch?v=9DNmc618JwE

【问题讨论】:

您的意思是可以使用嵌入 URL 中的视频 ID 创建自定义播放列表吗? @NewToJS,是的,包含视频 ID 的播放列表以及播放列表中每个视频的自定义开始和结束时间。 【参考方案1】:

Youtube 允许您在自己的频道上programmatically create playlists 和add items to playlists。 playlistItems/insert 调用还允许您为剪辑提供 specify 和 positionstartAtendAt 属性,这似乎涵盖了您的用例。

使用此 API 的一个注意事项 - 您必须是 registered with them to use it

播放列表可以包含up to 200 videos

UPD 我运行了以下 API 请求并成功创建了a playlist。

curl --request POST \
  'https://www.googleapis.com/youtube/v3/playlists?part=snippet%2Cstatus&key=[YOUR_API_KEY]' \
  --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '"snippet":"title":"Sample playlist created via API","description":"This is a sample playlist description.","status":"privacyStatus":"unlisted"' \
  --compressed
curl --request POST \
  'https://www.googleapis.com/youtube/v3/playlistItems?part=snippet%2CcontentDetails&key=[YOUR_API_KEY]' \
  --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '"snippet":"playlistId":"PL5W0uIHD5lLZAK1reCuTDFpGMPygNDWvm","position":0,"resourceId":"kind":"youtube#video","videoId":"PLOPygVcaVE","contentDetails":"videoId":"PLOPygVcaVE","startAt":"PT4H37M0.000S","endAt":"PT4H38M0.000S"' \
  --compressed
curl --request POST \
  'https://www.googleapis.com/youtube/v3/playlistItems?part=snippet%2CcontentDetails&key=[YOUR_API_KEY]' \
  --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '"snippet":"playlistId":"PL5W0uIHD5lLZAK1reCuTDFpGMPygNDWvm","position":1,"resourceId":"kind":"youtube#video","videoId":"L_LUpnjgPso","contentDetails":"videoId":"L_LUpnjgPso","startAt":"PT8H37M0.000S","endAt":"PT8H38M0.000S"' \
  --compressed

但是,YouTube 似乎有 deprecated、contentDetails.startAtcontentDetails.endAt,我建议你依赖它们:开始时间似乎仍然有效,但剪辑一直播放到结束。

我建议您查看来自 this SO thread 的建议 - 您也许可以从那里的答案中汲取一些想法(例如在播放器中使用 3rd 方或 javascript 事件)

【讨论】:

您能否分享一个包含 2 个视频的示例播放列表,其中两个视频都指定了开始和结束时间? 感谢分享示例。 http://www.youtubestartend.com/ 无法添加多个视频。也找不到 JavaScript 播放器事件的示例。

以上是关于单个嵌入 URL 中的多个 YouTube 视频的主要内容,如果未能解决你的问题,请参考以下文章

将 Youtube 视频嵌入 Facebook 并以特定时间码播放

Youtube 嵌入视频 - 删除最终信息屏幕

Youtube Data API:在单个请求中按 ID 检索多个视频条目

如何嵌入新的 Youtube 直播视频永久 URL?

使用 jQuery 从 URL 获取 YouTube 视频 ID

URL 清理导致嵌入式 YouTube 视频的刷新