by 노성산, 샌드박스 DataLab Lead
샌드박스 DataLab 에서 트렌드 분석을 위해 유튜브 채널들을 분류하고 있는데, 주관적인 부분도 많고 새로운 트렌드가 계속 생기다보니 어려움이 많다.
왠지 유튜브 추천 시스템을 역이용하면 쉽게(?) 분류 자동화가 가능할 것 같아 사이드 프로젝트로 가볍게 진행해 보았다.

채널 리스트 뽑고 → 추천 데이터 긁어와서 → 시각화툴에 던져보면 쉽게 될 것 같았는데, 생각보다 다양한 장애물이 존재했다.
채널 리스트는 일단 국내 기준 10만 구독자 이상 채널로 정했다. 대략 2500개 정도 된다.
추천 데이터를 잘 긁어오는 것이 생각보다 어려웠다. 채널 별로 30개의 추천데이터 수집을 목표(총 75,000개)로 하고, 테스트로 약 1000개 가량을 긁어모았다. 데이터를 열어보니 생각보다 너무 편향되어 있어서 관계도 및 분류에 사용하기에는 부적합했다. 소스 데이터가 '망' 이면, 분석 결과는 안봐도 '똥' 이라서 추천 데이터의 수집 고도화를 위해 반나절을 보냈다. 완벽하게는 아니지만 일단 추천 데이터 소스를 다각화 하는 방향으로 개선하고 넘어갔다.
코드를 짜서 돌리니 유튜브 API 를 너무 많이 써서 쿼터가 한참 모자른다.
결국 한 번 호출한 API 는 다시 호출하지 않도록 별도 DB를 구축..ㅠㅠ (심히 귀찮)
그래도 쿼터가 모자라서 2일 동안 나눠서 돌렸다.
네트워크(관계망) 시각화툴은 여러가지가 있는데, NodeXL이 엑셀기반이라 만만해보여 선택. 긁어온 데이터를 그대로 때려 넣으면 CPU 님이 힘들어 할 것 같아 채널 간 가중치를 부여하는 형태로 데이터를 함축 시키고, 너무 벗어나는 예외 데이터도 제외시켰다.
NodeXL 은 이번에 처음 써봤는데, 템플릿도 다양하고 UI 도 직관적이라 좋았다.
기나긴 작업 끝에 탄생한 전체 관계도 ↓

NodeXL로 뽑은 10만 구독자 이상 채널 전체 관계도. 유사 채널별로 그룹을 생성하니 색으로 구분해 준다. 한 번에 이렇게 뽑은 건 아니고 약 7번의 삽질이 필요했다.
