mytube – YouTube로 영어 공부하는 도구를 만들었다

YouTube를 많이 본다. 특히 영어 콘텐츠를 많이 보는데, 자막에 의존하는 습관이 문제라고 느꼈다. 자막 없이 듣다 보면 모르는 단어에서 막혀서 전체 흐름을 놓치고, 그렇다고 매번 사전을 찾자니 귀찮다. 이 문제를 풀어보고 싶었다.

당연히 이런 서비스는 세상에 많을 것이다. 하지만 AI, Agentic Coding, Vibe Coding이 유행하면서 함께 온 말이 있다. Instant App 시대가 올 거라고. 이번에 그 말을 몸으로 느끼게 되었다. 찾아보는 것보다 만드는 것이 빠르다. 더구나 찾는다 해도, 모든 것이 나에게 맞춤형일 수는 없다. 그러니 직접 만들었다. 세세한 부분까지 나에게 맞춤형으로.

mytube라는 이름으로 웹앱을 하나 만들었다. YouTube 영상으로 영어를 공부하는 도구다. 공개하거나 서비스할 목적으로 만들어진 것은 아니다. 철저히 내가 개인적으로 사용할 목적으로 만들었다.

어떻게 동작하는가

기본 아이디어는 간단하다. YouTube 플레이리스트를 동기화하고, 영상의 음성을 AI로 전사(transcribe)해서, 영상을 보면서 모르는 단어를 바로 찾아볼 수 있게 하는 것이다.

mytube 메인 화면
메인 화면 – YouTube 플레이리스트 동기화

Google 계정으로 로그인하면, 내 YouTube 플레이리스트가 동기화된다. Watch Later, Favorites, 커스텀 플레이리스트 등등. 자동 다운로드를 켜 놓으면 15분마다 새 영상을 체크해서 알아서 처리한다.

mytube 플레이리스트 상세
플레이리스트 상세 – 각 영상의 자막 준비 상태가 표시된다

플레이리스트에 들어가면 영상 목록이 보이고, 각각의 자막 준비 상태가 표시된다. “자막 준비됨”, “오디오 준비됨” 같은 식으로. 시청 진행률도 표시된다.

핵심: 영상 + 자막 + 단어 학습

영상을 클릭하면 플레이어 화면이 열린다. 영상 아래에 실시간 자막이 동기화되어 표시된다. YouTube 자체 자막이 아니라, 영상 음성을 ElevenLabs의 AI로 직접 전사한 것이다. 단어 단위의 타임스탬프가 있어서 정확하다.

mytube 영상 플레이어
영상 플레이어 – 실시간 자막이 영상과 동기화된다

자막에서 모르는 단어를 선택하면, Google Gemini AI가 한국어 뜻과 문맥에 맞는 번역을 알려준다. 사전적 뜻 뿐만 아니라 해당 문장의 직역과 의역도 함께 보여준다. 여러 단어를 한꺼번에 선택해서 일괄 분석도 가능하다.

mytube 모르는 단어 목록
모르는 단어 – 어떤 영상에서 어떤 문맥으로 등장했는지 함께 기록된다

이렇게 모은 모르는 단어들은 별도의 목록으로 관리된다. 각 단어가 어떤 영상의 어떤 문장에서 나왔는지 컨텍스트가 남아있어서, 나중에 다시 볼 때 기억이 살아난다. 이미 아는 단어로 표시하면 다음부터 자동으로 필터링된다.

기술 스택

프론트엔드는 Next.js 14 + React + Tailwind CSS, 백엔드는 Prisma + SQLite, 작업 큐는 BullMQ + Redis 조합이다. 영상 음성 추출에 yt-dlp + ffmpeg, 음성 전사에 ElevenLabs Scribe API, 단어 분석에 Google Gemini API를 사용한다.

Docker로 패키징해서 사내 서버의 Coolify에서 호스팅하고 있다. 컨테이너 하나에 Next.js 앱, 백그라운드 워커, Redis가 모두 들어있는 구조다.

mytube 대시보드
대시보드 – 플레이리스트별 오디오 저장 용량

현재 1,499개 영상, 1.5GB 정도의 오디오가 저장되어 있다. 영상을 재생하면 백그라운드에서 자동으로 오디오를 다운로드하고 전사하는데, 보통 몇 분 이내에 완료된다.

다만 ElevenLabs API 가격은 생각보다 돈이 많이 나갔다. 영상이 쌓이면 쌓일수록 전사 비용이 올라간다. 저렴한 대안을 찾아볼 필요가 있다.

처리 파이프라인

영상을 처음 열면 이런 과정을 거친다:

  1. yt-dlp로 YouTube 영상의 오디오를 MP3로 다운로드
  2. ElevenLabs Scribe API로 음성을 텍스트로 전사 (단어 단위 타임스탬프 포함)
  3. 문장과 단어를 DB에 저장
  4. 프론트엔드에서 영상 재생과 자막을 실시간 동기화

이 전체 과정이 BullMQ 작업 큐로 관리되고, 실시간으로 처리 로그가 화면에 표시된다. 실패하면 자동 재시도도 한다.

만드는 과정

Claude Code와 티키타카 하면서 대략 5-6시간 걸린 것 같다. 사실 확인하고, 기다리고, 이 과정의 반복이다. 코드는 단 한 줄도 보지 않았다. 구조나 이런 것도 보지 않았다. 그냥 원하는 결과물만 이야기했다.

솔직히 말하면, 아직 이걸로 영어 실력이 비약적으로 올랐다고 하기는 어렵다. 하지만 예전에는 모르는 단어를 그냥 넘겼다면, 이제는 클릭 한 번으로 뜻을 확인하고 기록이 남는다는 점이 다르다. 단어장이 쌓이는 걸 보면 나름 뿌듯하기도 하다.

기술적으로는, AI 서비스들의 API를 조합해서 뭔가 유용한 걸 만드는 경험이 좋았다. ElevenLabs의 음성 인식 정확도가 꽤 괜찮고, Gemini의 문맥 기반 번역도 생각보다 쓸만하다. 이런 API들이 없었으면 혼자서는 절대 못 만들었을 것이다.

사실 이 블로그 글도 AI가 써줬다.

부서진 Sound Core 헤드폰

부서진 SoundCore 헤드폰
부서진 SoundCore 헤드폰

24년 광군절 행사에서 4-5만원대에 구입했다. 막귀인 내가 들어도 음악 감상용으로는 절대 부족하다고 느꼈다. 하지만 평소 유튜브나 팟캐스트 등 보이스 위주로 듣기 때문에 별 문제가 없었다. 특히 AirPod Pro 가 메인이긴 하지만, 내가 가진 유일한 헤드폰으로 역할을 잘 해주었다. 원래는 책상에서만 썼는데, 점점 욕심이 나서 가방에 가지고 다니기 시작했는데, 몇 주 안되어서 박살이 났다. AirPod Max 가 왜 무겁지만 금속으로 만든지 이해가 갔다.

우버 잇츠의 매출이 우버 보다 더 높아 졌다고

코로나로 인해서, 이동량이 줄어서 우버 승차 공유에 대한 수요는 줄어 들었고, 음식 배달에 대한 수요는 오히려 늘어서, 결과적으로 우버 잇츠의 매출이 우버 보다도 높아지는 결과가 되었다.

우버잇츠는 3년만에 우버가 이룬 성과를 만든 거라고.

메모 : 코로나 사태가 장기화 되면, 이동이 줄고, 배달은 늘고 이 흐름이 언제까지 지속될 것인지가 관건.

ODD 렌터카+원격운전을 이용한 우버

ODD(On Demand Door-to-door) Car 라는 다음과 같이 동작한다.

  1. 우버나 리프트를 호출 하듯이 차를 호출한다.
  2. 빈 차가 우리 집앞에 혼자 온다.
  3. 뒷자리가 아닌 운선석에 앉는다.
  4. 직접 운전해서 목적지까지 간다.
  5. 차에서 내리면 빈차는 떠난다.

이 기술이 동작하기 위해서는 한 가지 기술이 필요하다. 원격 운전. LTE나 5G로 연결되어서 운전자는 원격에서 자동차를 운전하기만 하면 된다.

무슨 의미냐? 현재 우버와 같은 공유차량 서비스는 큰 문제가 있다. 바로 비용의 대부분이 운전자의 인건비라는 것이다. 운전을 고객이 직접 함으로써 비용 절감이 가능하다. 또한 운전자는 항상 운행중인 것이 아니고, 30% 이상의 시간은 길거리에서 손님 잡으러 낭비하고 다닌다. 위 ODDCar 를 이용하면, 이러한 낭비를 줄 일 수도 있다. 우버 대비 반 가격에 서비스 제공이 가능해 진다.

완전자율주행이 오면 이런 거 다 필요 없지 않냐고? 그렇다. 그러나 완전 자욜 주행이라는 것이 언제 올지 모른다. 10년이 될지 그 이상이 될지. 그리고, 대중은 아직 완전 자율주행차에 대한 두려움이 있다. 중간 단계가 필요하다. 또 하나, 당장 완전 자율 주행이 나오더라도 사람 운전자 만큼의 원활한 속도의 원할환 서비스 제공이 불가능하다. 아마도 시장의 반감을 살 수도 있다. 그 보다 먼저 이런 중간 시도가 완전 자율 주행 서비스가 도입되기 전까지는 더 나은 만족도를 줄 수 있다.

메모 : 나는 개인적으로 매우 신박한 아이디어라고 본다. 우리나라 정부, 그리고 5G광고하기 좋아하는 통신사 그리고 현대기아차에서 재빨리 이런 아이디어를 실험해 보기를 희망하지만, 아마도 중국에서 가장 먼저 해 보지 않을까 싶다. (미국은 빨리 시작해도 중국보다 더 빨리 본격적으로 광범위하게 실험하지는 못할것 같다는 느낌) 누가 되었던 빨리 시도해 보기를 기대한다.

어떤 사람은 궁극의 완전한 솔루션으로 바로 가는 것을 좋아하고, 어떤 사람은 아주 안정적인 기존 기술에 머무르기를 좋아하는데, 나는 개인적으로 이렇게 작은 한 발 전진을 매우 좋아하는 편이다.

"아아존 고"의 손바닥 인증 및 결제

아마존이 최근 아마존의 오프라인 매장인 “Amazon Go” 에서 사용할 수 있는 손바닥 인증 및 결제 솔루션을 선보였다. 이름하여 Amazon One 솔루션 향후 스타디움이나 다른 보안 시설에도 확장할 계획이라고. 그리고 홀푸드마켓까지.

손바닥을 선택한 이유는 보안. 얼굴(홍채, 지문 마찬가지)에 대한 정보를 아이존 서버에 보관하고 있는 것이 좀 찝찝하고, 그 다음부터 나쁜 마음으로 어디서든 스캔하면 나 몰래 추적이 되지 않나 두려움이 생기는데, 손바닥은 주먹을 펴서 명시적인 행동을 해야 스캔이 가능하고, 노출이 부담이 적은 데이타라 선택한 것이라고 한다. 그리고, 지문 인식과 달리 접촉이 필요 없는 것도 코로나 시절에 장점.

서드파티에게도 제공해 줄 예정인데, 일반 빌딩 출입 관리, 매장 관리 등에서도 사용할 수 있도록 할 예정. Amazon One 계정은 아마존 계정이 없어도 핸드폰이나 신용카드만 있으면 등록 가능하다고.

메모 : 중국이 얼굴인식을 통한 디바이스 없는 결제를 시도할 때만 해도, 중국이니깐 저러지라고 생각했다. 그런데 아마존이 좀 더 세계가 받아들일 수 있는 수준으로 디바이스 없는 생체정보만의 결제 그리고 개인인증까지 시도하니깐, 아 이제는 받아들일때가 왔구나 싶다.

K팝, K드라마, K방역까지 우리가 한참 앞서 나간다는 생각이 들다가도, 이런 부분은 전혀 진척이 없네.

보물 찾기

코로나로 경제가 어려워 지자, 보석상을 하던 존은 자신의 매장에 있던 모든 보석을 땅에 묻어 버렸다. 그리고, 지도를 만들고, 보물찾기 서비스를 만들었다 총 1.4 m (20억원) 정도. 참가비를 내면, 지도를 받게 되고, 문제를 플면 보석의 위치를 알 수 있다. via Cassandra Daily

메모 : 국내에서는 사행성이라 흉내내기는 어려울 듯. 어설프게 따라했다가 관련법에 저촉될 가능성 매우 높음.

Next Economy : Plastic Hour

현재가  “바꿀 수 있는 시간(plastic hour)” 인가?

plastic hour 는 변화가 가능한 결정적 시간을 말한다. 밀레니얼 세대의 시대가 왔다. 그들은 실패한 전쟁을 경험했고, 저하된 교육을 받았고, 어두운 경제 전망속에서 살았다. 그래서 한편으로는 냉소적이지만, 한편으로는 이상적이다. 코로나 대응에 실패했고, 여기 저기서 나오는 온갖 위기 상황은 자연스럽게 변화의 시간으로 이어진다.

굳어버린 사회 질서가 유연해 지고, 오래된 정체가 움직이기 시작할 때 사람들은 희망하기 시작한다. 아주 드문 변화의 기회가 온 것이다. 대중의 여론, 정치적 힘, 사건, 이 모든 것이 유기적으로 결합되어야 한다. 즉, 위기상황으로 나타나는 것이다. 사람들이 움직이지 않으면 이 기회는 그냥 버려질 것이고, 아무 변화를 이루지 못할 것이다. 지금이 변화가 가능한 기회인 것 같은데….

존 바이든도 똑같이 생각한다. 지금이 변화할, 미국 역사상 큰 변화가 가능한, 그런 시간인 것 같다.

지금이 변화할 때이다. 또한 Next Economy 가 실현될 시간이기도 하다. 기후 변화에 대한 해결책이, 노후 대책부터 교육, 소득불평등에 대한 새로운 생각을 할 때이다. 위기로 부터 혁신이 자란다. 

미국 민주주의를 죽음에서 되살릴 마지막 기회이다. 마치 죽어가는 사람을 살리는 수술 처럼 정교한 조취가 필요하다.  매 단계 아주 조심스럽고 즉각적인 대처가 필요하다. 나는 희망을 가지고 있다. 모든 것이 우리 손에 달렸다.

메모 : 트럼프 대통령의 광기의 시대를 종식시키고, 바이든을 통한 민주당의 상식적인 사회로 돌아가는 것을 희망하는 미국 엘리트의 애처러운 희망 발악(?)이 보인다. 멋지게 글을 썼지만, 그리고 그 희망이 현실이 될지도 있겠지만, 좀 더 근원적인 고민이 필요하다. 왜 이 시스템이 정상 동작을 하지 않는 광기의 시대로 흘러갔는지. 미국도 그리고 한국도.

대기는 공공재

이산화탄소 배출에 대한 공정한 기준은 무엇인가? 대기는 모든 나라가 같이 공유하지만, 이산화탄소 배출은 그렇지 않다. 북방구는 배출의 92%를 하고 있지만, 남방구는 90% 비용과 98%의 대기 오염 관련한 사망에 연결되어 있다.

이건 대기에 대한 도둑질이다. 어떤 나라는 허용된 양보다 훨씬 많은 이산화탄소를 배출하고 있다. 마치 선진국이 후진국의 노동력과 자원을 빼앗아 발전한 것처럼, 이것도 마찬가지의 과정을 통하여 대기의 식민화를 하고 있다고 봐야 한다.

메모 : 과거 서구 열강이 성장에는 식민지의 희생이 밑바탕이 되었듯이, 현재의 패권국의 과실에는 환경 피해국의 희생이 바탕이 되고 있다. 기후 문제는 개인적으로는 참 어렵다.

중산층을 살릴 3가지 방법

중산층과 상류층의 격차가 최근 많이 벌어졌다. 그런데, 코로나로 인해서 미국 억만장자는 4천억불(400조원) 이상 더 부자가 되었고, 14백만명의 실업자가 생겼다. 중산층의 소득은 오르지 않았고, 그들의 부채는 붕괴위기로 몰렸다. 중산층을 만드는 이상적인 상황은 직업으로 인한 사회적 신분 차이를 최소화 하는 것이다. 즉, 아마존 물류센터 직원으로 평생을 살았다면, 그 삶의 질은 인공지는 엔지니어, 변호사 등과 같은 수준이어야 한다는 것이다. 중산층의 이상이 이루어 지기 위해서 3가지가 바탕이 되어야 한다.

  1. 국가적 의료보험 제도
  2. 서비스 영역 노동자의 단결과 임금인상
  3. 낮은 거주용 주택 가격

메모 : 맞는 말인데, 이상적이고, 이상적인데, 또 그리 먼 미래는 아닐수도 있겠다는 생각도 들고. 한국은 위 1번은 대략 낫다고 하면, 2,3번은 미국보다 갈 길이 더 멀지도…

팬데믹이 아닌 부유함이 뉴욕을 죽였다

뉴욕의 소음이 5데시벨로 떨어졌다. 코로나 이후 모두들 외곽으로 빠져나갔다. 뉴욕이 파멸하고 있다고 아우성이다. 심판의 시간이다. 하지만, 코로나때문이 아니다. 지금까지 해 왔던 것 때문이다. 소득불균형, 미친 뉴욕의 임대료. 뉴욕은 중산층과 노동자 계급을 위한 멋진 도시였고, 그렇게 발전해 왔다. 지금이 다시 그 시절로 돌아갈 시간이다.

메모 : 역시나 마찬가지고 코로나가 이 사회의 문제를 만드는 것이 아니라, 드러내고 있다. 코로나가 변화를 주저했던 것을 이번에 가능하게끔 하리라.

더 깊게 읽기 : 역성장의 사례

지난번 희소성과 한계를 구분하는 이야기를 하였다. 끊임 없이 성장하려 하지만, 그 방법은 제한적인 잘못된 전제를 말했다. 성장과 역성장은 이 시대의 중요한 논의 과제이고, 기존 수요와 희소성에 관한 경제 모델을 완전히 뒤집어 놓았다. 이 책에서는 경제 성장에 대한 추구가 현대 사회의 모습을 규정하였으나, 이득은 적으나 심각한 사회적 환경적 비용을 초래한다고 한다. 사회는 재앙이 없더라도 태생적으로 속도를 늦출 수 있다. 지속적인 생산, 소비의 증가 보다는 복지, 공정, 지속 가능함에 관심을 가지면 지속가능한 경제, 더 풍요로운 사회를 가질 수 있다. 이 책은 업무와 관리에 관한 정책, 소득, 착취와 지속 불가능한 관행을 제거하는 투자에 관한 이야기를 한다.

메모 : 성장이 모든 문제를 해결해 주었다. 더 많은 생산이 더 많은 소비와 더 많은 부를 가져다 주었고, 이것은 성공 방정식이었고, 누구도 부정할 수 없는 공식이었다. 이제는 성장으로 문제를 푸는 것에 대한 한계가 온 것이 아닌가 돌아 볼 시점이 온 것 같다. 양적인 팽창이 아닌 질적인 관점을 볼 타이밍.