最近对 youtube API 进行了更改以在动态播放列表中嵌入多个视频?

Recent changes to youtube API for embedding multiple videos in dynamic playlist?

去年我一直在使用 PHP 脚本从一小部分视频中构建播放列表。 它将构建所选视频的自定义播放列表,并呈现 API 中的一组播放列表控件。昨天这个时候还可以,现在不行了。

这是损坏的片段:

$result = "<iframe width=\"720\" height=\"405\" src=\"https://www.youtube.com/embed/?playlist=";
$last = count($playlist) -1;
for ($k=0; $k < count($playlist); $k++){
  if ($k < $last){
    $result = $result . $playlist[$k]['videoid'] . ",";
  } else {
    $result = $result . $playlist[$k]['videoid'] . "&controls=1\" frameborder=\"0\" allowfullscreen></iframe>";
  }

我收到以下错误,而不是嵌入播放选择列表:

An error occurred. Please try again later. (Playback ID: jBLBkfJOl8-X0sct)

2020 年 8 月 31 日 API 有什么变化吗? 我没有在 API 中找到任何专门关于构建自定义播放列表的文档或信息。我不想搜索现有的播放列表,我想根据为观看而培养的视频链接构建一个播放列表。

我从 this Whosebug answer

改编了我的解决方案

我悬赏这个问题,因为同样的问题发生在我身上,我忙于其他事情,没有时间在使用它的个人项目上尝试和调试这个问题。

仍然不完全确定是什么导致它突然中断,因为我仍然没有看到任何关于 youtube 更改其 api 的通知,但这在使用 google 产品时并不罕见 apis.

这个问题的简短回答是,您现在需要在播放列表查询字符串之前包含要嵌入的初始视频 ID。

所以嵌入代码现在需要如下所示:

<iframe id="ytplayer" type="text/html" width="720" height="405"
            src="https://www.youtube.com/embed/Yc4VO8yzYcU?playlist=Y8R4Wvw7wlg,hz2HIKsQfIw,0UbCOpRye5c&playsinline=1"
            frameborder="0" allowfullscreen>

仅供参考:Google 似乎已经更新了如何显示频道播放列表以显示最新视频:https://support.google.com/youtube/answer/171780?hl=en

示例嵌入代码现在需要在“embed/”之后和“?list”之前包含“videoseries”:

<iframe width="560" height="315" src="https://www.youtube.com/embed/videoseries?list=PLx0sYbCqOb8TBPRdmBHs5Iftvv9TPboYG" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>