Je regarde souvent Youtube, mais si vous faites défiler les commentaires sur le site Youtube, les données suivantes seront acquises dans une certaine mesure et affichées. Si c'est une vidéo populaire, il y a plus de 1000 commentaires, mais il est difficile de tous les voir, donc c'est environ 100 du haut (par ordre d'évaluation de tri) que vous voyez réellement.
J'ai été impressionné par la vidéo de "[Comment gagner GACKT] Parler de la migration à l'étranger, du mode de vie, des affaires, des bénévoles --Youtube", alors veuillez commenter Je voulais tous les voir. Donc, j'ai pensé que si j'utilisais l'API Youtube Data, je pourrais obtenir tous les commentaires et les voir tous en même temps, alors j'ai essayé.
C'est la première fois que j'utilise l'API de données Youtube. Pour utiliser l'API de données Youtube, vous devez activer la clé API, j'ai donc renvoyé au site suivant. Obtenez des commentaires Youtube Live à l'aide de l'API de données Youtube
Google Colaboratory Cette fois, je voulais permettre à quiconque d'obtenir facilement des commentaires, et je voulais utiliser "Google Colaboratory", qui peut être utilisé immédiatement si j'avais un compte Google, donc je voulais utiliser Python comme langage de programmation.
Le site suivant correspondait exactement à votre demande. Obtenez des commentaires YouTube en Python
J'ai ouvert Google Colaboratory, collé "getYouTubeComments.py" du site ci-dessus avec un copier-coller, réécrit la clé API et l'ID VIDEO, et je l'ai exécuté. J'ai pu obtenir un commentaire, mais lorsque je compare les commentaires de l'action cible, il manque quelque chose. Il y a un commentaire enfant par réponse dans le commentaire, mais ce programme n'a pas pu obtenir le commentaire enfant.
Comment obtenir les commentaires des enfants? Je peux toujours obtenir le nombre de réponses, donc je comprends que si le nombre de réponses est de 1 ou plus, je devrais recevoir les commentaires des enfants. J'ai cherché et trouvé le site suivant, et le langage de programmation est PHP, mais tout ce que j'ai besoin de savoir, c'est comment cela fonctionne. Obtenez tous les commentaires YouTube - Bouillie endormie
Dans le cas des commentaires enfants, il peut être obtenu en passant l'ID parent (parentId) comme paramètre à la méthode comments.
Commentaire https://www.googleapis.com/youtube/v3/commentThreads
Commentaire enfant https://www.googleapis.com/youtube/v3/comments
La différence avec le programme référencé est que vous pouvez obtenir le nom d'utilisateur et les commentaires enfants en attribuant des numéros de série.
Les sauts de ligne de commentaire sont remplacés par des espaces demi-largeur au niveau du délimiteur de tabulation. Le format du commentaire est «html» ou «texte brut», mais il s'agit de «texte brut». L'ordre est «pertinence», par ordre décroissant d'évaluation. Les commentaires enfants ne sont pas dans un ordre particulier (même si vous spécifiez l'ordre, ils ne seront pas les mêmes que le site vidéo). Le numéro de série parent étant composé de 4 chiffres et le numéro de série enfant composé de 3 chiffres, si vous souhaitez obtenir des commentaires dépassant le nombre de chiffres, vous devez modifier et augmenter le nombre de chiffres à afficher.
000X (commentaire)(Numéro similaire) (Nom d'utilisateur) (Numéro de réponse)
000X-00X (Commentaire de l'enfant)(Bon numéro) (Nom d'utilisateur)
Ouvrez Google Colaboratory, collez "getYouTubeComments.py" à partir du site ci-dessus avec un copier-coller, réécrivez la clé API et l'ID VIDEO, puis exécutez.
La clé API sera émise avec les identifiants d'activation de l'API YouTube Data API. Veuillez donc réécrire la clé API_KEY du programme dans la clé API émise.
Par exemple, dans le cas de "https://www.youtube.com/watch?v=oeJ_b0iG9lM", oeJ_b0iG9lM
est l'ID vidéo. Veuillez donc réécrire l'ID vidéo de la vidéo cible avec «Enter Video ID» du programme.
getYouTubeComments.py
import requests
import json
URL = 'https://www.googleapis.com/youtube/v3/'
#Entrez la clé API ici
API_KEY = 'Entrez la clé API'
#Entrez votre ID vidéo ici
VIDEO_ID = 'Entrez l'ID vidéo'
def print_video_comment(no, video_id, next_page_token):
params = {
'key': API_KEY,
'part': 'snippet',
'videoId': video_id,
'order': 'relevance',
'textFormat': 'plaintext',
'maxResults': 100,
}
if next_page_token is not None:
params['pageToken'] = next_page_token
response = requests.get(URL + 'commentThreads', params=params)
resource = response.json()
for comment_info in resource['items']:
#commentaire
text = comment_info['snippet']['topLevelComment']['snippet']['textDisplay']
#Bon nombre
like_cnt = comment_info['snippet']['topLevelComment']['snippet']['likeCount']
#Nombre de réponses
reply_cnt = comment_info['snippet']['totalReplyCount']
#Nom d'utilisateur
user_name = comment_info['snippet']['topLevelComment']['snippet']['authorDisplayName']
# Id
parentId = comment_info['snippet']['topLevelComment']['id']
print('{:0=4}\t{}\t{}\t{}\t{}'.format(no, text.replace('\n', ' '), like_cnt, user_name, reply_cnt))
if reply_cnt > 0:
cno = 1
print_video_reply(no, cno, video_id, next_page_token, parentId)
no = no + 1
if 'nextPageToken' in resource:
print_video_comment(no, video_id, resource["nextPageToken"])
def print_video_reply(no, cno, video_id, next_page_token, id):
params = {
'key': API_KEY,
'part': 'snippet',
'videoId': video_id,
'textFormat': 'plaintext',
'maxResults': 50,
'parentId': id,
}
if next_page_token is not None:
params['pageToken'] = next_page_token
response = requests.get(URL + 'comments', params=params)
resource = response.json()
for comment_info in resource['items']:
#commentaire
text = comment_info['snippet']['textDisplay']
#Bon nombre
like_cnt = comment_info['snippet']['likeCount']
#Nom d'utilisateur
user_name = comment_info['snippet']['authorDisplayName']
print('{:0=4}-{:0=3}\t{}\t{}\t{}'.format(no, cno, text.replace('\n', ' '), like_cnt, user_name))
cno = cno + 1
if 'nextPageToken' in resource:
print_video_reply(no, cno, video_id, resource["nextPageToken"], id)
#Obtenez tous les commentaires
video_id = VIDEO_ID
no = 1
print_video_comment(no, video_id, None)
Lorsque vous obtenez le commentaire vidéo de "[Comment gagner GACKT] Parlons de la migration à l'étranger, du mode de vie, des affaires, des bénévoles - YouTube", c'est comme suit. Devenir.
Exemple d'acquisition de commentaires
0006 Non seulement le contenu, mais j'ai également étudié comment parler et écouter. Nous ferons de notre mieux pour faire comprendre aux enfants que l'expérience de relever des défis est un trésor irremplaçable. 622 Un homme a essayé une classe 9
0006-001 Je suis profondément ému de le voir dans la section commentaires ici. Il semble y avoir une bonne chose aujourd'hui 0 Akari Hoshino
⋮
0006-008 J'étudie toujours 14 Eau.
0006-009 Herbe véritable 16
0007 Achan est doué pour écouter l'histoire. Je réponds souvent avec des mots courts comme "Hey" ou "Is it Niigata?", Mais je dessine régulièrement l'histoire de GACKT 67 L'influence d'une goutte 0
Le calendrier de l'Avent arrive bientôt. Nous recherchons également des articles pour "Visual Basic Advent Calendar 2020" cette année également. Avec cela, il semble que vous puissiez l'essayer avec Visual Basic ou Excel au lieu de Python.
Recommended Posts