Programming/Python
유튜브 실시간 방송 댓글 크롤링
remake
2022. 11. 8. 17:40
유튜브의 실시간 방송 댓글 크롤링하는 방법
유튜브 실시간 영상에서 댓글을 가져오는 방법을 알아보겠습니다.
필수 패키지 설치
먼저 필요한 패키지는 pafy와 youtube_dl, 그리고 pytchat입니다.
pip install pafy
pip install youtube_dl
pip install pytchat
3개를 모두 설치해주시면 됩니다.
이후 pafy를 통해서 라이브 방송의 정보를 긁어오겠습니다.
import pytchat
import pafy #유튜브 정보
import pandas as pd
pafy.set_api_key('Api key')
video_id = '비디오 영상'
v = pafy.new('video_id')
title = v.title
author = v.author
published = v.published
영상 아이디가 필요한데요.
실시간 영상의 v= 다음의 주소를 복사 붙여넣기 하시면 됩니다.
이렇게 하면 순서대로 제목/소유자/만든일자 순서대로 나옵니다.
유튜브 실시간 채팅 크롤링
채팅은 pytchat을 통해서 크롤링할 수 있는데요.
기본 문법은 아래와 같습니다.
chat = pytchat.create(video_id=video_id)
while chat.is_alive():
for c in chat.get().sync_items():
print(f"{c.datetime} [{c.author.name}]- {c.message}")
실제로 댓글을 잘 긁어오는 것을 알 수 있습니다.
이를 기반으로 pandas를 활용해서 저장할 수도 있습니다.
그리고 해당 작업중에 youtube_dl 관련 like 에러가 발생하는데요.
이 경우에 영상에서 좋아요 표시를 안하면 발생하는 에러인데요.
backend_youtube_dl.py파일을 여신 다음
53과 54행에 위치한 like와 dislike를 주석 처리해주시면 정상 재생 됩니다.
Traceback (most recent call last): File "C:/python/yt_comment.py", line 9, in <module> v = pafy.new(video_id) File "C:\python\lib\site-packages\pafy\pafy.py", line 124, in new return Pafy(url, basic, gdata, size, callback, ydl_opts=ydl_opts) File "C:\python\lib\site-packages\pafy\backend_youtube_dl.py", line 31, in __init__ super(YtdlPafy, self).__init__(*args, **kwargs) File "C:\python\lib\site-packages\pafy\backend_shared.py", line 97, in __init__ self._fetch_basic() File "C:\python\lib\site-packages\pafy\backend_youtube_dl.py", line 53, in _fetch_basic self._likes = self._ydl_info['like_count'] KeyError: 'like_count' |
오늘은 간단하게 유튜브 라이브 방송의 댓글을 긁어오는 방법을 알아보았는데요.
필요할 경우 잘 사용해보시기 바랍니다.
감사합니다.