如何删除 Youtube 播放列表中的视频并每天填充新视频
How to delete videos in a Youtube playlist and populate with new videos daily
我有以下代码可以使用视频 ID 从 google 工作表将视频添加到播放列表。
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 = "PL7Ias5xZGXQ9o60ezsHZhl8NkoSm7Tdvj";
yt_video_ids.forEach( vid =>
YouTube.PlaylistItems.insert({
snippet: {
playlistId: playlistId,
resourceId: {
kind: "youtube#video",
videoId: vid
}
}
}, "snippet"));
Utilities.sleep(2000);
}
我还想删除前一天存在的视频,然后再添加新视频,但不确定该怎么做。
Here 是从播放列表中删除项目的官方文档。不幸的是,此 http 请求只会从播放列表中删除一个视频,因此您必须遍历播放列表中所有视频的 ID,一次删除一个。
YouTube API 不提供有关您何时将特定视频添加到播放列表的信息。所以我们不能只删除前一天的视频。我的建议是创建一个新的播放列表,然后 每天 你将 运行 一个函数(通过时间基础触发器)删除当前视频(前一天添加的)然后添加新的。因此,脚本的第一部分将清除您的播放列表,第二部分将添加 新视频。
清除播放列表:
我将以下代码片段添加到您的代码中,用于从您的播放列表中删除每个视频;或者换句话说,它会清除您的播放列表:
const playlistResponse = YouTube.PlaylistItems.list('snippet', {playlistId: playlistId});
const playlistItem = playlistResponse.items;
playlistItem.forEach(dvid =>
{YouTube.PlaylistItems.remove(dvid.id);
Utilities.sleep(2000);}
);
清除播放列表并添加新视频:
因此,清除播放列表然后添加 youtube视频的完整代码A Sheet1 的列如下:
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 = "PL7Ias5xZGXQ9o60ezsHZhl8NkoSm7Tdvj";
const playlistResponse = YouTube.PlaylistItems.list('snippet', {playlistId: playlistId});
const playlistItem = playlistResponse.items;
playlistItem.forEach(dvid =>
{YouTube.PlaylistItems.remove(dvid.id);
Utilities.sleep(2000);}
);
yt_video_ids.forEach( avid =>
YouTube.PlaylistItems.insert({
snippet: {
playlistId: playlistId,
resourceId: {
kind: "youtube#video",
videoId: avid
}
}
}, "snippet"));
Utilities.sleep(2000);
}
资源:
在 google 脚本编辑器中,您需要单击 资源 => 高级 Google 服务 和然后启用 YouTube 数据 API v3(目前这是最新版本)。
我有以下代码可以使用视频 ID 从 google 工作表将视频添加到播放列表。
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 = "PL7Ias5xZGXQ9o60ezsHZhl8NkoSm7Tdvj";
yt_video_ids.forEach( vid =>
YouTube.PlaylistItems.insert({
snippet: {
playlistId: playlistId,
resourceId: {
kind: "youtube#video",
videoId: vid
}
}
}, "snippet"));
Utilities.sleep(2000);
}
我还想删除前一天存在的视频,然后再添加新视频,但不确定该怎么做。
Here 是从播放列表中删除项目的官方文档。不幸的是,此 http 请求只会从播放列表中删除一个视频,因此您必须遍历播放列表中所有视频的 ID,一次删除一个。
YouTube API 不提供有关您何时将特定视频添加到播放列表的信息。所以我们不能只删除前一天的视频。我的建议是创建一个新的播放列表,然后 每天 你将 运行 一个函数(通过时间基础触发器)删除当前视频(前一天添加的)然后添加新的。因此,脚本的第一部分将清除您的播放列表,第二部分将添加 新视频。
清除播放列表:
我将以下代码片段添加到您的代码中,用于从您的播放列表中删除每个视频;或者换句话说,它会清除您的播放列表:
const playlistResponse = YouTube.PlaylistItems.list('snippet', {playlistId: playlistId});
const playlistItem = playlistResponse.items;
playlistItem.forEach(dvid =>
{YouTube.PlaylistItems.remove(dvid.id);
Utilities.sleep(2000);}
);
清除播放列表并添加新视频:
因此,清除播放列表然后添加 youtube视频的完整代码A Sheet1 的列如下:
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 = "PL7Ias5xZGXQ9o60ezsHZhl8NkoSm7Tdvj";
const playlistResponse = YouTube.PlaylistItems.list('snippet', {playlistId: playlistId});
const playlistItem = playlistResponse.items;
playlistItem.forEach(dvid =>
{YouTube.PlaylistItems.remove(dvid.id);
Utilities.sleep(2000);}
);
yt_video_ids.forEach( avid =>
YouTube.PlaylistItems.insert({
snippet: {
playlistId: playlistId,
resourceId: {
kind: "youtube#video",
videoId: avid
}
}
}, "snippet"));
Utilities.sleep(2000);
}
资源:
在 google 脚本编辑器中,您需要单击 资源 => 高级 Google 服务 和然后启用 YouTube 数据 API v3(目前这是最新版本)。