소개
안녕하세요. 17기 카톡봇뉴스레터 스터디장 김현우입니다.
유튜브는 다양한 지식의 보고이죠. 저는 카톡봇을 시작할 때 사이트와 유튜브 요약부터 시작했습니다. 제가 카톡봇을 시작했던 동기였던만큼 유튜브와 사이트 요약은 바쁜 현대인인 저에게 매력적이었습니다.
기존 유튜브 요약봇
그런데 제 유튜브 요약봇이 스크립트를 잘 못 읽어 오기도 했고, 대신에 영상의 메타 데이터만을 바탕으로 요약하는 경우가 많았어요. 그리고 어떤 유튜브 영상은 요약 말고, 전문을 읽고 싶은 니즈가 있었습니다.
그리고 국내 콘텐츠 제작자의 경우 외국에서 제작한 영상을 자료 확보 차원에서 활용하고자 하는 분들도 많다고 느꼈어요.
그래서 유익한 유튜브 영상을 3줄 요약이 아닌 전문과 함께 콘텐츠 제작자들에게 줄만한 인사이트를 정리하여 제공하는 유튜브봇으로 업그레이드 하였습니다.
진행 방법
🔑 유튜브 스크립트 추출 방식 재검토
기존 유튜브봇의 유튜브 추출 방식의 문제점을 찾으려고 했어요.
기존 방식은 바이브 코딩으로 했으니, 제 의도와 상관없이 엄청 화려했어요. 그러나 Youtube가 제 서버의 IP를 차단하고 있다는 것은 서버의 로그를 다시 열어보면서 인지했어요.
기존에도 우회를 위해 Oxylabs의 프록시를 운용중이었는데, 제가 프록시를 yt-dlp에만 적용하고 정작 youtube-transcript-api에는 적용을 안하고 있었던 거에요.
🤔 여기서 잠깐! 유튜브 자막 추출 방식 함께 살펴 봐요
1. youtube-transcript-api 방식
👉 비공식 파이썬 라이브러리로 제작된 툴로 영상 ID → 웹 엔드포인트로 자막 JSON 획득 → 파이썬 데이터로 가공, 필요시 포맷 변환 및 저장
2. yt-dlp 방식
👉 오픈 소스 명령줄 툴로,유튜브 영상의 "메타 정보"를 분석해 자막 파일의 실제 다운로드 URL을 얻고, 네트워크 요청으로 해당 파일을 저장
3. Playwright/Selenium 방식
👉 브라우저 자동화 프레임워크. 이들을 활용하면 실제 브라우저에서 사람이 직접 행동하듯 유튜브 웹사이트를 탐색하고, 자막(스크립트)을 추출
✓ 메타데이터 받을 땐 YouTube Data API v3 방식도 있어요!
👉 Google의 공식 API를 발급받아 정식으로 요청 / 자막 데이터 제공은 안함.
😎 추출방식의 순서 최적화
추출 방식의 신뢰성이 100%인 방식은 없어요. 보통 70~80% 정도인 거 같아요. 그건 유튜브 사에서 봇인 것을 인지하면 차단하기도 하고, 유튜브 자체 업데이트 과정에서 기존에 효과가 있던 명령어가 먹통이 되기 때문이에요.
저는 기존에 yt-dlp 방식 우선으로 했는데, 제가 리팩토링 하는 과정에서 youtube-transcript-api 방식의 성공 확률이 좀 더 높다고 느껴서 추출 방식 중 성공 확률이 높아 보이는 youtube-transcript-api을 1순위로 놓았어요!
🌈 카톡이 말풍선 하나에서 소화할 수 있는 스크립트 크기
카톡에서 글이 길어지면 하단에 자세히 보기 화살표와 함께 "전체보기"가 뜨잖아요.
전체보기로 전환되는 기준은 500자에요. 500자가 넘으면 '