프로젝트 소개

Podspine은 오디오북 폴더를 가리키는 소형 자체 호스팅 서버로, 각 책에 고유한 팟캐스트 RSS 피드를 제공하며 각 장이 올바른 순서로 하나의 에피소드로 포함됩니다. Apple Podcasts, Pocket Casts, Overcast, AntennaPod 또는 기타 RSS 기반 팟캐스트 앱에서 피드를 구독할 수 있습니다. 계정, 별도 앱, 내장 플레이어가 없으며 피드 URL만 제공됩니다. README에 설명된 주요 특징: - 장을 에피소드로 순서대로 제공. Podspine은 순차적인 pubDates(가장 오래된 것 = 1장)와 itunes:episode 번호를 생성하며, 자체 점검에 실패하는 피드는 제공을 거부합니다. - 라이브러리를 마운트한 무설정 Docker 실행. - 기본적으로 재인코딩 없음: 장은 스트림 복사로 추출되며, 전체 파일은 라이브러리에서 직접 제공됩니다. - DRM 없는 입력만 지원하며, 프로젝트는 DRM 우회 도구를 포함하지 않습니다. 배포 옵션에는 Docker(권장), Linux/macOS 및 Windows용 서명된 바이너리 설치 스크립트, 패키지 관리자(Homebrew, Scoop, Nix, cargo binstall), Cargo를 통한 소스 빌드가 포함됩니다. ffmpeg/ffprobe는 Docker 이미지에 번들되어 있으며, 바이너리 설치의 경우 PATH에 있어야 합니다. 라이브러리 경로가 유일한 필수 입력이며, 다른 설정은 CLI 플래그, 환경 변수 또는 TOML 구성 파일로 설정할 수 있습니다. 지원 형식은 두 계층으로 분류됩니다. 1계층은 M4B/M4A(AAC/ALAC), 단일 파일 MP3, 장별 MP3 폴더를 포함하며, 내장 장 또는 파일/트랙 순서를 사용합니다. 2계층은 OGG Vorbis, Opus, FLAC 및 장별 2계층 트랙 폴더를 포함하며, 내장 장, .cue 사이드카(FLAC에 필수) 또는 파일/트랙 순서를 사용합니다. 장 사이드카는 .cue, .ffmeta, 내장 순서로 내장 장보다 우선합니다. Audible .aax/.aaxc/.aa 및 OverDrive .odm과 같은 DRM 보호 파일은 로그 메시지와 함께 건너뜁니다. 저장 동작: 전체 파일 에피소드(MP3 폴더 및 장 없는 단일 파일)는 복사 없이 제자리에서 스트리밍됩니다. 장이 있는 책은 데이터 디렉토리 아래에 오디오를 구체화하며, 기본 "full" 모드는 장별 분할을 유지하여 장이 있는 라이브러리의 총 크기를 약 두 배로 늘리고, "saver" 모드는 제한된 캐시를 유지하고 첫 재생 시 장을 재생성합니다. 선택적 설정에는 PODSPINE_TRANSCODE=aac(비정상 형식을 수집 시 재인코딩) 및 PODSPINE_REMUX_NON_FASTSTART=true(비-faststart MP4 파일을 재인코딩 없이 리먹스)가 포함됩니다. 책별 재정의는 .podspine.toml 파일에 배치할 수 있습니다. 각 책의 피드는 추측 불가능한 기능 URL(/feed/{feed_id}.xml)에 있으며, 에피소드 오디오(HTTP Range), 표지 이미지, 앱별 딥 링크 및 QR 코드가 있는 구독 페이지를 위한 보조 경로가 있습니다. 탐색 UI는 라이브러리를 열거하므로 README는 LAN 또는 프록시 인증 뒤에 유지하고 기능 경로는 노출해도 안전하다고 조언합니다. Prometheus 메트릭은 별도 리스너에서 노출할 수 있습니다. 프로젝트는 Rust(2024 에디션, MSRV 1.88)로 작성되었으며 파이프라인 단계별 크레이트가 있는 워크스페이스입니다. AGPL-3.0-only 라이선스이며 ffmpeg/ffprobe를 별도 프로세스로 호출합니다. 문서는 배포, 팟캐스트 앱 가져오기, 아키텍처, 개발, 기여, 보안 및 변경 로그를 다룹니다.