如何使用 google 张脚本从 YouTube 播放列表中删除所有歌曲

How to remove ALL songs from a YouTube playlist with google sheets script

我有这个脚本可以从 YouTube 播放列表中删除视频。

function updateYTPlaylist() {

const ss = SpreadsheetApp.getActive();
const sh = ss.getSheetByName('Sheet1');
const yt_video_ids  = sh.getRange('A2:A'+sh.getLastRow()).getValues().flat([1]);
const playlistId =  "PL7Ias5xZGXQ-cRocGUGtJnS-x5Lbbgv-c";

const playlistResponse = YouTube.PlaylistItems.list('snippet', {playlistId: playlistId});
const playlistItem = playlistResponse.items;
playlistItem.forEach(dvid =>
{YouTube.PlaylistItems.remove(dvid.id);
Utilities.sleep(2000);}
);
                                                         
}

此脚本的问题是每个 运行 只删除 5 个项目。我需要它来删除播放列表中的所有视频。

我该怎么做?

因为maxResults的默认值是5。我认为你的问题的原因是由于这个。所以当你要检索超过5的项目时,请加上maxResults.

当项目数小于50时:

作为简单的修改,当播放列表项数小于50时,可以使用如下修改。

来自

const playlistResponse = YouTube.PlaylistItems.list('snippet', {playlistId: playlistId});

收件人:

const playlistResponse = YouTube.PlaylistItems.list('snippet', {playlistId: playlistId, maxResults: 50});

当项目数超过 50 时:

当播放列表的项目数超过50个时,需要使用nextPageToken。当你的脚本修改后,变成如下。

修改后的脚本:

const playlistId =  "PL7Ias5xZGXQ-cRocGUGtJnS-x5Lbbgv-c";

let playlistItems = [];
let pageToken = "";
do {
  const playlistResponse = YouTube.PlaylistItems.list('snippet', {playlistId: playlistId, maxResults: 50, pageToken: pageToken});
  playlistItems = playlistItems.concat(playlistResponse.items);
  pageToken = playlistResponse.nextPageToken || "";
} while (pageToken);

playlistItems.forEach(dvid => {
  YouTube.PlaylistItems.remove(dvid.id);
  Utilities.sleep(2000);
});

参考: