(Mac, 맥) spotify-tui / spotifyd 터미널에서 스포티파이 듣기

spotify-tui에서 노래를 재생한 화면이다
투박한데 마음에 든다


최근에 노트북에서 spotify-tui, spotifyd를 사용하기 시작했다.

사용하게 된 이유
- 첫 번째 : spotify 공식 플레이어가 자꾸 재생이 멈춘다. (잠깐 끊기면 참겠는데 막 30초씩 안됨)
- 두 번째 : 사용하는 웹 브라우저를 크롬에서 사파리로 바꿨다.
공식 플레이어는 웹 플레이어라서 크롬이 무조건 같이 켜져 있어야 하는데, 쓸데 없는 배터리 소모를 줄이고 싶었다.

spotify-tui 설치


spotify-tui는, 터미널 환경에서 spotify를 조작할 수 있게 해주는 프로그램이다.
프로그램 자체는 터미널 상에서의 ui를 제공해주는게 전부여서, 재생할 기기를 연결해야 한다.

brew install spotify-tui


터미널에서 위 명령어를 통해 spotify-tui를 우선 다운받도록 하자. Homebrew가 설치되어 있지 않다면 Homebrew 를 먼저 설치하면 된다.

설치가 되었다면, spotify dashboard 에 들어가서

spotify dashboard 에 들어간 화면


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

spotify-tui edit settings 화면


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

spotify dashboard 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 깃허브에 나와 같은 불편함으로 이슈를 남긴 사람이 있으나 해결된 상태는 아니다.

그래서 야매로, 하지만 생각보다 괜찮은 방법으로 해결했다.

zshrc에서 alias를 설정한 사진
alias설정 후 spt실행 화면


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

spotify-tui, nvim, 터미널 화면을 tmux를 통해 동시에 띄운 화면
하라는 공부는 안하고 이상한 거에 만족하는 중

spotify-tui에서 v키를 누르면
음악 플레이어를 위 사진 오른쪽 아래처럼 노래 소리에 맞춰 움직이는 그래픽 효과로 바꿀 수 있다.
터미널에서 코딩할 때 저렇게 띄워놓으면 뭔가 있어보인다 ㅋㅋㅋㅋ

'이것저것' 카테고리의 다른 글

C.E Cav Empt 카브엠트 정가품 구별법  (0) 2024.03.02