Youtube API로 조회수를 가져오고 싶다

Youtube API로 조회수를 가져오고 싶다

Summary:

자꾸 까먹는다. 나는 개발자가 될 생각이 전혀 없(었)다.


개발자를 위한 유튜브

뷰투 프로젝트의 원래 기획안은 유튜브 API를 이용해서 영상의 실시간 조회수를 불러오는 기능이 포함되어 있었다. 그러나 내 능력은 API로 영상 제목을 가져오는 것까지였다. 수동으로 코드를 돌려서 구글에 요청하기에 실시간 반영이 안된다는 문제가 있었다.

프로젝트 맴버였던 개발자 친구에게 조회수가 꼭 필요한 이유에 대해 열변을 토하며 제발 API로 조회수를 크롤링해달라고 요청했지만 자신은 구글 API를 쓸 줄 모른다며 소극적인 태도로 일관했다. 슬프게도 우리 팀에서 나는 을이고 메인 개발자 친구가 갑이었기에 받아들일 수 밖에 없었다. 이렇게 난 또 개발을 배운다.

생활코딩에서 API로 영상제목을 크롤링하는 방법을 배웠으니 실시간 조회수 크롤링도 어렵지 않을 것이다. 언제나 생활코딩+구글신+스택오버플로우 조합은 날 도와줬으니까! 이번에도 구글을 먼저 뒤졌다.

개발자를 위한 유튜브는 Youtube API를 어떻게 활용할 수 있는지 상세히 설명하고 있다. API의 작동방법, 샘플코드 ,활용사례 등 영감을 받을 수 있는 소스가 많았다. API로 크롤링만 하는 게 아니었다. 특히 데모 카테고리에 접속하면 분석을 원하는 동영상의 감성분석이 가능하다. 동영상 업로드 후 시간이 지남에 따라 시청자가 어떻게 반응하는지, 그 반응은 긍정적인지 부정적인지, 댓글마다 얼마나 많은 호응을 받았는지 한 눈에 알아볼 수 있다.



API?

여기서 궁금증이 생긴다. 위 사이트를 돌아다니다보면 API가 나오지 않은 페이지가 없다. API로 데이터를 긁어오고 앱을 만든다는 게 정확히 무슨 의미일까?

예전 생활코딩의 Youtube api로 동영상 제목 크롤링하기 수업을 따라했던 걸 되살려보면 API가 데이터 저장소 역할을 한다고 생각했었다. 네이버 API로 네이버 뉴스 검색결과를 크롤링했을 때도 ‘아, api라는 공간에 데이터들이 들어있는데 내가 어떤 데이터를 달라고 하면 가져다 주는구나’ 하고 여겼다. 공공데이터포털에서 데이터를 제공할 때 csv타입 또는 API형태로 제공하는 걸 봐서도 API가 SQL같은 데이터베이스의 일종인 줄 알았다.


모를 땐 생활코딩

이제 API를 정식으로 배우지 않고 API를 썼을 때 느꼈던 API가 진짜 제대로 이해하고 쓴 게 맞는지 확인해보자. 생활코딩의 기초수업인 웹 애플리케이션 만들기UI vs API 수업에서 자세히 설명하고 있다.

UI와 API

UI가 User Interface라면 API는 Application Programming Interface다. 프로그램이 프로그래밍 언어를 이용하여 무언가를 제어하려고 할 때 사용하는 수단이라는 의미다. 여기서 공통적으로 들어가는 Interface는 장치와 사람이 교류하는 접점을 뜻한다. 시스템의 상태를 사용자에게 알려주는 역할을 한다. 장치와 장치가 소통하는 접점도 Interface다.

UI는 UX/UI에서 자주 접한 바 있다. 사용자가 직접적으로 접하는 화면, 즉 모니터 상에서 보이는 디자인 또는 요소들의 배치가 UI다. 반면 API는 그 화면을 띄우기 위해 웹브라우저(넓게 보면 특정 앱이 돌아가는 시스템)에게 전달하는 명령을 말한다.

컴퓨터를 구성하는 요소

지금 내가 보고 있는 모니터 화면이 뜨기까지의 계층구조다. 전기전자공학을 여기서 만날 줄은 몰랐다. UI를 통해 서비스를 경험하는 데에는 물리학이 베이스가 되어 전기 송수신, 기계어를 거쳐 우리가 아는 운영체제, 웹앱을 지나 내가 아는 GUI로 나타난다. API는 각 계층 사이 정보를 교환할 때 이용되는 수단이다. 소름돋았다. 내가 공부하는 게 일학년 때 기초필수 수업이었지만 다신 안 볼 줄 알았던 일반물리학2와 연결되어 있었다니.

회상은 그만하고 본론으로 돌아오자면, API는 과거 운영체제에 한정되어 제공되었다고 한다. 따라서 소프트웨어를 만든다는 건 윈도우즈, OS X 등 운영체제 위에서 직접적으롣 돌아가는 프로그램을 만든다는 의미였다. 웹브라우저도 운영체제 위에서 동작하는 하나의 프로그램(어플리케이션)일 뿐이었다.

그런데 재밌는 일이 생겼다. 이 웹브라우저는 운영체제 기반 앱임과 동시에 스스로 API를 가지고 있었다. 다시 말해, 웹이 발전하면서 웹브라우저 위에서 동작하는 웹어플리케이션들이 등장할 수 있다. 구글, 트위터, 페이스북 등 수많은 웹앱이 만들어졌는데 이들 중 일부는 마치 자신이 운영체제인 것처럼 스스로 API를 제공하기 시작했다. 그리고 지금 여러 앱들이 웹사이트를 기반으로 동작하고 있다.

이러한 현상과 더불어 API는 폭발적으로 증가했고 PC, 스마트폰 플랫폼 뿐만 아니라 자동차, 전구 등 IoT 기기들도 API를 통해 인터넷에 연결돼 프로그램으로 제어가 가능해졌다.


Youtube API 사용 준비

API에 대한 감을 잡았다. API를 이용하면 상호간 데이터 송수신이 가능하다. API로 프로그램을 제어할 수 있다. 이제 남은 건 첫째, 유튜브 조회수를 끌어올 수 있는 API 코드를 찾아내는 것, 둘째, 이 과정을 자동화할 수 있는 방법을 알아내는 것 이다. 구글의 API 리소스 페이지를 뿌셔보자.


(덧붙임) 한계 경험하기

이 영상은 UI vs API와 같이 다섯 번 이상 곱씹었다. 한계를 겪어봐야 뭐가 필요한 지 알고, 뭐가 필요한 지 알면 앞이 선명해진다. 갈증에 못이겨 움직이다 보면 분명 보인다. 근데 이제 시험 기간인데….. 난 또 무슨 패기로 막학기에 전공을 이렇게나 많이 넣었을까… 당분간 커밋이나 매일 할 수 있다면, 아니 커밋보다 과제 먼저 해야지.


Hyeyeon

A Blog about E-Commerce and Product Management

comments powered by Disqus

    rss facebook twitter github youtube mail spotify instagram linkedin google google-plus pinterest medium vimeo stackoverflow reddit quora