
최근에 노트북에서 spotify-tui, spotifyd를 사용하기 시작했다.
사용하게 된 이유
- 첫 번째 : spotify 공식 플레이어가 자꾸 재생이 멈춘다. (잠깐 끊기면 참겠는데 막 30초씩 안됨)
- 두 번째 : 사용하는 웹 브라우저를 크롬에서 사파리로 바꿨다.
공식 플레이어는 웹 플레이어라서 크롬이 무조건 같이 켜져 있어야 하는데, 쓸데 없는 배터리 소모를 줄이고 싶었다.
spotify-tui 설치
spotify-tui는, 터미널 환경에서 spotify를 조작할 수 있게 해주는 프로그램이다.
프로그램 자체는 터미널 상에서의 ui를 제공해주는게 전부여서, 재생할 기기를 연결해야 한다.
brew install spotify-tui
터미널에서 위 명령어를 통해 spotify-tui를 우선 다운받도록 하자. Homebrew가 설치되어 있지 않다면 Homebrew 를 먼저 설치하면 된다.
설치가 되었다면, spotify dashboard 에 들어가서

사진에 빨간 원으로 표시된 CREATE AN APP 부분을 누르면 여기서 client ID, client secret가 생성된다.
app name과 app description은 자기가 원하는대로 설정하면 된다.

app이 생성되고 나서 EDIT SETTINGS 버튼을 누르면

Redirect URLs 에 http://localhost:8888/callback 을 추가해주고, EDIT SETTINGS 창 맨 아래에 있는 save 버튼을 눌러주면 저장된다.
이제 터미널로 돌아가서, spt 명령어를 통해 spotify-tui를 실행하면 위에서 생성됐던 client ID, client secret을 입력하면 된다.
이후에 기본 포트인 8888로 진행하거나, 다른 포트를 사용하고 싶다면 수정해준다.
그 이후에 스포티파이 웹 사이트가 뜨면 앱 사용 권한을 허용해주면 된다.
공식 깃허브에는 여기까지면 설치 끝!이라고 하는데 spotify-tui의 설치는 끝이 맞지만 아직 노래를 들을 수는 없다.
사실 핸드폰 등 다른 기기에서 스포티파이를 통해 노래를 재생하고, 거기서 나오는 노래의 출력을 spotify-tui 상에서 할 수는 있다.
근데 그러면 너무 불편하잖아요? 다른 기기가 없으면 노래를 못 듣기도 하고.
(참고로 spotify-tui상에서 키보드 d키를 누르면 연결 가능한 기기를 보여준다)
그래서 설치해야 하는 것이 spotifyd이다.
spotifyd 설치
spotifyd는 spotify를 daemon 프로세스로 실행한다. daemon 프로세스는 대충 백그라운드 프로세스라고 생각하면 되는 것 같다.
brew install spotifyd
brew services start spotifyd
Homebrew를 통해서 다운받을 수 있고, Homebrew를 통해 실행하면 된다.
[global]
username = "스포티파이 계정 id"
password = "스포티파이 계정 비밀번호"
backend = "portaudio"
mixer = "pcm"
volume_controller = "softvol"
device_name = "spotify_daemon" # 이건 마음대로 바꿔도 된다
bitrate = 320
cache_path = "/users/사용자명/.config/spotifyd/cache"
volume_normalisation = true
zeroconf_port = 1234
그리고 ~/.config/spotifyd 폴더 내에 spotifyd.conf 파일을 생성한 후 위 내용을 작성하면 된다.
공식 사이트에서 제공해주는 예시는 다른 운영체제 설정도 섞여있고, 오류가 생길 부분이 몇 가지 있어서 위의 설정으로 하는게 편하다.
그리고 노트북의 시스템을 시작할 때 spotifyd가 자동 실행되도록 설정할 수 있다.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>rustlang.spotifyd</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/spotifyd</string>
<string>--config-path=/users/사용자명/.config/spotifyd/spotifyd.conf</string>
<string>--no-daemon</string>
</array>
<key>UserName</key>
<string>사용자명</string>
<key>KeepAlive</key>
<true/>
<key>ThrottleInterval</key>
<integer>30</integer>
</dict>
</plist>
그러기 위해서는 /Library/LaunchDaemons 경로 내에 rustlang.spotifyd.plist 파일을 만들고 위 내용을 작성해주면 된다.
사용자명이라고 표시해둔 부분만 본인의 사용자명으로 바꾸면 된다. (UserName이라고 되어 있는 부분은 그대로 두자)
rustlang.spotifyd.plist파일이 잘 저장되었고,
sudo launchctl load -w /Library/LaunchDaemons/rustlang.spotifyd.plist
sudo launchctl start /Library/LaunchDaemons/rustlang.spotifyd.plist
위의 두 명령어를 실행한다면 이제 맥을 껐다 켜도 자동으로 spotifyd가 실행된다. 어썸!
근데 마지막으로 문제가 있다...
맥을 덮고 잠자기 모드에 들어가거나, 노래를 멈추고 일정 시간이 지나면 spotifyd가 연결이 끊어지는 것 같다.
프로세스 확인해보면 실행중이라고 뜨는데, 막상 spotify-tui에서는 인식을 안 한다.
구글링을 해보니 spotify-tui 깃허브에 나와 같은 불편함으로 이슈를 남긴 사람이 있으나 해결된 상태는 아니다.
그래서 야매로, 하지만 생각보다 괜찮은 방법으로 해결했다.


alias를 통해서 아예 spt명령어를 spotifyd를 재실행하는 명령어까지 같이 실행하도록 바꿔주면 된다.

spotify-tui에서 v키를 누르면
음악 플레이어를 위 사진 오른쪽 아래처럼 노래 소리에 맞춰 움직이는 그래픽 효과로 바꿀 수 있다.
터미널에서 코딩할 때 저렇게 띄워놓으면 뭔가 있어보인다 ㅋㅋㅋㅋ
'이것저것' 카테고리의 다른 글
C.E Cav Empt 카브엠트 정가품 구별법 (0) | 2024.03.02 |
---|