[Intro1] Youtube API로 댓글 가져오기

💻·2021년 7월 13일
2

PE프로그램

목록 보기
1/3

1️⃣ Youtube API 키 발급

✓ Youtube API의 경우 종류가 3가지로 나뉜다

  • Youtube Data API(v3)
    유튜브와 관련된 기본적인 API로, 동영상을 업로드하거나 재생목록을 관리하는 등의 가장 기본적인 기능 제공
  • Youtube Analytics API
    유튜브의 동영상 및 채널에 대한 시청 통계, 인기도 통계 등 검색, 동영상 수익 관련 정보
  • Youtube Live Streaming API
    유튜브 방송을 예약하고 , 라이브 스트림을 관리
    -> 동영상 댓글 분석을 위한 용도로는 Youtube Data API(v3)가 적합함

2️⃣ 댓글 데이터 가져오기

1. Google Youtube API를 사용하려면

  • API 키, 유튜브 영상 ID가 필요함
  • 유튜브 영상 ID는 URL에서 'watch?v='뒤 문자들
  • API 사용을 위해 Google API Client 라이브러리를 다운
pip install google-api-python-client

2. 댓글 데이터 수집 소스코드

import pandas
from googleapiclient.discovery import build
 
 
api_key = '발급 받은 API 키'
video_id = '추출하고자 하는 동영상의 id'
 
comments = list()
api_obj = build('youtube', 'v3', developerKey=api_key)
response = api_obj.commentThreads().list(part='snippet,replies', videoId=video_id, maxResults=100).execute()
 
while response:
    for item in response['items']:
        comment = item['snippet']['topLevelComment']['snippet']
        comments.append([comment['textDisplay'], comment['authorDisplayName'], comment['publishedAt'], comment['likeCount']])
 
        if item['snippet']['totalReplyCount'] > 0:
            for reply_item in item['replies']['comments']:
                reply = reply_item['snippet']
                comments.append([reply['textDisplay'], reply['authorDisplayName'], reply['publishedAt'], reply['likeCount']])
 
    if 'nextPageToken' in response:
        response = api_obj.commentThreads().list(part='snippet,replies', videoId=video_id, pageToken=response['nextPageToken'], maxResults=100).execute()
    else:
        break
 
df = pandas.DataFrame(comments)
df.to_excel('results.xlsx', header=['comment', 'author', 'date', 'num_likes'], index=None)
 
  • comments: 댓글들을 저장할 리스트형 변수
  • api_obj: import한 build함수로 생성할 Google API객체
  • response: 입력한 id의 동영상 관련 정보가 전달되는 변수

  • API를 반복적으로 호출하여 원하는 정보를 저장
    : API문서를 확인하면 더 많은 정보 확인 가능
    - textDisplay: 댓글의 내용
    - authorDisplayName: 댓글 작성자
    - publishedAt: 댓글 작성 시간
    - likeCount: 좋아요 수

  • 수집한 데이터를 엑셀로 저장한다.
  • 4개의 컬럼이 생성된다

참고 글

1개의 댓글

comment-user-thumbnail
2024년 4월 19일

Hello Neighbor 환상적입니다. 제 생각엔 이것이 세상에서 가장 위대한 것 같아요. 어떻게 생각하는지 말해주세요! 행운을 빌어 요!

답글 달기