Почему я получаю только один результат только от youtube api
У меня есть список идентификаторов видео как строк различных видео на youtube, но когда я получаю данные для всех идентификаторов видео, я получаю результат только для последнего видео.
Вот мой код :
search_url = 'https://www.googleapis.com/youtube/v3/videos'
parameter = {
'key' : settings.YOUTUBE_DATA_API_KEY,
'part' : 'snippet',
'id' : ','.join(video_id)
}
data = requests.get(search_url,params=parameter)
results = data.json()['items']
В приведенном выше коде video_id - это список, содержащий идентификаторы видео.
Я получаю файл csv, в котором есть ссылки на видео youtube, и я беру из него id видео и добавляю их в список video_id следующим образом:
rows = []
video_id = []
file = request.FILES["file"].readlines()
for f in file:
rows.append((f.decode('utf-8')))
for row in rows[0:len(rows)-1]:
video_id.append((row[-13:]))
video_id.append((rows[len(rows)-1][-11:]))
Полный код:
def home(request):
if request.method == 'POST':
rows = []
video_id = []
file = request.FILES["file"].readlines()
for f in file:
rows.append((f.decode('utf-8')))
for row in rows[0:len(rows)-1]:
video_id.append((row[-13:]))
video_id.append((rows[len(rows)-1][-11:]))
print(len(video_id))
for v in video_id:
print(v)
search_url = 'https://www.googleapis.com/youtube/v3/videos'
parameter = {
'key' : settings.YOUTUBE_DATA_API_KEY,
'part' : 'snippet',
'id' : ','.join(video_id)
}
data = requests.get(search_url,params=parameter)
results = data.json()['items']
channel_list = []
for result in results:
data = {
'channel_name' : result['snippet']['channelTitle']
}
channel_list.append(data)
for list in channel_list:
print(list)
return HttpResponse("Uploaded successfully")
return render(request,'index.html')
Вы используете конечную точку для получения информации об одном видео вместо конечной точки list
, которая предназначена для получения информации о нескольких видео.
Так что все, что вам нужно, это заменить это:
search_url = 'https://www.googleapis.com/youtube/v3/videos'
с этим:
search_url = 'https://www.googleapis.com/youtube/v3/videos/list'
Я получил ответ. Ошибка была с идентификаторами видео, потому что идентификаторы содержат \r\n в конце.