我有 YouTube ID 列表。我想获取每个视频的详细信息,例如标题、观看次数、点赞次数等。我的代码直到昨天都运行良好,突然抛出错误。
对于专家来说,最初我有视频 ID 列表。作为示例,我使用了 3 个 id。但实际上我有 100 多个 id。
video_id=['GGHiHodljug','PY8cEyi2MzM','QTCcJipjgxI']
后来,我定义了一个函数来检索视频信息并将其附加到各种列表中。
def get_video_details(youtube, video_id):
all_video_stats = []
for i in video_ids:
request = youtube.videos().list(part='snippet,statistics',id=video_id)
response = request.execute()
for video in response['items']:
video_stats = dict(Title = video['snippet']['title'],
Published_date = video['snippet']['publishedAt'],
Views = video['statistics']['viewCount'],
Likes = video['statistics']['likeCount'],
#Dislikes = video['statistics']['dislikeCount'],
Comments = video['statistics']['commentCount']
#Shares = video['statistics']['']
)
all_video_stats.append(video_stats)
return all_video_stats
现在,我尝试调用该函数。但它抛出了一个错误,直到昨天我才遇到过这个错误。
video_details = get_video_details(youtube,video_id)
收到的错误如下所示。
HttpError:
https://youtube.googleapis.com/youtube/v3/videos?part=snippet%2Cstatistics&id=kwlJUFUJeBU&id=9qjgV9UynUU&id=9BRNhfz9TZU&id=Cm614VNaapI&id=Gk0O1hBZL1g&id=QuIfcSDxEZY&id= lO48EoPn7-A&id=n1S886NBQYA&id=y4DGkrs7KcM&id=vk3ahtY5qE&id=Zr3cAIU6bZM&id= fLC_LfstdAA&id=s4aneR0tc1s&id=A0FJpd-lieI&id=7fFFfU6Cgmk&id=4VJSE59j1pM&id=ns51Rp7o_Bw&id=LQrMIBpGrbA&id=XOeTeM-1qKc&id=f6Ms318wTj0&id=etfoGZquiSA&id= a1LUlovdL_A&id=nTTBa4-0Z7I&id=6KOYprSy1KA&id=wjPmweQ4peQ&id=Cw0xY42b_Mo&id=-n_mVFPzeuY&id=R8ZNqKerC1o&id=JnZhAPBfPYw&id=8o2yLPDr_d8&id=DOoE4hPiJuw&id=M 4HRJXRZZAM&id=cNedzwOOqag&id =Qqj96rMBxTE&id=_0J7VcMtKkQ&id=kZ8ObOkzq4w&id=6P_wnhUb02g&id=kH5UPfi3cFQ&id=qtDl9Yu8or0&id=Xzn-URGHItA&id=xutJ2uQ4tT0&id=bZ71zj8BunU&id=gHtjv Lejc6E&id=92pTgb_7QI4&id=KKZkES9gfuE&id=Qj01vTif2yI&id=Qkc1A8cJEmw&id=whBSkar_rCs&id=wOPEC95vVUs&id=pi3Tm9lzvLU&id=Ip-PimAxgjw&id=r1W13UnMwLU&id=z68p5n BZ03k&id=6wMuvqUkgqY&id=b7AYFCw8cQA&id=nMrEiom0S74&id =-bGqNqT8Ckg&id=CSXPZuNVqGw&id=wP09CGKyDdg&id=eY_fPjwZ3hU&id=nT9mgg7BtH4&id=D2SqeQPr38I&id=h-0ELP6rNhQ&id=33OOngFBcnk&id=ojbMrcTlQ_s&id=Kt6xncrWZ UQ&id=xUCWiEhCIgI&id=jDEC_sV67B4&id=Dxw9xEpkeYk&id=tFiAsk_sOC0&id=eLLXCtd187I&id=3y499rX5A8Q&id=keTSJlzVu2I&id=RtnXrhDxpgo&id=VmbouDaMoM4&id=NWBNOA_fw cA&id=7mTnG30Y8c8&id=gOM5A0w8V1s&id=rLEDXBhuspk&id= XQ-NNWBySIo&id=_klVNQEzauU&id=ukNGhEZLEhw&id=eI8quor4HmM&id=DLbfMGozcyM&id=GZBAUuUbCFs&id=qwquUC4Wk0s&id=aEsEnJMiRqU&id=EKPQX6LC4Uw&id=Hman0BgKGhA&id=0jlFNP 8nDzs&id=n3iSKVMfbFw&id=Ypaah0zPWIo&id=oyOHOcyp2T8&id=aLmJ5zXsVtk&id=dEsEaJGYAZM&id=KGe7nId4GGs&id=BoRgRqqeiw8&id=GGHiHodljug&id=PY8cEyi2MzM&id=QTCcJipjg xI&key=AIzaSyDpPBFs9LZ-33rVUeSKyHCaz5E0UmWmZXk&alt=json 返回“请求指定了无效的过滤器参数。”。 详细信息:“[{'message': '请求指定了无效的过滤器 参数。', '域': 'youtube.参数', '原因': 'invalidFilters','位置':'参数。','locationType': '其他'}]">
若要传递多个video_id,元素之间用逗号分隔。
代替:
&id=f6Ms318wTj0&id=etfoGZquiSA&id=a1LUlovdL_A
用途:
&id=f6Ms318wTj0,etfoGZquiSA,a1LUlovdL_A
API端点不接受超过50个ID。 因此,如果我们有超过 50 个 id,则可以使用循环获取有关每个视频的信息。