Python으로 작성된 qt 기반 음악 다운로더.
개선 사항이나 기능에 대한 아이디어가 있다면 이슈를 생성하거나 디스코드 서버에 참여하여 논의해보세요!
$PATH
에 ffmpeg, python3 및 Git이 설치되어 있고 사용 가능한지 확인하세요. Windows를 사용하는 경우 빌드 프로세스를 시작하기 전에 Microsoft C++ 빌드 도구를 설치하고 컴퓨터를 다시 시작해야 합니다.
repo git clone https://github.com/casualsnek/onthespot
다운로드하거나 복제하세요.
onthespot 디렉토리 cd onthespot
로 이동합니다.
pip install -r requirements.txt
패키지를 설치합니다.
소스 디렉토리 cd src
로 이동
python3 -m onthespot
애플리케이션 실행
요구 사항은 위의 "설치 없이 실행"과 동일합니다.
repo git clone https://github.com/casualsnek/onthespot
다운로드하거나 복제하세요.
onthespot 디렉토리 cd onthespot
로 이동합니다.
패키지 python -m build
빌드
pip install ./dist/*.whl
패키지를 설치합니다.
onthespot_gui
로 애플리케이션 실행
onthespot
onthespot-git과 같은 아치 사용자 저장소(aur)의 아치 리눅스 및 아치 리눅스 기반 배포판에 사용할 수 있습니다.
좋아하는 aur 도우미를 사용하여 onthespot
설치할 수 있습니다.
예: yay 사용
yay -Sy onthespot-git
릴리스 섹션에서 최신 'onthespot_linux'를 다운로드하고 다음으로 실행하십시오.
chmod +x onthespot_linux ./onethespot_linux
Release 섹션에서 최신 'onthespot_win_ffm.exe' 또는 'onthespot_win.exe'를 다운로드한 후, 다운로드한 파일을 더블클릭하여 실행하세요.
파일 이름이 '_ffm'으로 끝나는 바이너리는 ffmpeg 번들로 제공되므로 수동 설치가 필요하지 않습니다.
ffmpeg를 번들로 제공하지 않는 바이너리를 사용 중이고 진행 텍스트 Converting
중 다운로드가 99%에서 멈춘 경우 ffmpeg가 누락된 것입니다! 아래 지침에 따라 설치하십시오.
Windows 탐색기를 열고 C:
Drive로 이동하여 거기에 폴더 이름을 ffmpeg
만듭니다.
https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-full.7z에서 ffmpeg zip을 다운로드한 다음 zip에서 bin
폴더를 C:ffmpeg
로 복사합니다.
관리자로 CMD를 열고 setx /m PATH "C:ffmpegbin;%PATH%"
명령을 실행합니다.
이제 애플리케이션이 예상대로 작동해야 합니다.
모든 OS에서 빌드하거나 패키징하려면 Git, Python3 및 Pip가 설치되어 있어야 합니다. 그것들이 설치되어 있는지 확인하십시오!
터미널 에뮬레이터를 열고 다음 명령을 실행하여 저장소를 복제하고 빌드합니다.
자식 클론 https://github.com/casualsnek/onthespotcd onthespot
ffmpeg 내장형 빌드를 원하는 경우 여기에서 해당 OS용 ffmpeg 바이너리를 다운로드하세요. 저장소 루트 디렉터리에 'ffbin_nix'라는 새 디렉터리를 만듭니다. 다운로드한 아카이브에서 'ffmpeg', 'ffprobe', 'ffplay' 세 개의 파일을 방금 생성된 'ffbin_nix' 디렉토리에 복사한 후 실행합니다.
배시 ./build_linux.sh
명령이 완료되면 빌드된 'onthespot_linux' 바이너리가 포함된 저장소 루트에 'dist' 디렉터리가 있어야 합니다.
cmd를 열고 다음 명령을 실행하여 저장소를 복제하고 빌드합니다.
자식 클론 https://github.com/casualsnek/onthespotcd onthespot
Git이 설치되어 있지 않은 경우 Github에서 프로젝트 소스 zip을 다운로드하여 추출하고 저장소 루트에서 cmd를 열 수도 있습니다. ffmpeg 내장형 빌드를 원하는 경우 여기에서 해당 OS용 ffmpeg 바이너리를 다운로드하세요. 저장소 루트 디렉터리에 'ffbin_win'이라는 새 디렉터리를 만듭니다. 다운로드한 아카이브에서 'ffmpeg.exe', 'ffprobe.exe', 'ffplay.exe' 세 파일을 방금 생성된 'ffbin_win' 디렉터리에 복사한 후 실행합니다.
build_winC1.bat build_winC2.bat
명령이 완료되면 빌드된 'onthespot_win.exe' 바이너리가 포함된 저장소 루트에 'dist' 디렉터리가 있어야 합니다.
참고: 이는 현재 사용 중인 특정 프로세서 아키텍처에 대한 앱만 빌드합니다. 범용 바이너리를 구축하지 않습니다.
터미널 에뮬레이터를 열고 다음 명령을 실행하여 저장소를 복제하고 빌드합니다.
자식 클론 https://github.com/casualsnek/onthespotcd onthespot
ffmpeg 내장형 빌드를 원하는 경우 여기에서 해당 OS용 ffmpeg 바이너리를 다운로드하세요. 저장소 루트 디렉터리에 'ffbin_mac'이라는 새 디렉터리를 만듭니다. 다운로드한 아카이브에서 'ffmpeg', 'ffprobe', 'ffplay' 세 파일을 새로 생성된 'ffbin_mac' 디렉터리에 복사한 후 다음을 실행합니다.
./build_mac.sh
명령이 완료되면 'onthespot_mac.app' 바이너리가 포함된 저장소 루트에 'dist' 디렉터리가 있어야 합니다.
또한 휠로 현장에서 빌드하고 시스템에서 pip를 통해 Python 모듈로 설치할 수도 있습니다. 시스템의 Qt 스타일 및 테마를 사용하는 등 시스템과 더 나은 통합을 제공할 뿐만 아니라 Linux 시스템에서 더 나은 통합을 위해 제공된 아이콘 및 .desktop 파일을 사용할 수 있습니다.
설정 도구가 설치되어 있는지 확인하세요!
터미널 에뮬레이터를 열고 다음 명령을 실행하여 저장소를 복제하고 빌드합니다.
자식 클론 https://github.com/casualsnek/onthespotcd onthespot 파이썬 -m 빌드
이제 pip로 설치할 수 있는 .whl 파일이 포함된 dist 디렉터리가 생성됩니다. 설치 후 onthespot_gui
또는 python3 -m onthespot
명령을 사용하여 애플리케이션을 시작할 수 있습니다!
참고: 배포를 위해 현장에서 패키징하는 경우 src/onthespot/resources/icon.svg
/usr/share/icons/hicolor/scalable/apps/casual_onthespot.svg
또는 $HOME/.local/share/icons/hicolor/scalable/apps/casual_onthespot.svg
에 복사하세요. $HOME/.local/share/icons/hicolor/scalable/apps/casual_onthespot.svg
및 src/onthespot/resources/org.eu.casualsnek.onthespot.desktop
/usr/share/applications/org.eu.casualsnek.onthespot.desktop
또는 $HOME/.local/share/applications/org.eu.casualsnek.onthespot.desktop
. 이를 통해 애플리케이션이 데스크탑 환경에 더 잘 통합될 수 있습니다!
개선/기능에 대한 아이디어가 있다면 이슈를 생성하거나 토론을 위해 디스코드 서버에 참여하세요!
애플리케이션을 처음 실행하면 Spotify 계정이 추가되지 않았다는 경고 메시지가 표시됩니다. 경고를 무시하고 구성 탭 하단에 계정을 추가하세요. 여러 계정을 사용하면 한 번에 여러 곡을 다운로드할 수 있습니다.
'검색' 탭에서 검색어를 입력하고 search
클릭하면 노래/아티스트/앨범/재생목록을 검색할 수 있습니다. 그런 다음 download
버튼을 클릭하여 결과 목록에서 미디어를 다운로드할 수 있습니다. 선택적으로 표 아래에 있는 버튼을 클릭하여 대량 다운로드할 수 있습니다. '트랙' 이외의 미디어 유형은 구문 분석 및 다운로드에 시간이 조금 더 걸릴 수 있습니다. 이 상태에서는 애플리케이션이 정지된 것처럼 보일 수 있습니다!
검색창에 URL을 입력한 후 다운로드를 클릭하세요. URL이 포함된 텍스트 파일의 경로를 입력하면 그 안에 있는 모든 URL이 대기열에 추가됩니다! '트랙' 이외의 미디어 유형은 구문 분석 및 다운로드에 시간이 조금 더 걸릴 수 있습니다. 이 상태에서는 애플리케이션이 정지된 것처럼 보일 수 있습니다!
다운로드 상태 및 진행률은 '진행률' 탭으로 이동하여 확인할 수 있습니다.
최대 다운로드 작업자 : 미디어 다운로드에 사용되는 스레드 수입니다. 추가한 계정 수로 설정하세요. 이 설정을 변경하려면 애플리케이션을 다시 시작해야 합니다.
Parsing Account SN : 계정 테이블에서 사용자 이름 왼쪽에 표시되는 숫자입니다. 번호는 검색 결과 제공 및 다운로드 URL 구문 분석을 담당하는 계정입니다.
다운로드 위치 : 다운로드된 미디어가 저장되는 루트 폴더입니다.
다운로드 지연 : 다운로드 성공 후 다음 다운로드까지 대기하는 시간(초)입니다.
최대 재시도 횟수: 계속 진행하기 전에 다운로드를 재시도하는 횟수입니다.
최대 검색 결과 : 미디어 유형별 검색 결과에 표시되는 항목 수입니다. 예: '1'로 설정하면 아티스트, 앨범, 트랙 및 재생 목록에 대한 하나의 결과가 표시되어 총 4개의 검색 결과가 표시됩니다.
원시 미디어 다운로드 : 설정된 미디어 형식으로 변환하지 않고 파일(.ogg)을 디스크에 다운로드하며, 메타데이터 쓰기 및 썸네일 삽입도 비활성화합니다.
강제 프리미엄 : 프리미엄 계정이 계정 테이블에 무료로 표시되는 경우 이 옵션을 사용하세요. 이는 추가된 모든 계정에 적용되므로 무료 계정과 프리미엄 계정을 함께 사용하는 것은 권장되지 않습니다. 계정이 프리미엄이 아닌 경우에는 사용하지 마세요.
다운로드를 위해 데스크톱 앱 재생 활성화 : 활성화하면 Spotify 데스크톱 애플리케이션에서 재생하는 노래가 자동으로 다운로드됩니다. (지원: 리눅스/윈도우)
고급 구성 표시/숨기기 : 고급 구성 탭을 활성화/비활성화합니다.
설정 저장 : 설정을 저장/적용합니다.
기본 트랙 이름은 AlbumFormatter/TrackName
입니다.
트랙 이름 포맷터 : 이 옵션을 사용하면 다운로드한 트랙의 이름 지정 체계를 설정할 수 있습니다. 변수는 {}
사이에 넣어서 사용할 수 있습니다. 명명 체계에 사용할 수 있는 몇 가지 변수는 다음과 같습니다.
아티스트 : 트랙 아티스트 이름
album : 트랙이 들어 있는 앨범 이름 *
name : 트랙 이름
rel_year : 트랙 출시 연도
disc_number : 트랙이 있는 디스크 번호 *
track_number : 앨범 내 트랙의 일련번호 *
재생목록_이름 : 트랙이 재생목록의 일부로 다운로드되는 경우 재생목록 이름 *
재생목록_소유자: 트랙이 재생목록의 일부로 다운로드되는 경우 재생목록 이름 *
재생 목록_desc : 트랙이 재생 목록의 일부로 다운로드되는 경우 재생 목록에 대한 설명 *
장르 : 노래 장르 *
label : 음반사 이름
명시적: 노래가 명시적으로 표시되어 있으면 'Explicit'이고 그렇지 않으면 비어 있습니다.
trackcount : 이 트랙이 포함된 앨범의 총 트랙 수
disccount : 이 트랙이 포함된 앨범의 총 디스크 수
Spotid : Spotify ID
예: Song: {name} of album: {album} Released in {rel_year}
.
설명이 *로 끝나는 변수의 값은 경우에 따라 비어 있을 수 있습니다. 이 경로도 가능합니다.
앨범 디렉터리 이름 포맷터 : 이 옵션을 사용하면 다운로드한 트랙의 디렉터리 이름 지정 체계를 설정할 수 있습니다. 변수는 {}
사이에 넣어서 사용할 수 있습니다. 명명 체계에 사용할 수 있는 몇 가지 변수는 다음과 같습니다.
아티스트 : 앨범의 메인 아티스트 이름
rel_year: 앨범 발매 연도 *
앨범: 앨범 이름
재생목록_이름 : 트랙이 재생목록의 일부로 다운로드되는 경우 재생목록 이름 *
재생목록_소유자: 트랙이 재생목록의 일부로 다운로드되는 경우 재생목록 이름 *
재생 목록_desc : 트랙이 재생 목록의 일부로 다운로드되는 경우 재생 목록에 대한 설명 *
장르 : 노래 장르 *
label : 음반사 이름
예: {artist}/{rel_year}/{album}
.
설명이 *로 끝나는 변수의 값은 경우에 따라 비어 있을 수 있습니다. 이것도 길이 될 수 있다.
다운로드 청크 크기 : 다운로드에 사용되는 청크(바이트) 크기입니다.
대량 다운로드 알림 비활성화 : 이 기능을 활성화하면 대량 다운로드를 사용할 때 상태에 대한 팝업 대화 상자가 비활성화됩니다.
복구 가능한 다운로드 재시도 지연 : 시도 실패 후 다른 다운로드를 시도하기 전에 기다리는 시간입니다.
끝 부분에서 바이트 건너뛰기(다운로드 끝 바이트 건너뛰기) : 트랙의 마지막 몇 바이트를 다운로드할 수 없는 경우가 있어 'PD 오류'가 발생하여 다운로드가 지속적으로 실패하는 경우가 있습니다. 이 옵션은 이러한 상황이 발생했을 때 다운로드를 건너뛸 바이트 수를 설정합니다. 값은 변경될 수 있지만 현재 작업 값은 '167'바이트입니다. '디코드 오류'가 발생하거나 노래 다운로드가 불완전한 경우 0으로 설정해 보세요.
트랙/재생 목록 항목에 대한 아티스트/앨범 디렉토리 강제 : 이 기능을 비활성화하면 다운로드된 트랙이 아티스트/앨범 디렉토리 대신 다운로드 디렉토리의 루트에 배치됩니다. 이 기능을 활성화하면 다운로드 구문 분석 속도가 느려질 수 있지만 음악 정리가 더 쉬워집니다.
미디어 형식 : 최종 음악 다운로드에 포함할 미디어 형식입니다. '.'는 포함하지 마세요. 그 안에. 원시 미디어 다운로드 옵션을 사용하는 동안 이 설정은 무시됩니다.
디코드 오류: 이 오류가 표시되면 계정이 제한되었을 수 있습니다. 잠시 기다리거나 다른 계정을 사용해 보세요. 아직 적절한 예외 처리가 없기 때문에 애플리케이션이 자주 충돌할 수 있습니다. 애플리케이션이 오작동한 후 콘솔 창에 표시되는 오류 메시지로 새로운 문제를 열어 도움을 줄 수 있습니다.
추가 기능이나 버그 수정을 포함하는 코드를 작성하거나, 버그 및 기능에 관한 문제를 제기하거나, 애플리케이션에 대한 작업을 퍼뜨릴 수 있습니다 :) 재정적으로 후원하고 싶다면 여기를 방문하여 오픈 컬렉티브나 BTC를 통해 지원할 수 있습니다. 프로젝트에 별표를 주어 여러분의 지지를 보여주세요 :) !