안녕, 세상!

youtube api를 이용하여 남자아이돌과 여자아이돌 비교 본문

Project

youtube api를 이용하여 남자아이돌과 여자아이돌 비교

dev_Lumin 2021. 2. 6. 21:25

겨울방학 때 학교 단기 특강으로 파이썬 데이터 분석가 양성 과정에서 

마지막 이틀 동안 파이썬을 이용하여 데이터를 주제로 한 프로젝트를 만들어 보았습니다.

프로젝트 준비기간 : (2021.02.04~2021.02.05)

(1) 주제 

유튜브 영상의 데이터를 바탕으로 남자 아이돌과 여자 아이돌의 조회수, 좋아요, 싫어요 비교 데이터 분석

 

(2) 선정 배경

데이터를 제공하고자 하는 대상자는 기획사 사장입니다.

기획사 사장이 신생그룹을 만들려고 하는데, 회사의 현 상황을 고려하여 

남자 아이돌을 만들지 여자 아이돌을 만들지 고민하고 있는 상황에서 sns에서 두 그룹의 홍보성이 어느 정도 되는지 궁금해서 그에 대한 데이터를 제공하자는 취재로 해당 프로젝트를 선정하였습니다.

그중 유튜브에서 남자 아이돌과 여자 아이돌의 조회수, 좋아요, 싫어요 데이터에 대해 비교한 결과물을 만들게 되었습니다.

 

(3) 개발환경

 Operating system : Window 10 edu

 Language : Python

 Development Tools : Jupyter Notebook

Library : numpy, pandas, build, ....

 

(4) 구현 내용

google api에서 Youtube Data api v3키를 받아와서 유튜브의 최신 데이터로부터 필요한 데이터들을 추출했습니다.

유튜브 data api를 사용하기 위해서 공식 문서에서 필요한 함수들을 찾고 직접 사용하면서

코드를 짰습니다.

developers.google.com/youtube/v3/docs/search

 

Search  |  YouTube Data API  |  Google Developers

검색결과에는 API 요청에 지정된 검색 매개변수와 일치하는 YouTube 동영상, 채널 또는 재생목록의 정보가 포함되어 있습니다. 검색결과는 동영상과 같이 고유하게 식별할 수 있는 리소스를 보여

developers.google.com

 

① 동영상 범위 : 뮤직비디오

우선 유튜브에는 아이돌과 관련된 영상이 엄청 많습니다.

팬들의 계정으로 올라온 영상들도 많으며 뮤비, 브이로그 정말 다양합니다.

그 모든 아이돌 영상에 대해서 데이터를 가져오기에는 프로젝트 제한시간이 충분하지 않아서

아이돌 동영상 중 뮤직비디오로 한정을 지어서 동영상 범위를 설정하였습니다.

 

분류한 아이돌 그룹 

여자 아이돌과 남자 아이돌을 서로 비교를 해야 하는데 각 여자, 남자 아이돌에 많은 그룹들이 있습니다.

그중에서 비교대상은 구독자가 서로 비슷한 여자, 남자 아이돌 그룹을 비교했습니다.

(사실 몇만 차이가 나지만 최대한 수치가 비슷한 그룹끼리 비교를 함)

 

여자 아이돌 : 이달의 소녀(136만), 마마무(535만), 레드벨벳(371만)

남자 아이돌 : 펜타곤(143만), 스트레이 키즈(546만), 위너(355만)

 

(구독자 수는 프로젝트를 할 당시의 수치)

 

 

③ 동영상 개수

동영상(뮤직비디오) 개수는 모든 그룹이 통일되게 해야 합니다.

6그룹 중에 공식 뮤직비디오 수가 가장 적은 그룹의 뮤직비디오수가 23개여서 23개로 제한을 두었습니다.

 

 

 

④ 접근 과정

동영상 대상을 뮤직비디오로 했으므로 각 그룹의 공식 유튜브 채널의 뮤직비디오들에 접근을 해야 합니다.

그러기 위해선 해당 채널의 뮤직비디오만 모아져 있는 재생목록에 접근해야 합니다.

즉,

[유튜브 채널] -> [뮤직비디오 재생목록] -> [해당 재생목록 안 동영상 접근]

 

 

1) 유튜브 데이터베이스로부터 각 채널들의 채널 id를 찾아냅니다.

 

2) 각 그룹의 채널 id로 채널 안의 재생목록 정보를 열람합니다.

 

3) 재생목록 중 뮤직비디오만 모여있는 재생목록에 대한 재생목록 id를 찾아냅니다.

 

4) 재생목록 id로 재생목록 안 비디오의 정보를 열람합니다.

 

5) 반복문을 통해서 최신부터 23개의 비디오 id를 추출합니다.

 

6) 추출한 비디오 id를 리스트에 저장시킵니다.

 

7) 해당 리스트를 이용하여 각 비디오들 마다 조회수, 좋아요, 싫어요 수를 추출하여 

조회수 리스트, 좋아요 리스트, 싫어요 리스트 3개의 리스트로 만듭니다.

8) 리스트들을 판다스로 구축합니다.

9) 구축한 판다스를 기반으로 그래프로 데이터를 시각화합니다.

 

( 6팀 중 대표로 한 팀만 보이겠습니다. ) 

 

남자 아이돌 vs 여자 아이돌 : 조회수, 좋아요, 싫어요

각 23개의 비디오에 대해서 요소별 평균으로 비교를 하였습니다.

 

이달의 소녀 vs 펜타곤

 

레드벨벳 vs 위너

 

마마무 vs 스트레이 키즈

 

(5) 데이터에 대한 결과 정리

조회수에 어느 정도 비례하여 like와 dislike가 분포된다는 것을 알 수 있습니다.

조회수, 좋아요, 싫어요를 보았을 대 여자 아이돌이 남자 아이돌보다 대중성 및 팬덤 형성이 높음을 알 수 있습니다.

이를 통해 sns의 홍보성이 남자 아이돌보다는 여자 아이돌이 뛰어나다는 것을 알 수 있습니다.

 

 

(6) 느낀점

프로젝트를 만드는 기간이 2월 4일 11시부터 2월 5일 15시까지여서 짧은 시간 동안 주제 잡고, 구현하고, 발표 준비를 하는 형식이었습니다.

팀원들은 프로젝트하기 전에 이미 구성된 상태였지만 2월 4일 날 처음 소통을 해서 그때 주제를 잡고 바로 구현에 들어갔습니다.

처음에는 유튜브의 데이터라는 주제를 잡았지만 어디서부터 시작을 하고 무슨 주제를 잡아야 할지 쉽지 않았습니다.

그러다가 조회수에 관한 데이터를 추출하자는 의견이 나왔습니다.

그래서 우선 youtube 공식 데이터 api키를 가져와서 해당 api로부터 무슨 데이터를 가져올 수 있는지 공식 data api 홈페이지를 보면서 필요한 함수들을 사용하여 코드를 실행시켜보았습니다.

그러면서 조회수뿐만 아니라 좋아요, 싫어요 그리고 채널 id, 재생목록 id, 비디오 id 등 다양한 데이터를 추출할 수 있는 방법을 찾아냈고 이를 기반으로 해당 주제를 선정해서 필요한 데이터를 추출하여 그래프로 결과를 표현해주었습니다.

사실 공식 api를 이용해서 원하는 데이터를 추출해 본 경험이 이전에 없었습니다.

프로젝트 구현 기간이 짧았지만 공식 홈페이지에 나온 함수들을 이용하여 방법을 찾고 수많은 데이터들 속에서 원하는 데이터만 추출했을 때 정말 짜릿했습니다.

비록 위의 데이터 결과 도출을 통해서 엄청난 결론이 나온 것은 아니지만,

특정 공식 api로부터 자신이 원하는 데이터를 추출한 경험을 가졌다는 것과,

그 과정이 처음이었지만 다양한 시도를 하여 짧은 시간 내에 원하는 결과물을 내었다는 것에서

좋은 경험을 했으며 데이터 추출에 더 능숙해짐을 느꼈습니다.

 

 

 

프로젝트의 파일을 업로드한 github주소는 다음과 같습니다. 

github.com/SeongMin2/A-comparison-between-kpop-girl-and-a-boy-group-using-youtube-data/blob/main/data_comparison_idol_group_youtube.ipynb

 

SeongMin2/A-comparison-between-kpop-girl-and-a-boy-group-using-youtube-data

Contribute to SeongMin2/A-comparison-between-kpop-girl-and-a-boy-group-using-youtube-data development by creating an account on GitHub.

github.com

 

'Project' 카테고리의 다른 글

MLOps를 시작한 이유  (0) 2022.03.20
CNN모델을 활용한 마스크 인식 모델  (2) 2020.12.18
Comments