티스토리 뷰

유튜브 뮤직 '좋아요' 목록으로 내 음악 취향 분석하기 (Gemini → Claude + MCP + ytmusicapi)

평소에 유튜브 뮤직에서 '좋아요'를 눌러둔 곡들이 꽤 쌓였는데, 이걸 AI한테 분석시켜서 "나는 어떤 음악을 좋아하는 사람인가"를 알아보고, 비슷한 아티스트도 추천받고 싶었다. 처음엔 막막했지만 결국 로컬 PC에 AI 에이전트를 연결해서 자동으로 데이터를 가져오는 방식으로 성공했다. 그 과정을 정리해본다.


0. 첫 시도: Gemini에서 시작

처음엔 Gemini에게 바로 물어봤다. 결과는 예상대로였다.

  • Gemini는 유튜브 뮤직 '좋아요' 목록에 직접 접근할 수 없음
  • 대신 "스윙 재즈를 좋아할 것 같다"는 식으로 임의의 예시 취향을 가정해 분석/추천을 보여줌 (당연히 내 취향이 아니었음)
  • "MCP로 연동 안 되냐?"고 물으니, Gemini가 Claude Desktop + Filesystem MCP 서버를 설정하는 로드맵을 안내해줌

여기서부터 본격적으로 로컬 환경(Mac)에 에이전트를 세팅하는 작업이 시작됐다.


1. 따라하기 매뉴얼 (실제로 성공한 절차)

1) Node.js 확인/설치

node -v
# 없으면
brew install node

2) 작업 폴더 생성

mkdir -p ~/mcp_music

앞으로 음악 데이터와 스크립트를 여기에 모아둘 예정.

3) Claude Desktop 설정 파일에 MCP 서버 추가

~/Library/Application Support/Claude/claude_desktop_config.json 파일을 열어서 mcpServers 항목을 추가한다. (기존에 다른 설정이 있다면 그 아래에 쉼표로 이어붙이면 됨)

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/사용자명/mcp_music"
      ]
    }
  }
}

4) Claude Desktop 재시작

Cmd + Q로 완전 종료 후 다시 실행. filesystem MCP 서버가 정상 연결되면, 이제 Claude가 mcp_music 폴더를 읽고 쓸 수 있다.

5) ytmusicapi 설치

pip3 install ytmusicapi

6) 브라우저에서 인증 헤더 추출

  1. music.youtube.com에 로그인
  2. 개발자도구 열기 (Cmd + Option + I)
  3. Network 탭에서 browse 요청 클릭
  4. Request Headers를 raw(view source) 형태로 전체 복사
    • cookie, x-goog-authuser, authorization 헤더가 반드시 포함되어야 함

⚠️ 주의: 이 헤더에는 SID, SAPISID 등 구글 계정 로그인 세션 정보가 그대로 들어있다. 사실상 로그인된 상태로 계정에 접근 가능한 키이므로, 다른 사람에게 공유하거나 git에 올리면 안 된다.

7) headers_auth.json 생성

복사한 헤더를 setup_auth_direct.py 같은 스크립트에 직접 넣어서 실행 → headers_auth.json 생성. (터미널에 직접 붙여넣기는 쿠키 문자열이 너무 길어서 실패하는 경우가 많아, 스크립트 파일에 박아넣는 방식이 안정적이었다)

cd ~/mcp_music
python3 setup_auth_direct.py

생성 후 보안을 위해 임시 스크립트는 바로 삭제:

rm setup_auth_direct.py

8) 좋아요 목록 추출

python3 get_liked_songs.py

→ liked_songs.json 생성 (이번엔 97곡이 추출됨)

9) Claude에게 분석 요청

Claude Desktop에서 filesystem MCP를 통해 liked_songs.json을 읽고 취향을 분석.

10) 시각화 + 비슷한 아티스트 추천 요청

"시각화 차트와 비슷한 아티스트를 추천해줄래?"라고 물으면 추가 분석 결과를 받을 수 있다.


2. 진행하면서 막혔던 부분들 (Q&A 모음)

Gemini 단계

  • "config.json에 어떻게 추가해?" → 기존 preferences 블록 끝에 쉼표(,) 추가 후 mcpServers 병합
  • "편집은 어떻게 해?" → nano 사용법(전체삭제 Ctrl+\ → Ctrl+K, 저장 Ctrl+O→Enter, 종료 Ctrl+X) 또는 open -e 파일경로로 TextEdit에서 여는 방법
  • "맥 터미널 전체선택은?" → nano 내부 단축키와 터미널 메뉴바의 '전체 선택'은 다르다는 점 정리
  • "Xterm mouse tracking still off" 에러 → 단순 글리치, Ctrl+C → clear로 정리하면 해결
  • "Save modified buffer?" 프롬프트 → Y → Enter로 저장
  • "저장이 안 되어 있는데?" → nano 대신 open -e로 TextEdit 열어서 전체 교체하는 방식으로 우회
  • 다른 클라이언트(Claude 웹)의 응답을 Gemini에 붙여넣고 혼란 → "그건 다른 AI 환경의 응답이라 지금 만든 MCP 설정과 무관하다"는 점 확인

Claude 단계

  • Mac에서 F12가 안 먹힘 → 개발자도구는 Cmd + Option + I
  • YTMusic.setup() AttributeError → ytmusicapi 최신 버전에서는 모듈 함수 setup()으로 변경됨
  • 헤더 누락 에러 (x-goog-authuser, cookie 없음) → "raw/view source" 형태로 복사해야 전체 헤더가 포함됨
  • 터미널 붙여넣기 길이 제한 → 쿠키가 길어서 한 줄 paste가 끊김 → 스크립트에 직접 헤더를 넣는 방식으로 해결
  • cd 안 하고 실행해서 "파일 없음" 에러 → 항상 cd ~/mcp_music 먼저
  • Claude Desktop 앱 위치를 못 찾음 → Cmd + Space Spotlight 검색 또는 /Applications 폴더
  • 🔨(망치) MCP 아이콘이 안 보임 → 로그(~/Library/Logs/Claude/mcp*.log) 확인 결과 실제로는 연결 정상, UI 표시 문제였음
  • "너 Claude Desktop 아니냐?" → 웹/모바일 Claude와 Desktop 앱의 MCP 환경은 완전히 분리되어 있다는 점을 여러 번 확인해야 했음

3. 분석 결과

97곡을 분석해보니 내 취향은 대략 이랬다.

  • 한국 인디/감성 발라드가 전체의 1/3 이상 (Epitone Project, 짙은, 카더가든, 10CM, HYUKOH, AKMU 등)
  • OST/뮤지컬 음악 비중도 큼 (KPop Demon Hunters OST 5곡, La La Land, 뮤지컬 '빨래' 등)
  • 80~90년대 레트로 발라드에 대한 애정 (김장훈, 김현식, 이승환 등)
  • K-pop과 해외 팝은 상대적으로 적은 비중

같은 곡의 여러 버전(오리지널/팝 버전 등)을 모두 좋아요한 패턴도 발견됐는데, "버전별로 비교해서 듣는 스타일"인 듯하다.

추천받은 비슷한 아티스트

  • 어쿠스틱 인디 계열: 오반(OVAN), 김사월, 이아립, 정동하
  • 인디 밴드 계열: 새소년, 검정치마, 윈디시티, 실리카겔, ADOY
  • 멜로딕 인디 팝: 오존(ozhone), 우효, 솔루션스, 청예
  • 클래식 인디 발라드: 스윗소로우, 라이너스의 담요, 빛과 소금
  • OST/발라드 보컬: 헤이즈, 폴킴, 정승환, 이수현
  • 레트로 발라드: 변진섭, 신승훈, 유재하, 들국화

마무리

결국 핵심은 "AI가 내 컴퓨터의 파일을 읽을 수 있게 만들어주는 것" (MCP) 과, 유튜브 뮤직 데이터를 키 발급 없이 가져올 수 있는 ytmusicapi였다. 한 번 headers_auth.json을 만들어두면, 이후엔 python3 get_liked_songs.py 한 줄만 실행해서 최신 좋아요 목록을 다시 받아올 수 있어 자동화에도 좋다.

다음엔 재생 기록(watch history)까지 받아서 시간대별 청취 패턴도 분석해볼 계획이다.

나의 음악 취향

Shin Ji Hoon, Broccoli you too?, 짙은, neu 같은 어쿠스틱 인디 계열을 좋아하신다면
오반(OVAN), 김사월, 이아립, 한로로(이미 목록에 있음), 정동하, 옥상달빛(이미 목록에 있음) 같은 아티스트들이 비슷한 결의 잔잔하고 가사 중심적인 곡들을 많이 냅니다.

JANNABI, HYUKOH, 카더가든, AKMU 같은 밴드/싱어송라이터 계열
새소년, 검정치마, 윈디시티, 실리카겔, 아도이(ADOY) 같은 아티스트들이 비슷한 인디 밴드 감성을 가지고 있어요.

극동아시아타이거즈, 10CM, Yerin Baek 같은 멜로딕한 인디 팝
오존(ozhone), 우효, 솔루션스(Solutions), 청예 같은 아티스트가 잘 맞을 것 같습니다.

Epitone Project, Taru 같은 클래식 인디 발라드
스윗소로우, 라이너스의 담요, 빛과 소금 같은 90년대~2000년대 인디/포크 계열도 비슷한 정서를 줍니다.

OST/뮤지컬 쪽 (오연준, Jung Seung Hwan, MeloMance, 한지상)
헤이즈, 폴킴, 정승환, 이수현 - 드라마 OST에 자주 등장하는 보컬리스트들로, 비슷한 감성의 발라드를 많이 부릅니다.

김장훈, 김현식, 이승환, 이광조 같은 레트로 발라드를 좋아하신다면
변진섭, 신승훈, 유재하, 들국화 같은 80~90년대 한국 가요 명곡들도 잘 맞을 거예요.

'Professional' 카테고리의 다른 글

주소를 입력 받아 지도에 마커로 보여주기  (0) 2024.09.02
일정 관리 방법  (0) 2024.04.22
Spotify Model.. 그리고 우리팀??  (0) 2022.06.30
C++ 복사생성자에 대한 설명.  (0) 2019.04.24
부끄러움..  (0) 2017.01.22