You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用YouTube API批量添加视频到播放列表时遇SERVICE_UNAVAILABLE错误

批量调用YouTube API的new_batch_http_request()添加视频到播放列表仅单个成功,其余返回SERVICE_UNAVAILABLE错误

我已经使用YouTube API客户端多日,成功实现单个视频添加到播放列表。现在尝试通过批量HTTP请求(new_batch_http_request())将多个视频批量添加到播放列表。我知道可以通过循环视频列表逐个发起请求,但之前看到有说法称批量请求可减少配额消耗,虽然有不同观点,但希望亲自验证。

问题在于执行批量请求时,仅1个视频成功添加,其余均返回异常:

return (<HttpError 409 when requesting https://youtube.googleapis.com/youtube/v3/playlistItems?part=snippet&alt=json returned "The operation was aborted.". Details: "[{'domain': 'youtube.CoreErrorDomain', 'reason': 'SERVICE_UNAVAILABLE'}]">
)

列表中总有一个视频能成功添加,但不一定是第一个或最后一个。

我使用的代码如下:

from googleapiclient.discovery import build
from authentication import authenticate

credentials = authenticate()
playlist_id = "PAAqJtw5-yz3jRraaH13HlxhnjE4hw_wDu" # dummy ID
video_ids = ["TWTX1T3yxzs", "1P1BSm_4FJg", "Pyx_FIYa7EE"] # dummy IDs

youtube = build("youtube", "v3", credentials=credentials)

batch_request = youtube.new_batch_http_request()

def callback(request_id, response, exception):
        if exception is not None:
            print(f"Error adding video {request_id}: {exception}")
        else:
            video_id = response['snippet']['resourceId']['videoId']
            print(f"Added video {video_id} to playlist {playlist_id}")

for video_id in video_ids:
    req_body = {"snippet": {"playlistId": playlist_id,
                        "resourceId": {
                            "kind": "youtube#video",
                            "videoId": video_id}
                            }}   
    request = youtube.playlistItems().insert(part="snippet", body=req_body)
    print(f"Adding video {video_id} to request...")
    batch_request.add(request, callback=callback)
    
print("Executing request...")
batch_request.execute()

我曾认为是配额问题,但已排除。我尝试查找该错误的相关信息但无果,不确定这是否是playlistItems().insert使用批量请求时的限制。

补充说明

  • 已排除推荐的类似问题:相关问题针对的是配额错误,且场景为上传视频而非添加视频到播放列表,与我的问题不符。
  • 配额验证:当前远低于每日10000次请求的配额限制,每次重新运行脚本都有一个视频成功添加,错误类型为SERVICE_UNAVAILABLE而非配额相关错误;且逐个发起请求时无任何问题,配额报告显示未达限额。
  • 批量请求配额消耗验证:重置配额后,发起包含3个API调用的单次批量请求,控制台显示消耗了150配额,与每个视频50的消耗一致;重复操作后,配额消耗正常累加,确认批量请求无法减少配额消耗。

尽管逐个循环发起请求可以正常工作且配额消耗一致,但批量请求仍是减少网络开销的优选方式,希望了解如何使其正常运行。

内容的提问来源于stack exchange,提问作者Tom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 15:54:56