ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 유튜브(Youtube) API - 4.사용하기
    소프트웨어개발 이야기 2020. 2. 10. 11:03

    무작정 API 돌려보기

    유튜브 API를 사용하기에 앞서 API 종류와 사전작업 그리고 제약조건들을 살펴봤다.(REST API 하나 사용하려고 이렇게 많은 걸 봐야 하다니... 그래도 제공해 주는 게 어딘가, 감사하면서 사용하자 -0-;;)

    이제 API를 사용할 일만 남았다. 

     

    '백견이 불여일타' 

    Youtube API를 하나씩 살펴보기 전에, 우선 가장 간단한 코드를 작성해서 돌려보자. 백날 레퍼런스 살펴봐야 한번 코드 짜고 실행해보는 것만 못하다. 

     

    본 글에서는 NodeJs를 사용해서 설명하지만 본인이 가장 선호하는 언어로 돌려보는 걸 권장한다.(실제로 구글이 제공하는 유튭 가이드에는 Java, Python 언어로 보다 많이 설명되어 있다.)

     


     

    유튜브에서 특정 동영상의 정보(영상 제목, 영상설명, 채널 아이디, 통계 <조회수, 좋아요 수, 댓글 수)를 가져와서 출력하는 프로그램을 작성해 보자. 

     

    유튜브 API는 REST 형식으로 호출하는 것도 가능하다. 하지만 앞선 "API 살펴보기"에서 언급했던 대로 구글에서는 이를 보다 쉽게 사용할 수 있도록 언어별 라이브러리를 제공하고 있다.

     

    필자는 NodeJs를 사용하기 때문에 아래와 같이 해당 라이브러리를 패키지 관리 도구를 통해 다운로드하였다.(NodeJs를 선택한 특별한 이유는 없다. Spring, 안드로이드, Django 기반의 프로젝트 진행하다 보니 Java나 Python을 쓰면 일하는 기분이 들어서 그렇다 -0-;;;)

     

    // 구글 NodeJs 라이브러리 설치
    npm install googleapis --save

     

    해당 라이브러리는 유튜브 API만이 아닌 구글의 다양한 API에 대한 내용이 포함되어 있다.

    https://googleapis.dev/nodejs/googleapis/latest/

     

    그밖에 다양한 언어를 사용한 라이브러리들도 제공하고 있으니, 한 번쯤 살펴보기 바란다.

    https://github.com/googleapis

     

    다시 코드로 돌아와서, 이제 라이브러리도 생겼으니 동영상 정보를 가져오는 코드를 작성해 보자.

    유튜브 동영상 정보를 조회해서 출력하는 간단한 코드

     

    googleapi의 youtube 서비스를 사용하고, 그중 videos 객체의 list 메소드를 사용하면 된다.

    인자로 사전작업에서 설정한 API 키 값을 설정하고, 조회하고자 하는 동영상의 아이디와 속성정보를 넘겨주면 된다. 실행시켜 결과를 보자.

    유튜브 동영상 정보 조회 결과

     

    유튜브 동영상 페이지

     

    생각보다 쉽다, 그리고 간단하다. 

    이런 방식으로 API를 조금만 응용해서 사용하면 API를 다양하게 활용해서 이것저것 재밌는 것들을 만들어 볼 수 있을 것 같다. 

     

    그런데 API의 속성, 메소드 등 다양한 정보들은 어디서 보면 되는 걸까?

    위에서 잠깐 설명했던 구글 API 문서 유튜브 개발자 레퍼런스 사이트를 함께 살펴봐야 한다. 생각보다 많은 내용들이 있고 지속적으로 업데이트가 되기 때문에 꼼꼼히 찾아봐야 한다.

     

     

    그런데 말입니다...

     

    유튜브 API 중에는 동영상을 업로드할 수 있는 기능도 있는데, 권한도 없는 특정 채널에 유튜브 API를 통해서 마음대로 영상을 올릴 수 있는 걸까?!

     

    본 글에서는 가장 간단한 방식으로 API를 사용했기 때문에 "API 키" 인증을 사용했다. 하지만 위에서 언급한 대로 유튜브 API는 개인 인증이 필요한 기능이 많기 때문에 이를 위해서는 권한 인증에 대해 다른 방식의 접근이 필요하다. 

     

    다음 글에서는 이러한 개인인증을 위한 OAuth2.0 방식의 API 사용법을 살펴보도록 하자.

     


    [에필로그]

    독자를 고생시키려고 프로그램 코드를 캡처해서 넣는 게 아니다.(심지어 클립보드에 있는 이미지 붙여 넣기도 안된다 -0-;;;) 브런치에서 작성한 글이다 보니... 코드를 작성하기 너무 어렵다. Gist URL이라도 넣어야 하나, 고민 중. 브런치가 소프트웨어 엔지니어를 배려해주길 간절히 바라고 있다.

    댓글

Designed by Joypinkgom.