如何删除YouTube播放列表中的视频并每天填充新视频

问题描述

我有以下代码,可以使用视频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);}
);

清除播放列表并添加新视频:

因此,根据 Sheet1 A 列,清除一个播放列表,然后添加个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 =  "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 Data API v3 (自现在是最新版本。