Pour un groupe d'utilisateurs qui déplacent des commentaires vers un canal spécifique, obtenez le canal que chaque utilisateur a enregistré. Est-il possible d'estimer la clientèle de cette manière? Supposition. S'il y a plusieurs utilisateurs qui ont enregistré le même canal, il est possible que la base de clients soit ceux qui sont intéressés par les sujets de ce canal. (Il n'a pas été vérifié si la clientèle peut être estimée, je la posterai donc quelque part si possible)
import requests
import pandas as pd
def get_comment_info(channel_id, pageToken):
comment_url = "https://www.googleapis.com/youtube/v3/commentThreads"
param = {
'key': 【Browser Key】
, 'allThreadsRelatedToChannelId': channel_id
, 'part': 'replies, snippet'
#Si vous n'avez pas besoin d'obtenir l'arborescence des réponses, vous n'avez pas besoin de réponses
, 'maxResults': '50'
, 'pageToken': pageToken
}
req = requests.get(comment_url, params=param)
return req.json()
comment_df = pd.DataFrame([]*3, columns=["video_id", "author_name", "channel_id"])
for comment_thread in req["items"]:
video_id = comment_thread["snippet"]["videoId"]
author_name = comment_thread["snippet"]["topLevelComment"]["snippet"]["authorDisplayName"]
author_channel = comment_thread["snippet"]["topLevelComment"]["snippet"]["authorChannelId"]["value"]
comment_df = comment_df.append(pd.DataFrame([[video_id, author_name, author_channel]], columns=["video_id", "author_name", "channel_id"]))
if "replies" in comment_thread and "comments" in comment_thread["replies"]:
for replies in comment_thread["replies"]["comments"]:
author_name = replies["snippet"]["authorDisplayName"]
author_channel = replies["snippet"]["authorChannelId"]["value"]
comment_df = comment_df.append(pd.DataFrame([[video_id, author_name, author_channel]], columns=["video_id", "author_name", "channel_id"]))
Les points sont les deux suivants
De plus, dans l'exemple ci-dessus, seuls le nom du canal et le channel_id de la personne qui a commenté sont acquis, mais si vous souhaitez acquérir le texte du commentaire, vous pouvez l'acquérir ci-dessous.
comment_thread["snippet"]["topLevelComment"]["snippet"]["textDisplay"]
replies["snippet"]["textDisplay"]
Veuillez consulter ce document pour plus de détails ou pour une utilisation légèrement différente. Par exemple, cette fois, nous spécifions channel_id pour obtenir des commentaires associés à toutes les vidéos publiées sur cette chaîne, mais il est également possible de ne spécifier que des vidéos spécifiques. https://developers.google.com/youtube/v3/docs/commentThreads?hl=ja
def get_subscription_info(channel_id, pageToken):
subscription_url = 'https://www.googleapis.com/youtube/v3/subscriptions'
param = {
'key': 【Browser Key】
, 'channelId': channel_id
, 'part': 'snippet'
, 'maxResults': '50'
, 'pageToken': pageToken
}
req = requests.get(subscription_url, params=param)
return req.json()
subscription_df = pd.DataFrame([]*3,
columns=["channel_id", "subscript_channel_name", "subscript_channel_id"])
#Passer une chaîne vide à pageToken revient à ne rien spécifier
# 1.Si vous exécutez le code que vous avez entré_id_list = comment_df["channel_id"].unique()devenir
for channel_id in channel_id_list:
pageToken = ""
while True:
req = get_subscription_info(channel_id, pageToken)
if "items" in req:
for item in req["items"]:
subscript_channel_name = item["snippet"]["title"]
subscript_channel_id = item["snippet"]["resourceId"]["channelId"]
subscription_df = subscription_df.append(
pd.DataFrame(
[[channel_id, subscript_channel_name, subscript_channel_id]]
, columns=["channel_id", "subscript_channel_name", "subscript_channel_id"]
)
)
#Si le nombre d'éléments restants dépasse maxResults, nextPageToken sera retourné.
if "nextPageToken" in req:
pageToken = req["nextPageToken"]
print(channel_id, pageToken)
else:
break
Utilisez l'API Subscriptions avec la traduction japonaise en tant que sous-catégorie https://developers.google.com/youtube/v3/docs/subscriptions?hl=ja
Quant à savoir comment l'utiliser, j'ai expliqué comment obtenir videoId à partir de playlistId avant, mais l'atmosphère est similaire à cela. https://qiita.com/miyatsuki/items/c221b48830db2b0a9eba#12-%E3%83%97%E3%83%AC%E3%82%A4%E3%83%AA%E3%82%B9%E3%83%88id%E3%81%8B%E3%82%89%E5%8B%95%E7%94%BB%E3%81%AEid%E3%82%92%E5%8F%96%E5%BE%97
En particulier,
Recommended Posts