我的YT Data API有问题。我有一个循环,它从播放列表中获取一个视频ID,下载这个视频并从播放列表中将其删除。但在下一个循环中,程序想要下载相同的视频,因为再次执行的列表会返回,视频不会被删除(但实际上是(。有没有办法刷新播放列表,而不在每个循环中进行OAuth?
while True:
request = youtube.playlistItems().list(
part="contentDetails",
maxResults=1,
playlistId="myPlaylistksdjfksjdfks"
)
response = request.execute()
test = response['items']
test2 = test[0]
idvid = test2['id']
test3 = test2['contentDetails']
videoid = test3['videoId']
videourl = 'https://www.youtube.com/watch?v=' + videoid
ydl_opts = {
'format': 'bestaudio/best',
'postprocessors': [{
'key': 'FFmpegExtractAudio',
'preferredcodec': 'mp3',
'preferredquality': '192',
}],
}
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
ydl.download([videourl])
delquest = youtube.playlistItems().delete(
id=idvid
)
delquest.execute()
我希望有人能帮助
也许您需要在删除条目和下一个查询之间留出时间。
与其一次要求一个,不如要求更高的数字,并循环查看所有生成的视频ID。然后等待一段时间,让系统有时间做出响应,然后再次运行。
此外,为了避免对服务器造成冲击,每当playlistitems查询返回零条目时,在再次检查之前(比如,至少60秒(,请先休眠一段时间