Youtube Data API: получение общего количества комментариев, лайков и антипатий - PullRequest
0 голосов
/ 17 июня 2020

У меня эта проблема.

У меня есть список каналов YouTube, которые я опрашиваю через API, чтобы получать статистику ежедневно.

  • Общее количество комментариев, лайков и антипатий (все time и все видео)

Я реализовал приведенное ниже, оно работает, но циклически просматривает каждое видео по одному, попадая в API.

Есть ли способ сделать один вызов API с несколькими идентификаторами видео?

Или есть лучший способ сделать это и получить эту статистику?

#find stats for all channel videos - how will this scale?
def video_stats(row):
  videoid = row['video_id']
  query = yt.get_video_metadata(videoid)
  vids = pd.DataFrame(query, index=[0])
  df['views'] = vids['video_view_count'].sum()
  df['comments']  = vids['video_comment_count'].sum()
  df['likes'] = vids['video_like_count'].sum()
  df['dislikes'] = vids['video_dislike_count'].sum()
  return 'no'

df['stats'] = df.apply(video_stats, axis = 1)

channel['views'] = df['views'].sum()
channel['comments'] = df['comments'].sum()
channel['likes'] = df['likes'].sum()
channel['dislikes'] = df['dislikes'].sum()

1 Ответ

2 голосов
/ 17 июня 2020

Согласно docs , вы можете объединить в одну Videos.list конечную точку API, вызывающую идентификаторы нескольких разных видео:

id : string

Параметр id указывает разделенный запятыми список идентификаторов видео YouTube для извлекаемых ресурсов. В видеоресурсе свойство id определяет идентификатор видео.

Однако показанный вами код слишком краток, чтобы найти способ его адаптации к такому типу (пакетного) вызова конечной точки. .

...