動画自体の削除ではなく、再生リストから削除します。
ベースの記事はこちらです。
再生リストから動画削除コード
'use strict';
const fs = require('fs');
const {google} = require('googleapis');
const googleAuth = () => {
const CREDENTIALS_PATH = 'client_secret.json';
const TOKEN_PATH = 'token.json';
const credentials = JSON.parse(fs.readFileSync(CREDENTIALS_PATH, 'utf8'));
const token = JSON.parse(fs.readFileSync(TOKEN_PATH, 'utf8'));
const {client_secret, client_id, redirect_uris} = credentials.installed;
const oAuth2Client = new google.auth.OAuth2(client_id, client_secret, redirect_uris[0]);
oAuth2Client.setCredentials(token);
return oAuth2Client;
};
const oldPlayListId = `PLe~~~~~~~`; //再生リストID
const videoId = `XXXXXXX`; //再生リストから削除したい動画のID
(async () => {
const auth = googleAuth();
const youtube = google.youtube({version: 'v3', auth});
try {
const res = await youtube.playlistItems.list({
part: 'snippet',
maxResults: 50, // 一度に取得する最大動画数
playlistId: oldPlayListId
});
const item = res.data.items.find(i => i.snippet.resourceId.videoId === videoId);
if (!item) {
throw new Error('指定された動画はプレイリストに存在しません');
}
//プレイリストから動画を削除
await youtube.playlistItems.delete({
id: item.id //おそらくプレイリスト+動画の連携ID的なもの
});
} catch (error) {
console.log('The API returned an error: ' + error);
}
})();
playlistItems.deleteが気になった
今回もGPTに聞いて生成してもらったコードでした。
await youtube.playlistItems.delete({
id: item.id //おそらくプレイリスト+動画の連携ID的なもの
});
これでIDだけ指定していて、再生リストと動画の連携がどうなってるんだろうって感じでしたが、ここのitem.idはどうやらプレイリスト+動画の連携ID的なもの
となっている模様でIDを入れれば紐づいている動画と再生リストのリンクが解除される模様です。
疑ってごめん。