Navidrome과 Audiobookshelf를 위한 iOS 플레이어 QuietCast 출시: 음악, 오디오북 및 팟캐스트를 하나의 앱에서
요약
QuietCast는 Navidrome과 Audiobookshelf 두 서버의 콘텐츠(음악, 오디오북, 팟캐스트)를 하나의 iOS 앱에서 통합하여 재생할 수 있도록 출시된 플레이어입니다. 이 앱은 끊김 없는 음악 재생, 장별 북마크 기능, 그리고 Apple Watch/CarPlay 등 다양한 플랫폼 지원을 제공합니다. 사용자 데이터 보호에 중점을 두었으며, 서버 주소와 비밀번호는 기기 전용으로 안전하게 저장됩니다.
핵심 포인트
- Navidrome과 Audiobookshelf를 통합한 단일 iOS 플레이어 앱입니다.
- 끊김 없는 재생(Gapless), 장별 북마크 등 고급 기능을 제공합니다.
- Apple Watch, CarPlay 등 다양한 Apple 생태계 기기 지원이 뛰어납니다.
- 사용자 데이터 보안을 최우선으로 설계되어 개인 정보 보호에 강점을 가집니다.
안녕하세요 여러분. 저는 한동안 집에서 Navidrome과 Audiobookshelf를 운영해 왔는데, 이 두 가지 모두를 제대로 재생하면서 Apple Music이나 Spotify처럼 세련된 느낌을 주는 아이폰 앱이 필요했습니다. 그런 것을 찾을 수 없어서 직접 만들게 되었습니다. QuietCast가 현재 App Store에 출시되었습니다. App Store: https://apps.apple.com/gb/app/quietcast-music-audiobooks/id6774639678
기능:
Navidrome의 음악: 앨범, 아티스트, 플레이리스트, 스마트 플레이리스트 및 즐겨찾기
Audiobookshelf의 오디오북 및 팟캐스트: 장(chapter), 시리즈 및 작가별 구성이며, 청취 위치가 서버에 동기화되어 다른 기기에서 이어서 들을 수 있습니다.
두 서버를 한 번에 아우르는 하나의 홈 화면, 라이브러리, 검색 기능
끊김 없는(Gapless) 앨범 재생과 순서 변경, 셔플 및 반복이 가능한 대기열(queue)
장(chapter), 북마크, 취침 타이머, 재생 속도 조절 기능을 갖춘 도서 플레이어
서버에 있는 가사(Lyrics) 지원 및 손실 없는(lossless) 고해상도(hi-res) 파일 표시
잠금 화면(Lock Screen), 제어 센터(Control Centre), AirPlay, CarPlay, Apple Watch 및 Siri 지원("QuietCast에서 트레저 아일랜드를 재생해 줘")
오프라인 청취를 위한 다운로드 기능으로, 휴대폰이 잠겨 있어도 계속 작동합니다.
아홉 개 언어 지원: 영어(English), 아랍어(Arabic), 네덜란드어(Dutch), 프랑스어(French), 독일어(German), 이탈리아어(Italian), 포르투갈어(Portuguese), 스페인어(Spanish) 및 터키어(Turkish)
이것은 플레이어 앱일 뿐입니다. 콘텐츠는 포함되어 있지 않으며, 사용자의 Navidrome 및/또는 Audiobookshelf 서버가 필요합니다. 저는 이 두 프로젝트와 관련이 없습니다. 둘 다 훌륭하니 지원해 주시길 바랍니다.
개인 정보 보호 및 보안:
사용자님은 이 앱에 서버 주소와 비밀번호를 제공하게 되므로, 이 앱이 이를 처리하는 방식은 다음과 같습니다:
계정(accounts) 없음, 분석(analytics) 없음, 충돌 보고기(crash reporter) 없음, 광고(ads) 없음, 타사 코드(third-party code) 없음. Apple 자체 프레임워크만을 사용합니다. 오직 사용자님의 서버와 구매 시 App Store에만 연결됩니다.
비밀번호와 토큰은 iPhone Keychain에 "이 기기 전용(this device only)"으로 저장되므로 iCloud Keychain에 동기화되지 않으며 다른 기기로 복원되지 않습니다. 서버를 제거하면 해당 자격 증명도 삭제됩니다.
모든 곳에서 HTTPS를 사용하지만 예외가 있습니다. 로컬 네트워크의 일반 HTTP 주소는 허용되며, 앱은 해당 방식으로 서버를 추가할 때 경고합니다. 자체 서명 인증서도 지원됩니다. 한 번 승인하면 SHA-256 지문으로 고정(pin)되며, 이 고정 값은 브라우징, 스트리밍 및 백그라운드 다운로드에 적용됩니다. 만약 나중에 인증서가 변경되면, 앱이 조용히 받아들이는 대신 사용자에게 알려줍니다. 자격 증명은 URL 내부에 절대 저장되지 않습니다. 스트림 및 커버 아트 링크는 요청 시점에만 서명됩니다. 네트워크 세션은 일시적이며, 공유 캐시나 쿠키 저장소가 없습니다. 로그인 정보가 전달되는 적이 없습니다. 만약 서버가 요청을 다른 호스트로 리디렉션하면, 로그인이 전송되기 전에 제거됩니다. 로그에는 서버 주소, 파일 경로 또는 제목이 절대 포함되지 않습니다. 오류는 유형과 코드만으로 기록됩니다. 다운로드된 오디오는 iCloud 백업에서 제외됩니다.
Apple에 제출하기 전에 저는 자격 증명 처리에 초점을 맞춘 보안 검토를 수행했으며, 이를 통해 실제 문제를 발견하고 수정했습니다. 예를 들어, 인증서 고정(certificate pinning)이 모든 종류의 요청에 적용되지 않는 문제가 있었습니다. 각 수정 사항에는 수정 전 실패하는 것이 확인된 테스트가 있습니다.
Claude Code로 구축되었습니다: 솔직하게 말씀드리자면, QuietCast는 대부분의 코드를 작성한 Claude Code를 사용하여 구축되었습니다. 저는 방향을 설정하고 결정을 내렸으며, 앱은 제가 직접 소유한 Navidrome 및 Audiobookshelf 서버와 제 장치에서 테스트되었습니다. 여러분 중 일부가 서버 비밀번호를 보유하는 AI가 만든 앱에 대해 경계심을 가질 것이라는 것을 알고 있으며, 그것은 당연합니다. 그래서 백엔드나 타사 코드가 없으며, 위의 보안 작업이 출시 전에 수행되었고, 앱에 1,200개가 넘는 자동화 테스트가 있는 것입니다. 작동 방식에 대한 질문은 환영하며, 제가 할 수 있는 한 최대한 자세히 답변하겠습니다.
QuietCast Pro 구매 이유: 스트리밍은 무료이며 시간 제한이나 광고가 없습니다. 서버를 연결하고 비용을 지불하지 않고 모든 것을 재생할 수 있습니다. QuietCast Pro는 구독이 아닌 일회성 구매입니다.
추가된 기능:
- 무제한 다운로드
- 새로운 팟캐스트 에피소드 자동 다운로드
- CarPlay에서 전체 라이브러리 브라우징
사용자가 구매하기 전에 다운로드가 제대로 작동하는지 확인할 수 있도록 처음 세 번의 다운로드는 무료입니다. 이미 다운로드한 콘텐츠는 절대 잠기지 않습니다: Pro 없이도 재생, 삭제 및 다운로드 재시도가 항상 가능합니다. 대체 왜 요금을 부과해야 할까요? QuietCast는 광고가 없고 추적 기능이 없으며 판매할 데이터가 없기 때문에 일회성 구매만이 수익을 창출하는 유일한 방법입니다. 이 돈은 Apple 개발자 계정과 앱의 지속적인 개발에 사용됩니다.
제가 일회성 가격을 선택한 이유는 저 자신도 다른 사람들과 마찬가지로 구독 서비스에 지쳤기 때문이며, 개인 서버에서 자신의 음악을 스트리밍하는 것을 월별 비용으로 만드는 것은 잘못된 일이라고 느꼈기 때문입니다.
피드백
이 버전은 1.0이므로 다듬어지지 않은 부분이 있을 수 있습니다. 버그 보고 및 기능 요청은 여기 댓글이나 지원 페이지(https://quietlyuseful.co.uk/quietcast/)를 통해 언제든지 환영합니다.
읽어주셔서 감사드리며, Navidrome과 Audiobookshelf 개발자분들 덕분에 이 모든 것이 가능했습니다.
제출자: /u/jeells102 [링크] [댓글]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/SelfHosted (AI filter)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기