요약
- 이 조회수 수집기는 내가 원하는 채널 안에 있는 모든 비디오의 현재 조회수를 긁어 줍니다.
- 사용하려면 Python이 필요합니다.
- YouTube API 사용 신청이 필요합니다.
왜 만들게 되었나?
개인적으로 Python을 통한 데이터 분석이나, 파이썬 업무 자동화와 관련된 부분에 관심이 많습니다. 이 과정에서, 회사에서 몇몇 동료 분들이 YouTube 조회수를 손으로 확인하시는 모습을 보고 한번 토이 프로젝트로 진행을 해보았습니다.
비디오 개수가 많지 않다면, 물론 손으로 확인하는 것도 충분히 편리합니다. 그리고 내가 소유하고 있는 채널의 경우는, 관리자 페이지를 통해서 좀 더 편하게 조회수를 확인할 수 있습니다.
하지만, 다음과 같은 경우에는 이 수집기를 사용해 보시는 것도 좋을 것 같습니다.
- 유명하다는 그 인플루언서, 채널 누적 조회수는 알겠는데 평균 조회수는 얼마가 나오지? 가장 인기 있는 동영상은 뭐고, 일 평균 조회수 가장 낮은 동영상은 뭐지?
- 내 소유 채널이 아닌데, 하루에 한 번씩 동향 보고를 만들어야 한다.
- 우리 회사 채널인데, 관리자 권한이 나는 없다. 그런데 조회수 동향을 매일 살펴봐야 한다.
어떻게 쓰나요?
설치방법
이 코드를 실행하는데 필요한 것은 다음과 같습니다.
- 프로그램 실행을 위한 코드: https://github.com/Gilhwan/youtube_scraper
- Python 3.6 이상
- Google Client API Python 라이브러리
그럼 하나하나 어떻게 설치하면 좋은지 따라 해 봅시다.
1. 우선 코드를 내려받아야 합니다.
https://github.com/Gilhwan/youtube_scraper에 접속하면, 파일을 다운로드할 수 있습니다. 아래에서 code > Download Zip을 하시면 됩니다.
압축파일로 다운로드가 되니, 적절한 곳에 압축을 풉시다.
Run.bat 파일로 실행을 하면 되고, gil_youtube.scraper.py는 파이썬 코드입니다.
사실 실제로 필요한 것은 .py 파일 뿐이지만, .py만 다운로드하여서 실행 가능하신 분이라면 굳이 '어떻게 쓰나요?' 부분을 읽으실 필요가 없겠죠.
아직은 python도 없고 라이브러리도 없어서, 동작하지 않습니다.
유튜브 조회수 수집기를 실행하려면, python 과 2개의 라이브러리를 설치할 필요가 있습니다.
2. Python을 설치합니다. Anaconda를 이용하여 설치하면 더욱 쉽습니다.
Anaconda는 Python을 이용하여 데이터 분석이나 머신러닝 관련 개발이 필요한 경우, Python을 포함한 여러 라이브러리를 편하게 설치/관리할 수 있도록 도와주는 도구입니다. 설치 방법을 자세하게 다루기보다는, 좋은 블로그 링크를 하나 첨부합니다.
3. Anaconda를 설치한 뒤에는 Anaconda prompt를 실행합니다.
- 윈도우를 기준으로, (키보드의) 시작 버튼 > Anaconda Prompt 라고 입력하시면, 실행하실 수 있습니다.
4. pip install로 아래 2가지를 설치합니다.
위와 같이 pip install 이후에 라이브러리 이름을 입력하고 엔터를 치면 됩니다.
아래 2가지를 순서대로 입력합니다.
- pip install google-api-python-client
- pip install pandas
중간에 설치 여부를 묻는 창 (y/n)이 나온다면, y를 입력합니다.
5. YouTube API Key를 등록해야 합니다.
이 프로그램은 YouTube Data API v3를 사용합니다. 해당 API는 개인의 경우 테스트 용도로 무료로 발급받을 수 있습니다.
일 최대 10,000번 호출하여 사용할 수 있고, 비디오 1개의 조회수를 확인할 때마다 1번의 호출이 발생합니다.
또한, 최초에 채널명과 전체 비디오 목록을 가져오기 위해서 2번을 추가로 호출합니다.
위의 이유로, API Key를 넣어서 배포하는 것이 불가능합니다.
YouTube API Key를 발급받는 방법 또한 더욱 자세히 설명이 되어 있는 블로그가 있어, 링크로 대체합니다.
6. 마지막으로, API key를 프로그램 내에 삽입해주어야 합니다.
gil_youtube_scraper.py 파일 안에는 다음과 같이, api_key를 입력해야 하는 부분이 있습니다.
메모장으로 gil_youtube_scraper.py를 열어도 좋고, .py 파일을 편집하기에 편리한 편집기(IDE)를 사용하셔도 좋습니다.
개인적으로는 pycharm(무료)을 선호하며, pycharm을 설치하여 해당 파일을 열면 위와 같은 화면을 보실 수 있습니다.
<--change here--> 에 본인의 api key를 넣어주면 설치는 모두 끝납니다.
사용방법
1. Run.bat를 더블 클릭하여 실행합니다. 아래와 같은 화면이 나오면 정상적으로 python과 라이브러리 2가지가 설치된 것입니다.
2. 채널 아이디를 복사/붙여 넣습니다. 채널 아이디 확인 방법은 다음과 같습니다.
3. 채널 아이디를 붙여 넣고 엔터를 치면 끝입니다.
동작이 완료되면, 채널명_날짜.csv 가 생성됩니다.
끝으로
사실 코드 자체만 열어놓고 본다면, 매우 간단한 수준의 코드입니다.
- YouTube 채널 아이디에서, uploads라는 플레이리스트를 가져옵니다. Uploads는 YouTube에서 모든 채널에 기본적으로 생성하는 비디오 리스트입니다. ('동영상'에 해당)
- 해당 플레이리스트 내에 있는 모든 비디오 ID를 가져옵니다.
- 각 비디오 ID 별로 한 번씩, YouTube Data API v3를 호출하여 조회수, 좋아요, 싫어요, 댓글 수, 등록된 날짜를 가져옵니다. 여기서, 등록된 날짜(시간)가 UTC여서, 이를 KST로 변환합니다.
- 오늘 날짜를 기록합니다.
또, 이 코드 자체가 엄청 독창적이거나 하진 않습니다. 인터넷에 유튜브 조회수 수집이라고 검색을 해보면, 여러 코드가 나오는데 이를 참고하여 만들었습니다. 셀레니움이라는 라이브러리를 활용한 방식도 있지만, 이왕이면 구글, 유튜브가 정식으로 제공하는 API를 사용하여 만드는 쪽이 더 공부가 될 것 같아, 이 방식을 택했습니다.
다만, 인터넷에 이미 코드가 올라와 있어도 이걸 막상 기획자나 마케터가 따라서 만들기에는 배경지식이 많이 필요하고, 또 직접 시도해보려면 시행착오가 많을 수 있는 부분이어서 직접 따라 해 본 것을 사용법과 함께 블로그 글 형태로 정리해보았습니다.