SongMirrorをRaspberry Pi 4に構築!Apple MusicとAmazon Musicのプレイリストを無料で同期してみた

音楽配信サービスって、ひとつに絞るのがなかなか難しい。

うちではAmazon Music、Apple Music、YouTube Musicの3つを使っている。

Amazon MusicはWiiMやAlexaとの連携が便利。YouTube MusicはYouTube Premiumに付いてくるので、せっかくだから使っている。そしてApple Musicは、Teslaの車内で音楽を聴くときに使いやすい。

それぞれに使い道があるので、どれかひとつにまとめるのも難しい。

ただ、困るのがプレイリストの管理。

お気に入りの曲を見つけてプレイリストに追加しても、別のサービスでは当然その曲が追加されていない。サービスごとに同じプレイリストを作って、曲を追加して……とやっていると、だんだん面倒になってくる。

音楽を楽しむために使っているのに、いつの間にかプレイリストの管理が面倒で、新しい曲を追加するのが億劫になってくる…

そこで見つけたのが、プレイリストを転送・同期できるオープンソースソフトウェアのSongMirror。

今回はRaspberry Pi 4にSongMirrorを構築して、Apple MusicとAmazon Musicのプレイリストを転送や同期してみた。これは完全無料なのにかなり有用だ!あんまりダウンロード数が伸びていないみたいなので、紹介してみたいと思う。(ユーザー数が増えて、開発もより活発になると嬉しい)

プレイリストの転送サービスは無料だと制限が多い

Apple MusicとAmazon Musicのプレイリストを移行する方法を調べると、SoundiizやTuneMyMusicといったサービスが見つかる。

こうしたサービスを使えば、ひとつずつ曲を検索して追加する必要がない。これは便利。

ただし、無料プランには曲数や利用できる機能などの制限がある。

実際使ってみると、50曲が転送できるプレイリストの上限ですであったり、既存のプレイリストへの追加はできませんとか、絶妙に不便になっていて、思わず有料版へ移行したくなるような良いビジネスをしている。

かといって、有料版にして毎月お金を払うのも、ちょっと悩ましい。

そんなときに見つけたのがSongMirrorだった。

SongMirrorとは?

SongMirrorは、音楽配信サービス間でプレイリストを転送・同期するためのオープンソースソフトウェア。

公式GitHubはこちら。

SongMirror(GitHub)

自分でサーバーを用意して動かす仕組みなので、クラウド型の転送サービスの無料プランに頼らずに使えるのがポイント。Raspberry Piのような小型コンピューターでも、Dockerを使えば構築できる。

もちろん、ソフトウェアを動かすためのサーバーは必要になる。ただ、すでにRaspberry Piを常時稼働させているなら、追加費用を抑えて運用できるのがうれしいところ。

そして、今回いちばん期待していたのがプレイリストの自動同期。

単に一度だけ曲をコピーするのではなく、同期元と同期先のプレイリストを連携させておけば、あとから曲を追加したときにも反映できる。これなら、どのサービスに曲を追加したのか覚えておく必要もなくなる。

Raspberry Pi 4にSongMirrorを構築する

今回は、すでに稼働しているRaspberry Pi 4にDockerを使って構築する。

Dockerが動く環境なら、基本的には公式GitHubの手順に沿って進めればいい。

ただし、GitHubのREADMEや設定ファイルは更新されることがある。以下のコマンドや設定は、実際の環境に合わせて公式の最新手順を確認しながら進めてほしい。

1. 作業用ディレクトリを作成する

今回はSSD上にSongMirror用のディレクトリを作成する。

sudo mkdir -p /mnt/ssd/songmirror
sudo chown "$USER":"$USER" /mnt/ssd/songmirror
cd /mnt/ssd/songmirror

保存先は自分の環境に合わせて変更してOK。Raspberry PiのSDカードではなくSSDを使っているなら、こうしたサービスもSSD側にまとめておくと管理しやすい。

2. SongMirrorを取得する

公式GitHubからソースコードを取得する。

git clone https://github.com/ahnafnafee/songmirror.git .

すでにファイルが入っているディレクトリでは、上のコマンドが使えない場合もある。その場合は空のディレクトリを用意するか、公式READMEに記載された方法で取得しよう。

3. Docker Composeで起動する

公式リポジトリにあるComposeファイルや環境設定を確認して、必要な設定を済ませたら起動する。

docker compose up -d
docker compose ps

docker compose psでコンテナの状態を確認できる。正常に起動していれば、あとはブラウザからSongMirrorの管理画面にアクセスする。

アクセス先のポート番号や環境変数は、リポジトリのバージョンや設定によって異なる可能性があるので、ここは公式READMEとComposeファイルを確認しておこう。

なお、管理画面をインターネットに向けて不用意に公開するのは避けたい。自宅LAN内など、必要な範囲からだけアクセスできるようにしておくのが無難。

Apple MusicとAmazon Musicを連携する

SongMirrorを起動したら、次は音楽配信サービスとの連携。

ここで少しクセがある。サービスによっては、ブラウザでログインした状態から認証に必要な情報を取得する作業が必要になる。

そのため、今回はPCのブラウザを使って作業した。スマホだけで済ませ帯ところだったが、ブラウザに開発者ツールがなくできなかった。

1. Apple Musicを連携する

まずはPCのブラウザでApple Musicを開いてログインする。

次に、ブラウザの開発者ツール(表示→Developer Toolなどにある)を開いてNetworkタブを確認する。通信の一覧から、amp-api.music.apple.comに関連するリクエストを探し、SongMirrorが要求する認証情報を取得する。

開発者ツールを普段使わない人には、ここが最初の難関かもしれない。画面を開いても通信が大量に流れているので、目的のリクエストを探す必要がある。

具体的にどの情報を設定するかは、SongMirrorのバージョンによって変わる可能性がある。公式READMEのApple Music連携手順を確認しながら進める。

構築したSongMirrorにアクセスすると、こういう感じでインストラクションが書かれているが少し不親切な説明かもしれない。

2. Amazon Musicを連携する

Amazon Musicも同じように、PCのブラウザでAmazon Musicにログインしてから、開発者ツールのNetworkタブを確認する。

通信の一覧からAmazon Musicに関連するリクエストを探し、SongMirrorが必要とする認証情報を設定する。

こちらも、ブラウザ上のどの情報を使うかは公式の手順に従うのが確実。

実際にプレイリストを転送してみた

サービスとの連携ができたら、いよいよプレイリストの転送。

今回はApple MusicとAmazon Musicの間でプレイリストを転送してみた。

転送時間は、200曲で約15分。

曲数が多いとそれなりに時間はかかるけれど、ひとつずつ手作業で曲を探して追加することを考えれば、十分実用的。何より、無料でこれだけの曲数を扱えるのがありがたい。

曲数の制限もないようで、ばっちりだ!

自動同期が想像以上に便利

今回、単なるプレイリスト転送以上に便利だと感じたのが、自動同期の機能。

同期を設定しておくと、片方のプレイリストに曲を追加したとき、もう片方にも追加内容が反映された。

これが便利!

たとえば、普段はAmazon Musicで曲を探してプレイリストに追加しているけれど、Teslaに乗るときはApple Musicを使いたい。そんな場合でも、毎回Apple Music側で同じ曲を追加し直す必要がない。

以前なら「この曲、Apple Musicのほうにも追加したっけ?」と確認する必要があった。プレイリストが増えてくると、これが意外と面倒なんだよね。

SongMirrorで同期しておけば、少なくとも今回確認した曲の追加については、両方のサービスで管理する手間を減らせる。

SongMirrorを使って感じたメリットと注意点

メリット

  • 無料で大量の曲を含むプレイリストを転送できる
  • Apple MusicとAmazon Musicの間でプレイリストを移行できる
  • 曲の追加を自動同期できる
  • 自前のサーバーで動かせるため、外部の転送サービスに依存しにくい

注意点

  • 初期構築にはDockerなどの基本的な知識が必要
  • サービスとの連携で、PCのブラウザや開発者ツールを使う場合がある
  • 認証情報の取り扱いには注意が必要

とくに、初期設定のハードルはある。スマホだけで簡単に設定して終わり、というタイプのサービスではない。

とはいえ、一度設定してしまえば、プレイリストを手作業で管理する手間を減らせる。Raspberry Piを普段から動かしている人なら、試してみる価値はあると思う。

まとめ

今回は、Raspberry Pi 4にSongMirrorを構築して、Apple MusicとAmazon Musicのプレイリストを転送・同期してみた。

200曲のプレイリスト転送にかかった時間は約15分。さらに、曲を追加すると同期先にも反映されることを確認できた。

複数の音楽配信サービスを使っていると、プレイリストをそれぞれ管理するのが面倒になりがち。SoundiizやTuneMyMusicなどの無料プランの制限が気になっている人にとって、SongMirrorは選択肢のひとつになるはず。

最初の構築や認証設定には少し手間がかかるものの、一度動かしてしまえば、その後のプレイリスト管理がずいぶん楽になる。

音楽を聴くためのプレイリスト管理に、これ以上時間をかけたくない。そんな人は、SongMirrorを試してみてはいかがだろうか。

コメント