什么会导致这个 youtube 嵌入字符串停止工作?

What would cause this youtube embed string to stop working?

我将 youtube 链接保存在数据存储中,以便根据主题分批查看。 我基本上用标题注释和长度数据保存了 videoid。

我使用 php 构建了自定义查看器。我已经按照我想要的方式使用它至少 10 个月了。在此期间,格式发生了重大变化,我能够适应这一变化。

现在,今天,似乎又发生了重大变化,我很想知道这是我的代码还是 youtube 的嵌入语法。

下面是来自 Veritasium 频道的 YouTube 视频 ID 列表:

2KZb2_vcNTg,Ux33-5k8cjg,vqDbMEdLiCs,myh94hpFmJY,Iuv6hY6zsd0,vWVZ6APXM4w,BD6h-wDj7bw,1Xp_imnO6WE,38gVZgE39K8,XAgXwUwQoPA,rAYW9n8i-C4

我使用以下基准语法动态构建 iframe:

<iframe id="myiframe" class="myplaylist" width="720" height="405" src="https://www.youtube.com/embed/videoseries?playlist= <comma separated list of video id's> &amp;controls=1?enablejsapi=1" frameborder="0" allowfullscreen=""></iframe>

因此,由这两部分创建的功能性 iframe 元素如下所示:

<iframe id="myiframe" class="myplaylist" width="720" height="405" src="https://www.youtube.com/embed/videoseries?playlist=2KZb2_vcNTg,Ux33-5k8cjg,vqDbMEdLiCs,myh94hpFmJY,Iuv6hY6zsd0,vWVZ6APXM4w,BD6h-wDj7bw,1Xp_imnO6WE,38gVZgE39K8,XAgXwUwQoPA,rAYW9n8i-C4&amp;controls=1?enablejsapi=1" frameborder="0" allowfullscreen=""></iframe>

这不能作为一个片段,但作为一个 html 元素,它应该显示一个 youtube 播放器,并在右上角显示一个计数器和排队视频的下拉列表,就好像你正在查看 youtube 网站上的播放列表。

例如(除了这个是演示新问题):

如果有人会尝试这个已完成的标签,看看嵌入式播放器是否正常工作,将会有所帮助。 我不知道哪里出了问题。

我认为是 YouTube。我不知道这是有意为之还是错误,但 YouTube 端肯定发生了一些变化。

如果您复制视频的 URL,它就是 https://youtu.be/videoseries - YouTube 不再将 /videoseries 识别为特殊的 URL,并且只是尝试加载它,就好像是播放列表前面的视频片段。

看起来可能的解决方法是简单地从嵌入 URL 中删除 videoseries,如下所示:

<iframe id="myiframe" class="myplaylist" width="720" height="405" src="https://www.youtube.com/embed/?playlist=2KZb2_vcNTg,Ux33-5k8cjg,vqDbMEdLiCs,myh94hpFmJY,Iuv6hY6zsd0,vWVZ6APXM4w,BD6h-wDj7bw,1Xp_imnO6WE,38gVZgE39K8,XAgXwUwQoPA,rAYW9n8i-C4&amp;controls=1?enablejsapi=1" frameborder="0" allowfullscreen=""></iframe>

根据一位客户的说法,他的嵌入式 YouTube 视频今天以同样的方式损坏,当他今天查看他的 YouTube 帐户中的一个播放列表时,现在有一个新的 URL 提供用于嵌入它。我们用新的 URL 替换了旧的 URL,问题就解决了。

New URL is of the format https://www.youtube.com/embed/<new id code>

Old URL is of the format https://www.youtube.com/embed/videoseries?list=<old id code>