Help us understand the problem. What is going on with this article?

RaspberryPiをSpotifyサーバにしてWebブラウザからコントロールする

More than 3 years have passed since last update.

前置き

手元にRaspberryPiがあって、Spotifyのアカウントが取れたので。

spotify-clientのインストール?

Spotify for Linux を参照してみると、debianパッケージが公開されているらしい

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys BBEBDCB318AD50EC6865090613B00F1FD2C19886
Executing: /tmp/tmp.XGHd70qrvM/gpg.1.sh --keyserver
hkp://keyserver.ubuntu.com:80
--recv-keys
BBEBDCB318AD50EC6865090613B00F1FD2C19886
gpg: requesting key D2C19886 from hkp server keyserver.ubuntu.com
gpg: key D2C19886: public key "Spotify Public Repository Signing Key <operations@spotify.com>" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)
$ echo deb http://repository.spotify.com stable non-free | sudo tee /etc/apt/sources.list.d/spotify.list
deb http://repository.spotify.com stable non-free
$ apt-get update
Reading package lists... Done
.....
N: Skipping acquire of configured file 'non-free/binary-armhf/Packages' as repository 'http://repository.spotify.com stable InRelease' doesn't support architecture 'armhf'

試してみると、どうやらRaspberryPiをサポートしていないらしい。まぁ、自分でビルドすりゃいいんだろうけど、いろいろと検索してみたら、Mopidyというのがあるらしいのでそちらをインストールしてみる。

Mopidyのインストール

Debian/Ubuntu: Install from apt.mopidy.comを参照して、aptのリストに追加後インストール。

$ wget -q -O - https://apt.mopidy.com/mopidy.gpg | sudo apt-key add -
$ sudo wget -q -O /etc/apt/sources.list.d/mopidy.list https://apt.mopidy.com/wheezy.list
$ sudo apt-get update
$ sudo apt-get install mopidy
$ sudo apt-get install mopidy-spotify

Spotifyのユーザー&アカウントの設定

どうやらプレミアムのアカウントが必要らしいので、30日間無料にとりあえずサインアップ。
Spotifyにログインしてデバイスのパスワード設定からパスワード設定のためのURLを送ってもらう。

パスワード設定ページでエラーが出るが、設定できているみたいなので configファイルに設定を記述する。

/etc/mopidy/mopidy.conf
[spotify]
enabled = true
username = {USERNAME}
password = {PASSWORD}
bitrate = 320
timeout = 10
cache_dir = $XDG_CACHE_DIR/mopidy/spotify

raspberry pi から音が出ない?

config

configファイルに以下を追加してreboot。

/boot/firmware/config.txt
dtparam=audio=on

aplay でリストに出てくる事を確認。

$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
  Subdevices: 8/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7
card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

音が出ることの確認

以下のコマンドを実行して音が期待通りに出ることを確認。

$ speaker-test -t sine -f 600
$ aplay /usr/share/sounds/alsa/Front_Center.wav 

出力先の設定

アナログ(イヤホンジャック)側への出力

$ amixer cset numid=3 1

HDMI側への出力

$ amixer cset numid=3 2

WebClientのセットアップ

WebClientを port:6680 で起動させることにする。

ポートを開ける

ufwでポートを開ける設定をしておく。

$ sudo ufw allow 6680
$ sudo ufw enable

pipでWebClientをインストール

$ pip install Mopidy-Moped

そのままやると /usr/local/lib/python2.7/dist-packages/mopidy_moped/ 以下に保存されるので、configファイルにコレを設定しておく。

/etc/mopidy/mopidy.conf
[http]
enabled = true
hostname = 192.168.11.11
port = 6680
static_dir = /usr/local/lib/python2.7/dist-packages/mopidy_moped/static/

設定後再起動

$ sudo service mopidy restart

アクセスする

http://localhost:6680 に手元のMacからアクセスして、RaspberryPiに接続したスピーカーから音が流れる事が確認できました。

スクリーンショット 2016-10-09 18.20.59.png

参照

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした