프로젝트 소개

Freyr는 스트리밍 서비스에서 음악 트랙을 다운로드하는 명령줄 도구입니다. Spotify, Apple Music 또는 Deezer의 URL이나 짧은 URI를 입력하면 트랙 메타데이터(제목, 아티스트, 앨범, 트랙/디스크 번호, 발매일, ISRC, 레이블, 저작권, 커버 아트 등)를 추출한 뒤 YouTube Music과 같은 오디오 소스를 조회해 일치하는 오디오를 찾고, 원본 파일을 다운로드하여 설정 가능한 비트레이트(96–320kbps, 기본 320k)로 Apple AAC(.m4a)로 인코딩하고, 메타데이터와 앨범 아트를 삽입한 다음 출력을 ARTIST/ALBUM/TRACK 디렉터리 구조로 정리합니다. 지원되는 쿼리 유형에는 트랙, 앨범, 아티스트, 플레이리스트가 있습니다. 여러 쿼리를 인수로 전달하거나 입력 파일(-i/--input)을 통해 일괄 다운로드할 수 있으며, 입력 파일에서는 각 줄이 쿼리이고 #은 주석을 나타냅니다. urify 하위 명령은 서비스 URL과 freyr 호환 짧은 URI 간 변환을 수행합니다. 주요 옵션으로는 비트레이트 선택, 동시 청크 다운로드(-n/--chunks), 재시도 횟수, 사용자 지정 출력 디렉터리, 기존 트랙이 있는지 다른 디렉터리 확인(-D), 커버 아트 이름 지정과 크기 또는 비활성화, 소스 우선순위 지정(youtube, yt_music, 제외하려면 ! 사용), 메타데이터 필터, 단계별 동시성 조정(queries, tracks, trackStage, downloader, encoder, embedder), 갭리스 재생 플래그, 강제 덮어쓰기, 플레이리스트 생성(m3u8)과 디렉터리, 추가, 이스케이프, 네임스페이스 접두사 옵션, 스토어프론트 국가 코드, 트리 구성 비활성화, 캐시 디렉터리 제어, 메모리 캐시 크기, 네트워크 타임아웃, 인증 및 브라우저 실행 토글, 진행 표시줄 스타일, 명시적 AtomicParsley 바이너리 경로가 있습니다. 설치는 npm(npm install -g freyr) 또는 Yarn, 소스에서, 또는 공식 Docker 이미지(freyrcli/freyrjs)를 통해 가능하며 docker run 명령과 별칭 예시가 문서화되어 있습니다. 요구 사항에는 Python >= 3.2, Node.js >= 16, AtomicParsley >= 20230114가 포함됩니다. README는 원본 오디오를 YouTube Music에서 가져오므로 해당 서비스가 사용자 지역에서 제공되어야 한다고 명시합니다. 이 프로젝트는 라이선스가 있으며 CI 검사, CodeFactor 등급, npm 및 Docker 다운로드 배지, 기부 링크를 포함합니다.