본문 바로가기
문송충의 코딩하기/파이썬 데이터 분석

파이썬으로 유튜브 슈카월드 검색 결과 가져오기

by 동장군님 2020. 8. 14.
728x90
반응형

제곧내다. 파이썬을 활용해서 유튜브에서 "슈카월드"라는 유튜버를 검색했을 때 검색 결과, 즉 어떤 비디오가 나오는지 가져와보도록 하겠다. 이번 크롤링 시간에는 Selenium이나 requests 방식으로는 불가능하고 Youtube에서 제공하고 있는 Youtube API를 통해서 검색 결과를 긁어오겠다. Youtube Search 결과에 대한 가이드 내용은 아래 링크에서 자세히 설명되어 있으니 참고 바란다. 

https://developers.google.com/youtube/v3/docs/search/list

 

Search: list  |  YouTube Data API  |  Google Developers

API 요청에 지정된 쿼리 매개변수와 일치하는 검색결과의 모음을 반환합니다. 기본적으로 검색결과의 집합은 쿼리 매개변수와 일치하는 video, channel, playlist 리소스를 식별하지만, 특정 유형의 리

developers.google.com

코딩을 본격적으로 하기 전에 역시나 우선 Youtube API에서 Key 값을 받아야 되는데, 구글에서 Google API Console 검색하면 상세히 알려주고 있으니 따라서 해주길 바란다. youtube Api 키 값을 받았으면 슈카월드 데이터를 가져올 준비는 다 끝났다고 볼 수 있다. 바로 코딩으로 넘어가겠다. 그리고 왜 슈카월드를 골랐냐면, 내가 요즘 가장 즐겨 보는 콘텐츠라서 그렇다. 주린이 답게 어울리는 콘텐츠를 보고 있다고 보면 된다.

 


사전에 필요한 라이브러리와 세팅은 아래와 같다. Developer_KEY 변수 안에 유튜브 API 값을 넣어야 된다. 

from googleapiclient.discovery import build
from googleapiclient.errors import HttpError
from oauth2client.tools import argparser

DEVELOPER_KEY = "~" #유튜브 API 키 값
YOUTUBE_API_SERVICE_NAME = "youtube"
YOUTUBE_API_VERSION = "v3"

API 키 값에 문제가 없다면 아래 코드도 문제 없이 돌아갈 것이다. 다음 코드를 돌리기 위해서는 몇 개 파라미터에 대해 이해해야 되는데, 그래서 간략히 설명하도록 하겠다.

  • q: 검색어
  • order: 정렬 방식
  • maxResults: 최대 가져올 수 

 

끝이다. 이거만 사전에 정해주고 돌리면 문제 없을 것이다. 나는 여기서 슈카월드라는 검색어를 연관성 순으로 최대 30개를 가져와 보도록 하겠다. 

youtube = build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION,developerKey=DEVELOPER_KEY)
search_response = youtube.search().list(
    q = "슈카월드",
    order = "relevance",
    part = "snippet",
    maxResults = 30
    ).execute()

search_response 변수를 출력하면 아래와 결과를 받을 수 있을 것이다. 

위 딕셔너리 형태를 조금만 정리해주면 슈카월드 검색 결과 내 Title만 가져올 수 있을 것이다.

titles=[]
for i in search_response['items']:
    titles.append(i['snippet']['title'])

Output: 

 

 

실제 유튜브에서 검색한 결과를 같은지 비교해봤는데, 조금 다르게 나타났다. 이게 어떤 기준으로 뽑히는지는 모르겠다. 어쨌든 이번 시간은 이렇게 마무리하고 다음 시간에서 이어서 또 다른 내용을 갖고 유튜브에 대해 분석해보겠다.

 


728x90
반응형

댓글