嵌入 YouTube 播放列表,但先播放最后一个视频

Embed a YouTube playlist but play the last video first

如何将 YouTube 播放列表(来自我不管理的频道)嵌入到我自己的网站中,但 select 播放列表中的 last 视频作为谁先玩?

这当然没有想象中那么容易。你会认为你可以像使用 Vimeo 一样向 URL 添加一个索引参数。但是没有。

您必须使用 PlaylistItems endpoint of the YouTube Data API (yes, by creating a project in Google Cloud Platform 并生成一个 API 键)到 return 播放列表中所有视频的列表,获取其中最后一项的视频 ID列表,然后为您的 iframe 构建一个 URL,其中包括视频 ID 和播放列表 ID。

const apiKey = [YOUR_API_KEY]
const playlistId = 'PL....'
const urlBase = 'https://youtube.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=50&playlistId=' + playlistId + '&key=' + apiKey

const setIFrameSrc = async () => {
  let data = await fetch(urlBase).then(response => response.json())  // get first page of items
  while (data.nextPageToken)  // are there more items?
    data = await fetch(urlBase + '&pageToken=' + data.nextPageToken).then(response => response.json())  // get next page of items
  const snippet = data.items.pop().snippet  // pop() grabs the last item
  document.getElementById('[YOUR_IFRAME_ID]').src = 'https://www.youtube.com/embed/' + snippet.resourceId.videoId + '?listType=playlist&list=' + playlistId
}
setIFrameSrc()