ABOUT ME

-

Today
-
Yesterday
-
Total
-

유튜브 API - 채널 안에 있는 모든 동영상 조회하기
소프트웨어개발 이야기 2021.03.08 16:11

작년에 Elastic Stack을 활용하여 자사의 콘텐츠 유통 데이터를 분석하는 시스템을 개발했다. 익숙하지 않은 플랫폼에서 다양한 데이터를 수집하다 보니 나름 시행착오가 많았는데, Logstash가 워낙 많은 기능을 지원하다 보니 다행히 짧은 기간에 적은 인원(필자 포함 2명 -_ -)으로 프로젝트를 마무리할 수 있었다. (프로젝트에 대한 전반적인 이야기는 나중에 별도의 글을 통해 정리해보겠다.) 본 글에서는 프로젝트에서 필자를 꽤나 괴롭혔던 유튜브 API를 활용한 수집 이야기를 해볼까 한다. 서비스에서는 다양한 콘텐츠 유통 데이터(시청자 활동, 수익, 시청률, 화제성 지수 등)를 다양한 방법(API, DB, File, Mail, 크롤링 등)으로 수집했다. 방법의 차이가 있을 뿐 종단에는 Logstas..

유튜브 API - 19. Targeted Queries
소프트웨어개발 이야기 2020.10.16 15:11

지난 글에서 대량(Bulk)의 데이터를 조회하는 Reporting API를 살펴봤다. 본글에서는 원하는 분석 데이터를 골라서(Targeted) 조회(Query)하는 Analytics API를 살펴보자. (Analytics API에서도 보고서(Report)를 조회한다고 표현함) 유튜브 분석 API 소개 글에서 언급했듯이, 유튜에서 제공하는 분석을 위한 API는 Reporting API와 Analytics API로 구분된다. Reporting API가 대량의 분석 데이터를 조회하기 위해서 존재한다면, Analytics API는 분석 데이터 중 필요한 부분만 찾아서 조회하고 싶을 때 필요하다. 예를 들어, 여러 개의 채널을 소유한 콘텐츠 소유자 MBC가 있다. 매일 아침 출근 전에 어제 하루 동안 MBC 모든..

유튜브 API - 18. Bulk Report 주의점
소프트웨어개발 이야기 2020.09.23 09:58

앞선 Bulk Report 글에서 Reporting API를 통해 보고서 생성 작업을 만들고 다운로드하는 과정을 간단히 살펴봤다. 대량의 분석 데이터를 API 통해서 받으려면 어떤 식으로 사용해야 할지 파악할 수 있었다. 본 글에서는 Reporting API를 사용할 때 주의해야 할 점들을 살펴보고자 한다. (해당 내용은 Youtube Guide 문서에서 보다 자세히 확인할 수 있다.) BP 사례 - 보고서 첫 번째 줄은 헤더다. 헤더의 순서는 바뀔 수 있으니 보고서를 다운로드할 때마다 헤더 값을 분석해서 어떤 순서대로 값이 들어있는지 반드시 확인해야 한다. 즉, 다운로드한 내용을 처리할 때 순서대로 처리하지 말고 반드시 키, 값 형식의 객체로 변환해서 사용하기 바란다. - 보고서의 다운로드 비용(네트워..

유튜브(Youtube) API - 17. Analytics API(Bulk Report)
소프트웨어개발 이야기 2020.09.21 11:42

지난 글에서 Analytics API의 개요에 대해 알아봤다. 이번 글에서는 Analytics API 중 대량의 데이터를 조회하는 Bulk Report(Reporting API)에 대해서 살펴보도록 한다. Bulk Report는 reporting API를 사용해서 조회하는 분석 데이터(보고서)를 말한다. 채널 또는 콘텐츠 소유자는 다양한 분석 데이터를 사전 정의 보고서(Report) 형식으로 조회할 수 있다. 이러한 보고서에는 YouTube 스튜디오의 분석 메뉴에서 보여주는 데이터도 포함된다. 백견이 불여일타. 자, 그럼 Reporting API를 사용해서 간단한 분석 데이터 보고서를 받아보자. 일별로 채널에서 조회수가 가장 많은 동영상 10개를 조회하기 위해 사용자 활동 보고서를 다운로드하는 작업을 아..

유튜브(Youtube) API - 16. Analytics API 시작하기
소프트웨어개발 이야기 2020.09.16 18:00

지금까지 유튜브 API를 사용하기 위한 배경과 사용할 때의 유의점을 살펴봤다. 그리고 가장 기본이 되는 YouTube Data API를 사용해서 다양한 실습도 진행해 봤다. 혹, 유튜브 API를 검색해서 들어온 독자분들 중 기초내용을 알고 싶은 분들이라면 본글 하단에 있는 북마크 글들을 먼저 보고 나서 이 글을 읽는 것을 추천드린다. 늘 그랬듯 '시작하기' 글에서는 개요 수준에서 API를 살펴보고 구체적인 내용은 기능별 실습을 포함하여 추가로 작성할 예정이다. 자, 그럼 지금부터 유튜브의 다양한 분석 데이터를 제공하는 YouTube Analytics API를 살펴보자. (다시 긴 여정이 시작되고 있다 -0-;) 시작에 앞서, 유튜브 API의 구성을 다시 한번 살펴보자. 일전에 말한것처럼 API는 크게 세..

유튜브(Youtube) API - 15. 할당량 계산식 변경
소프트웨어개발 이야기 2020.07.30 20:07

2020년 7월 29일부로 할당량(Quota) 계산방법이 간단해졌다.(진작 좀 이렇게 해주지 그랬냐 -_ -;) 본 글에서는 변경된 할당량 계산방법에 대해 정리한다. 유튜브 API 관련 글을 쓰면서 가장 많이 작성한 주제가 "할당량(Quota)" 인 듯하다. 아무리 열심히 개발해도 할당량 문제를 만나면 멘붕이 오기 때문에, 유독 많이 언급했더랬다. 혹, 보지 못한 독자는 아래 링크를 참고하기 바란다. 유튜브(Youtube) API - 3. API 살펴보기 유튜브(Youtube) API - 12. 할당량 최적화 유튜브(Youtube) API - 13. 할당량 증설 기존 계산 방법이 복잡하다고 느낀 건지, 아니면 최근 API 증설에 대해 민원이 많아졌기 때문인지는 모르겠으나, 어쨌든 유튜브 API팀에서 할당..

유튜브(Youtube) API - 14. 'statistics' Error
소프트웨어개발 이야기 2020.07.07 11:16

유튜브에서 통계 데이터를 수집하는 모듈이 아침부터 말썽이다. 몇 달 동안 전혀 문제없었는데, 새벽부터 수집 실패 메일을 친절하게(?) 보내주며 출근시간 조바심 일깨워 준다. '유튜브 정책 또 바뀐 건가?' 올해 들어 policy가 계속 업데이트되고 있는 터라 출근하자마자 유튜브 개발자 사이트를 뒤져봤지만 별다른 이야기는 없다. '쿼터 문젠가?!' 얼마 전 증설까지 했는데, 그럴 리가 없다며 GCP에서 할당량을 확인해봤다. 역시나 할당량 문제는 노노. 테스트 코드를 돌려보니, statistics part에서 에러 발생. 지금까지 전혀 문제없던 녀석이 하루아침에 알 수 없는 속성이 돼버렸다. -_ -; 조회 속성은 아래와 같았는데... part: 'snippet, statistics', fields: 'it..

유튜브(Youtube) API - 13. 할당량 증설
소프트웨어개발 이야기 2020.06.23 11:48

최근 Elastic Stack을 통한 데이터 수집 삼매경이라 유튜브 API를 사용할 일이 없다 보니, 오랜만에 유튜브 이야기를 꺼내본다. 일전에 유튜브 할당량(Quota) 최적화의 필요성에 대해 정리한 적이 있었다. 필자가 작성한 글을 포함해서 대부분의 글에서는 할당량 한도 향상을 신청받는 유튜브 페이지 링크로 답을 마무리한다. 정답이긴 하지만 이 과정이 녹록지 않다. 생각보다 작성해야 할 내용이 많고 "유튜브 API 서비스 팀"에서도 꽤나 디테일하게 체크한다. 때문에 신청서를 보내고 끝이 아니라 이후에 메일로 추가 내용들을 보완해야 하는 경우도 다반사다. 해당 글에서 할당량 증설 신청에 대해서 언급했었는데, 오늘은 그 이야기를 해 볼까 한다. 다시 한번 말하지만, 할당량 증설은 API 최적화에 대한 고..

Logstash Date Filter와 Timezone
소프트웨어개발 이야기 2020.05.07 10:37

Logstash에서 ElasticSearch로 데이터를 저장할 때 날짜 필드의 Timezone이 항상 헷갈린다. 특히 저장된 데이터를 Kibana를 통해 시각화할 때 이 부분이 제대로 정리 안되어 있으면 골치 아픈 상황이 발생하기 때문에 명확히 정리하고 넘어가자. Logstash에는 날짜 필드를 설정해주는 Date 필터가 존재한다. Date 필터는 원본 날짜 데이터를 파싱하기 위해 Timezone, Locale 속성을 제공한다. Date 필터는 원본 날짜 데이터를 Timezone, Locale 파라미터를 사용하여 분석하고 이를 ElasticSearch에 전달하면 UTC 기준으로 날짜 데이터가 저장된다. Kibana에서는 UTC 기준으로 저장된 데이터를 어떤 타임존으로 변환해서 보여줄지 설정(설정-고급설정..

Logstash에서 REST API 연동하기
소프트웨어개발 이야기 2020.04.28 16:35

Logstash에서 REST API를 연동하여 데이터를 수집하는 방법을 정리한다. Logstash에서 REST API를 연동하기 위해서는 http_poller 플러그인을 사용한다. 라고 되어있지만... 막상 사용해 보면 생각보다 제약조건이 많기 때문에 제대로 된 REST API 데이터 수집이 불가하다. 이는 input 플러그인에서 특정 정보를 동적으로 변경하는 것이 어렵기 때문이다.(불가한 건 아니지만 배보다 배꼽이 더 크다;;) 가령, 일자별로 미세먼지 정보를 제공하는 API가 있다고 가정하자. http_poller에서 해당 API를 사용하기 위해서는 파라미터로 일자 정보를 설정해줘야 한다. 고정된 날짜 정보를 설정해주는 건 가능하지만 오늘 날짜를 가져와서 파라미터로 설정하는 건 현재 버전의 logst..

소프트웨어개발 이야기

직장생활 이야기

방송국 이야기

핑크곰 이야기

Designed by Joypinkgom.