TL;DR
- Spotify 브라우저 API는 타입스크립트로 만든 로컬 단일 계정 서버이며, 브라우저 자동화 방식으로 Spotify 웹 플레이어를 조작함
- Puppeteer가 크로미움 또는 파이어폭스에서 Spotify 웹 플레이어를 구동하고, 렌더링된 HTML을 읽으며 플레이어 버튼을 클릭함
- Spotify의 웹 API 호출, 접근 토큰 추출, 비공개 네트워크 요청 재생을 수행하지 않음
- 검색과 항목 스냅샷, 내 보관함과 좋아요 표시 곡, 아이디 기반 비공개 재생 목록 스냅샷, 재생 제어, 제한된 메모리 캐시를 포함함
- 계정 관련 경로는 실험 단계이며, 헤드리스 오디오 재생은 보장되지 않음
Spotify 브라우저 API
- Spotify 브라우저 API는 타입스크립트로 만든 로컬 단일 계정 API 서버임
Puppeteer가 크로미움 또는 파이어폭스에서 Spotify 웹 플레이어를 구동함- 서버가 렌더링된 HTML을 읽고 플레이어 버튼을 클릭하는 방식으로 동작함
- Spotify 웹 API를 호출하지 않으며, 접근 토큰을 추출하거나 비공개 네트워크 요청을 다시 재생하지 않음
포함 기능
- 검색 및 항목 스냅샷
- 내 보관함과 좋아요 표시 곡
- 아이디로 조회하는 비공개 재생 목록 스냅샷
- 플레이어 제어
- 범위가 제한된 메모리 내 캐시
시작 방법
- 설정과 브라우저 로그인을 먼저 진행함
- 같은
API_TOKEN을 사용해bun run tui를 실행하면 터미널 플레이어를 열 수 있으며, API 참고 문서의 경로를 사용할 수도 있음 - 결과를 신뢰하기 전에 제한 사항과 검증 내용을 확인함
- 서버 실행에는
Node.js 22이상이 필요함 Bun으로 의존성을 설치하고 패키지 스크립트를 실행할 수 있음
계정 기능과 재생 제한
- 계정 관련 경로는 실험 기능임
- 오프라인 브라우저 테스트는 Spotify의 현재 로그인 화면이 아니라 고정 자료를 대상으로 동작을 검증함
- 헤드리스 환경에서 오디오 재생은 보장되지 않음
점검 명령
bun install --frozen-lockfile로 잠금 파일에 맞춰 의존성을 설치함bun run check로 점검을 실행함BROWSER_EXECUTABLE_PATH=/usr/sbin/firefox bun run test로 파이어폭스 실행 파일을 지정해 테스트함BROWSER_EXECUTABLE_PATH에는 설치된 파이어폭스, 크로미움 또는 크롬 실행 파일 경로를 지정함- 해당 변수를 지정하지 않으면 서버가 표준 Google Chrome 설치 위치를 찾음
- 브라우저는 자동으로 내려받지 않음
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요