youtube.png

지난 1학기에 학교에서 오픈소스 개론 수업을 들었어요. 선배님들이 이뤄놓은 오픈소스 생태계에 대해 배우니 선배님들의 공유 정신이 대단하다고 느껴지면서저런 대단한 사람들만이 오픈소스를 개발하고 기여한다고 생각했어요. 수업 막바지쯤 과제로 오픈소스를 사용해서 뭐든지 만들어 보라고 하셔서 유튜브에서 영화 리뷰 영상에 달린댓글을 수집하고 Keras를 이용하여 간단한 층을 쌓아 영화의 평점을 예측해보는 프록그램을 만들었어요. 정신없이 완성을 하고 나니 오픈소스에 관심이 조금 더 생겼어요.

그러던 중 학교 커뮤니티에서 오픈소스 컨트리뷰톤 모집 공고를 발견했어요! 관심있게 읽어 보았는데 마침 제가 오픈소스 수업에서 경험했던 NLP에 기여하는 팀이 있어서이건 나를 위한 거구나! 하고 바로 지원했죠. 합격하고 나서도 난 그냥 키보드만 투닥투닥 거릴 줄 아는 학부생에 불과한데 뭔가를 할 수 있을까 매일 고민했어요. 오픈소스 레포지토리에 이슈를 넣으면서 오픈소스에 적응하고 있는데 어느날 문득 뭔가 만들어보고싶다! 라는생각이 확 들었어요! 그러면서 제가 저번학기 수업에서 힘들게 Youtube에서 댓글을 크롤링했던게 생각났고제가 귀찮게 자료 찾아가면서 했던 작업을 다른 사람들은 좀 더 편하게 해줄 수 있으면 좋겠어서유튜브 텍스트 데이터 크롤링 라이브러리를 개발하기로 마음먹었습니다!

유튜브는 영상플랫폼 아니야? 라고 생각하시는 분들이 있을수도 있는데, 요즘 가장 많이 사용하는 플랫폼이니만큼 댓글, 제목, 자막, 더보기 등 정말 많은 정보들이 있고 위대한 유튜브 알고리즘 기반으로 관련된 영상을 모아서 가져올 수 있기 때문에 NLP를 연구하시는 분들에게 정말 좋은 소스가되더라고요. 만들겠다고 마음먹자 마자 댓글과 제목 밖에 크롤링 할 수 없던 코드를 자료를 찾아서 더보기란과 자막까지 가져올 수 있도록 추가했어요. 최대한 유튜브에 해가 되지 않는 방향으로 크롤링 하기위해 유튜브 공식 API를 사용하였는데 이 API가 할당량이 다 되면 멈추는 이슈가 있어서 사용자들이 좀 더 편하게 사용하도록 여러개의 API키를 입력하고 할당량이 끝나면 자동으로 바꿔주는 기능까지 추가했습니다. 가장 간단하고 간편하게를 모토로 라이브러리를 만드는데 문득 세부적인 부분까지 조정하길 원하는 사용자도 있을거라는 생각이 들었어요. 그래서 영상을 검색할때 영상의 관련 주제를 선택할 수 있는 파라미터를 추가하려 했는데이게 유튜브 공식 문서에 해당 파라미터는 있는데 예시를 제외하고는 없더라고요? 당황해서 미국, 영국 등 여러나라 공식 사이트에 들어가봐도 다 없었어서 만고의 구글링을 시작했고결국 러시아(잘 기억이 안나는데 러시아 같았어요..) 공식 유튜브 예전 버전에서 그 파라미터를 찾을 수 있었고 이때 뭔가 짜릿했습니다 ㅎㅎㅎ 크롤링 테스트를 완료하고 데이터 프레임의 형태로 변환해주었는데 이를 저장하는 과정에서 문제가 생겼어요. 전 최대한 코드 한줄로 모든걸 완성 시켜주고 싶어서 폴더 생성해서 파일을 저장까지 해주려고 했는데, 파일의 이름을 어떻게 해야할지 모르겠었어요. 본인이 검색했던 검색어로 파일을 만들면사 용자가 어떤 검색어로 검색했는지 몰라서 폴더명 제약에 걸려 오류가 뜰 수 있거든요.. 그렇다고 저장을 안하면 제가 처음에 생각했던(최대한 사용자가 편하게) 방향과는 조금 달라서 고민을 하다 결국 현재 시간을 기반으로 파일을 저장해주기로 했어요 ㅎㅎㅎ(혹시 이에대해 좋은 아이디어각 있으시면 이슈 남겨주세요!)

그렇게 많은 고민 끝에 코드를 완성하고 Pypi에 배포하여 pip install로 간편하게 설치까지 할 수있도록 설정하여 라이브러리 개발을 완료하였습니다. ㅎㅎㅎ 배포를 하고 pip ‌install로 잘 설치되는 저의 라이브러리를 보니 너무 뿌듯했어요. 불과 몇개월 전 까지만 해도 오픈소스는 대단한 사람들만 하는거야 라고 했던 제가 오픈소스를 개발하고 배포해서 사람들의 소중한 시간을 지켜주다니!! 며칠 뒤엔 제가 저희 팀 말고는 어디에 말한적도 없는데 어떻게 알고 많은 분들이 사용해주시고 깃허브 스타를눌러주고 가시더라고요. 정말 몇개 안되지만 이런게 처음인 저는 너무 신났고 내가 정말 도움이 되었구나를 느끼며 뿌듯해했습니다.

이 컨트리뷰션 아카데미가 아니었다면 절대로 누리지 못했을 거에요. 이런 프로그램 만들어 주셔서 감사합니다 ㅎㅎㅎ 그런데 저도 좀 사용하다보니 생각지 못한 오타, 오류가 발생하더라고요 지금 당장 학교 시험기간이라 신경을 못쓰고 있는데한번 사용해주시고 부족한 부분 지적 해주시고 이슈, PR 날려주시면 정말 감사하겠습니다 !!!(스타까지 남겨주시면 더욱 좋고요 ㅎㅎㅎㅎ) https://github.com/Mo0nl19ht/youtube_crawler 라이브러리 깃허브 주소입니다. 이 기회를 계기로 앞으로 더 멋진 오픈소스 컨트리뷰터가 되고 싶어요여러분 키보드만 투닥거리는 학부생인 저도 해봤어요 여러분도 가능합니다!아무것도 아닌 프로그램이라 생각해도 누군가에겐 도움이 돼요!오픈소스 화이팅!!!