
Music Assistant(MA)는 여러 음원 소스(스트리밍/로컬 파일/라디오/팟캐스트)와 다양한 재생 기기(스피커/캐스트/에어플레이 등)를 한 곳에서 묶어 “내 음악을 내 기기에서, 자동화까지” 하도록 만든 오픈소스 음악 플랫폼입니다. “Home Assistant(HA)와 나란히 쓰는 것”을 전제로 자동화 친화적으로 설계되어 있고, HA에는 공식 통합(Integration)으로 연결됩니다.
2.7의 핵심 변화




1) 프로젝트 운영: 전담 인력 합류
Music Assistant 프로젝트에 Open Home Foundation의 첫 전담(풀타임) 구성원이 합류하고, 프로젝트 운영을 주도할 예정이라는 소식이 포함됩니다.
2) UI/UX “비주얼 오버홀”
2.7에서 UI/UX 대개편의 시작을 선언합니다.
- 좌측 접히는 내비게이션 바(사이드바) 도입
- 설정 페이지 브레드크럼(현재 위치 경로) 로 탐색 개선
- 특히 눈에 띄는 변화: 브라우저에서 바로 재생 가능한 “Built-in Player”(내장 웹 플레이어)
3) 로그인/사용자 프로필/권한
로그인/인증 기능이 추가되어, 다음이 가능해졌습니다.
- 사용자별 프로필(각자 다른 음악 제공자 계정 구성 가능)
- 스피커(플레이어) 접근 권한 을 사용자별로 제한 가능
- Home Assistant 계정으로 SSO(싱글사인온)처럼 쓰는 흐름도 언급
4) 원격 음악 스트리밍(외부에서도 MA 사용)
새 원격 접속용 웹앱을 통해, 인터넷이 되는 곳이면 MA 음악을 재생할 수 있는 기능을 소개합니다.
- Home Assistant Cloud의 멀티미디어 스트리밍(WebRTC) 기능을 활용해 오디오 라우팅
- 구독 없이도 사용 가능(인프라를 제공받는 구조)
- 연결은 P2P + 종단간 암호화(E2EE) 라고 설명합니다
5) Sendspin 소개: MA가 직접 “새 스트리밍/동기화 프로토콜” 만든 이유
2.7의 가장 큰 기술 포인트 중 하나가 Sendspin입니다.
- MA에 내장(native)된 재생/제어/동기화 프로토콜
- 샘플 정확도(sample-accurate) 수준의 멀티룸 동기 재생을 목표
- 오디오뿐 아니라 아트워크/메타데이터/시각화(향후) 같은 “음악 경험” 전체를 다루려는 방향
- 오픈소스/라이선스 프리, 스펙도 공개(실험적/프리뷰 성격)
Sendspin 문서에 정리된 기능
- 멀티룸 동기 재생, 자동 발견(mDNS), 기기별 DSP/볼륨
- 클라이언트의 양방향 제어(재생/일시정지/스킵 등)
- 브라우저 웹 플레이어는 로컬이면 WebSocket 우선, 아니면 WebRTC 폴백
6) AirPlay 강화
AirPlay 관련으로는 다음 흐름을 말합니다.
- 외부 오디오 소스 입력(예: Spotify Connect)을 서버로 받아서 다른 기기로 뿌리는 방향이 있었고
- 이제 AirPlay 오디오를 MA로 “보내기(입력)” 할 수 있게 확장
- 또한 AirPlay 2 스피커를 플레이어 제공자로 지원
7) 가사(Lyrics) 지원 확장
2.6부터 가사 표시가 가능했고, 2.7 글에서는 가사 제공자/싱크(카라오케처럼 타임드 싱크)가 확장되는 흐름을 설명합니다.
- LRCLIB → Tidal lyric sync, Genius, 로컬 LRC 등
8) Smart Fading(더 자연스러운 크로스페이드)
곡 BPM 등을 고려해 곡 전환 크로스페이드를 자연스럽게 하는 “Smart fading” 추가. 설정에서 Enable Smart Fades로 켜는 방식이 안내됩니다.
9) 기타(“Hot 100” 묶음 업데이트)
중요도 높은 항목들
- DSP 프리셋 저장/적용
- 청취 이력/스코블링(LastFM, ListenBrainz, Subsonic)
- 신규 플레이어 제공자: Yamaha MusicCast, Roku 등
- 신규 입력 제공자: VBAN
- 라디오/팟캐스트 제공자 다수 추가(예: Radio Paradise, Podcast Index, BBC Sounds 등)
- 기타: Internet Archive, Niconico 등 다양한 제공자 추가
설치/구성 관점 흐름
1) 권장: Home Assistant Add-on 방식
MA는 HA와 나란히 쓰는 구성이 권장되고, HAOS(Add-on Store) 환경이면 Add-on으로 설치하는 흐름이 가장 쉽다고 안내합니다. 또한 HA/MA 호스트와 플레이어 기기가 “같은 L2(같은 평면 네트워크)”여야 하며, 문서에서는 VLAN 없이(flat network)를 요구합니다. (mDNS/uPnP 등 멀티캐스트 기반 자동 발견 때문)
2) Docker 단독 실행
핵심 예시
docker run -v <dir>:/data --network host \
--cap-add=DAC_READ_SEARCH --cap-add=SYS_ADMIN \
--security-opt apparmor:unconfined \
ghcr.io/music-assistant/server
- host network 모드 필수
- 데이터는
/data볼륨에 영구 저장 - SMB/NFS 같은 원격 공유를 컨테이너 내부에서 쓰려면 추가 권한이 필요하다고 설명
docker-compose 예시도 제공되며, network_mode: host, cap_add, security_opt, LOG_LEVEL 환경변수 등이 포함됩니다.
Home Assistant 연동(Integration)과 자동화
Integration 설치 요약
MA ↔ HA 연결은 HA core의 공식 컴포넌트이며, 보통 자동 발견 후 Configure로 진행합니다.
- Settings → Devices & Services → Integrations → + Add Integration → Music Assistant
- 서버 IP/포트(보통 8095) 입력
- 서버 로그 예시로
Starting server on ...:8095형태를 안내
엔티티 & 서비스(자동화에 쓰는 포인트)
Integration은 MA에서 지원하는 플레이어를 HA media_player 엔티티로 만들어 주고, 자동화/스크립트 타겟이 됩니다. 또한, MA 전용 서비스(커스텀 액션) 예시가 문서에 정리되어 있습니다.
music_assistant.play_mediamusic_assistant.play_announcementmusic_assistant.transfer_queuemusic_assistant.searchmusic_assistant.get_librarymusic_assistant.get_queue
자동화 예시(실전 감각용)
“퇴근 알림을 집 전체 스피커로” (Announcement)
service: music_assistant.play_announcement
data:
entity_id: media_player.livingroom
message: "퇴근 시간입니다. 오늘도 수고하셨어요!"
“집 도착 시 플레이리스트 재생”
service: music_assistant.play_media
data:
entity_id: media_player.kitchen
media_id: "playlist:MyArrivalMix"
※ 실제 entity_id, media_id 포맷은 사용 중인 제공자/라이브러리 구성에 따라 달라질 수 있어요.
활용 사례(2.7 기능이 특히 빛나는 시나리오)
가족/공용 환경
- 사용자 프로필로 각자 계정/플레이리스트 분리
- 아이 계정은 특정 스피커 접근 차단 같은 “가정 내 권한관리”
PC/브라우저 중심 사용자
- UI 개편 + Built-in Player(웹에서 바로 재생) 로 탐색/선곡이 쉬워짐
외부(원격) 청취
- 외출 중에도 웹앱으로 집의 MA 서버 음악(예: FLAC)을 스트리밍
- E2EE/P2P를 강조하므로 “개인 음악 감상”에 심리적 장벽이 낮아짐
멀티룸/동기화
- Sendspin으로 “브라우저 + 캐스트 + (향후) 다른 클라이언트” 동기 재생
- 기기별 DSP/메타데이터/아트워크까지 확장 가능한 구조
보안 관점 가이드 점검 포인트
1) “로그인/프로필”이 보안에 미치는 의미
2.7에서 인증/로그인이 들어오면서, 최소한 다음이 가능해집니다.
- “누가” 제어하는지 추적 가능한 구조(가정/조직 모두 유리)
- 사용자별 제공자 계정 분리, 스피커 접근 제한
점검 포인트
- 관리자/일반 사용자 분리(가능하면)
- 스피커 접근 권한을 “기본 허용”이 아니라 필요 최소 허용으로
- SSO(HA 로그인 연동)를 쓴다면 HA 계정 보안(2FA/강한 비밀번호)이 곧 MA 보안임
2) 원격 스트리밍: 위협 모델을 명확히
원격 스트리밍이 P2P + 종단간 암호화라고 설명합니다. 다만, 운영 관점에서는 아래를 같이 보셔야 합니다.
점검 포인트
- 원격 접속용 웹앱 사용 시 계정 탈취(피싱/재사용 비밀번호) 가 가장 큰 리스크
- 외부 노출되는 구성요소(웹서버/포트/리버스프록시)가 있다면 TLS/방화벽/접근제어 필수
- 원격 기능을 안 쓰면 비활성화 옵션이 있는지(또는 외부 접근 경로를 닫을지) 정책으로 결정
3) 네트워크(특히 L2 요구사항)와 보안의 줄다리기
MA는 mDNS/uPnP 멀티캐스트 기반 자동 발견 때문에 같은 L2 네트워크를 강하게 요구합니다. 보안 관점에선 “망분리/VLAN 분리”와 충돌하기 쉬운 지점입니다.
실무적 절충 가이드(권장 방향)
- MA/스피커 전용 가정 내 IoT 존을 만들되, 너무 과격한 분리로 자동발견이 깨지면 운영 난이도↑
- 불가피하게 분리한다면 mDNS 리플렉터 등 우회가 필요할 수 있으나, 문서상 “VLAN 없이”를 전제로 하므로 지원/안정성 이슈 가능성을 감안
4) Docker 실행 시 “권한 과다” 이슈
문서 예시에는 --cap-add=SYS_ADMIN, apparmor:unconfined 같은 강한 권한이 포함됩니다. 이건 편의상(특히 SMB/NFS 마운트 등) 필요할 수 있지만, 컨테이너 격리 관점에서는 리스크가 큽니다.
보안 점검 포인트
- 정말 원격 공유(SMB/NFS)를 컨테이너 내부에서 마운트해야 하는지(대안: 호스트에서 마운트 후 읽기전용 바인드)
- 필요 없다면 capability/보안옵션 최소화
-
/data및 음악 라이브러리 경로는 권한/소유자/백업/암호화(필요 시) 정책을 명확히
한 장으로 끝내는 2.7 체크리스트
기능 확인
- 사용자 프로필/스피커 권한 정책 설계
- 원격 스트리밍 사용 여부 결정(정책/가이드 포함)
- Sendspin(기술 프리뷰) 적용 범위: 테스트 존부터 단계적 확대
운영 확인
- HA Integration 엔티티/서비스 기반 자동화 표준 템플릿 정리
- 네트워크 L2 요구사항 충족 여부(멀티캐스트)
보안 확인
- 계정 보안(SSO면 HA 계정 보안 강화)
- Docker 권한 최소화(특히 SYS_ADMIN/appArmor 완화 여부)
댓글