Python:Youtube数据API循环刷新播放列表

2024-09-30 14:17:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我的YT数据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()

我希望有人能帮忙


Tags: testidexecute视频youtuberesponserequest播放列表
1条回答
网友
1楼 · 发布于 2024-09-30 14:17:55

也许您需要在删除条目和下一个查询之间留出时间

而不是要求一次一个,要求一些更高的数字,并循环通过所有产生的视频ID。然后等待一段时间,让系统有时间做出响应,然后再次执行

另外,为了避免重击服务器,每当playlayitems查询返回零个条目时,在再次检查之前先休眠一段时间(例如,至少60秒)

相关问题 更多 >