FIIO JM21のプレイリストをMusicBeeで管理する方法

こんにちは。tukapiyoです。

1/31に発売となったFIIO JM21ですが予約して購入しました。
早速色々と使ってみて、プレイリスト周りが独得な動作をするため、色々と調査をした結果を紹介したいと思います。

もともとSONY NW-A300シリーズを利用していて、MusicBeeを使ってほぼほぼ同じように音楽の転送をしたのですが、プレイリストの扱いがNW-A300シリーズとは大分異なることが分かりました。

JM21のプレイリスト仕様

MusicBeeの話をする前に、私の方で調査した結果判明したFIIO MUSICアプリのプレイリスト仕様について紹介します。

環境

  • 2025/2/1時点
  • ファームウェアバージョン1.0.5

概要

  • FIIO MUSICアプリは、自動的にプレイリストを取り込まない
  • FIIO MUSICアプリが取り込むプレイリストは、特定のディレクトリに保存されたファイルに限られる
  • FIIO MUSICアプリが取り込むプレイリストは、特定のファイル名のファイルに限られる
  • FIIO MUSICアプリのプレイリストは、一括削除できない(?)

私の想像ですが、FIIOのプレイリストの扱い方針として、外部プレイリストの取り込みは積極的に推奨しておらず、あくまでもFIIO MUSICアプリ上で作成したプレイリストのバックアップ等のためにプレイリストインポートの機能が実装されているのでしょう。

過去のFIIO製品のプレイリストに関する記事を参照しても、そういう雰囲気を感じました。

プレイリストの保存場所

ちなみにプレイリストの保存場所は、FIIO MUSICアプリにも表示されますが、以下のディレクトリです。

/storage/emulated/0/Android/data/com.fiio.music/files/playlist

これ、内蔵ストレージです。
つまりmicroSDカードにプレイリストを入れても取り込めないということです。
萎えポイント①です。

このディレクトリですが、Files by Googleアプリでは表示できません。
Android内蔵のファイルアプリを実行する必要があります。
が、JM21の標準ランチャーにはアプリドロワーがないみたいなので、ファイルアプリを起動する方法もページ末尾に紹介するので参考にして下さい。

プレイリストのファイル名

では、上記のディレクトリにプレイリストを置いてみるわけですが、「インポートする曲がない」という謎メッセージが表示されてインポートできないわけです。
(スクショはやり方確立後に撮影してます)

どういうことかというと、FIIO MUSIC上で作成したプレイリストをエクスポートしてみると分かるのですが、プレイリストのファイル名に制約があるようなのです。
例えば、TESTというプレイリストを作成してエクスポートすると、TEST.playlist.m3u8というファイル名で保存されるんですね。

ということでプレイリストのファイル名は、以下の様にしておく必要があります。

プレイリスト名.playlist.m3u8

・・・・・・そんな仕様のDAP見たことねーよ。
ファイル名の末尾に特定の文字列が必要、萎えポイント②です。

NW-A300に戻るか悩む

さて、この2点でJM21放り投げてNW-A300シリーズに戻ろうかとも思ったのですが、あいつはあいつでプレイリストの中身がUTF-8だとダメだとか、動作がモッサリしてるとか、バランス出力が無いとか、問題が・・・あれ些細な問題だな?戻るか?・・・いやまぁ、せっかくJM21買ったししばらく使ってみます。

MusicBeeで音楽とプレイリストを転送・管理する

ということで、JM21でもプレイリストをちゃんと使えるようにしたいわけですが、私は音楽の管理にMusicBeeを使っていて今のところこれを変えるつもりはありません。

良い感じにJM21も管理できるように頑張ってみます。
「microSDにプレイリストを保存して、FIIO MUSICアプリにインポートできるようにする」ことを目標とします。

管理のためにやろうとしていること

  • FIIO MUSICアプリのプレイリスト保存場所を内蔵ストレージからmicroSDにする
    • 今回の説明では、microSD直下のPlaylistsディレクトリを保存場所とします
  • プレイリストのファイル名を一斉に書き換える
  • JM21から取り外したmicroSDを直接PCに接続して行う(JM21にUSBケーブルを挿してMTP転送はしない)
    • MTPと比べると転送速度が段違いに速いです
    • そうしないとプレイリストの中身がJM21で扱える形で転送できません
    • そうしないとファイル名の書き換えを一括でやれません

USBデバッグでコマンドを叩く

「FIIO MUSICアプリのプレイリスト保存場所を内蔵ストレージからmicroSDにする」を実現します。
ちなみにこれはアプリをいじるというのではなく、内蔵ストレージのプレイリスト保存場所をシンボリックリンク(Windowsでいうショートカット)にするというものです。

ちなみにですが、両端がUSB-CのケーブルでJM21とPC(DELL XPS13 9340)を接続すると、JM21側がUSB認識を繰り返す状況になって充電すらできない状況になりました。
USB-A to CケーブルでJM21とデスクトップPCを接続すれば問題ありませんでした。
おま環かもしれませんが参考までに。

USBデバッグの接続方法は割愛しますので、ググるなりChatGPTに聞くなりして下さい。
USBデバッグ接続後、adb shellで以下の様にコマンドを叩くことで内蔵ストレージのplaylistディレクトリを、microSDのPlaylistsディレクトリにシンボリックリンクを貼ることができます。

コマンド中のrmコマンドを実行すると、既にエクスポートしたプレイリストが削除されます。
$ cd /storage/emulated/0/Android/data/com.fiio.music/files
$ rm -rf playlist
$ ln -s /storage/external_sd/Playlists playlist

これで、/storage/emulated/0/Android/data/com.fiio.music/files/playlistを開くとmicroSDのPlaylistsディレクトリの中を参照する様になりました。

MusicBeeの転送設定

上述もしましたが、MusicBeeで音楽やプレイリストを転送するときは、USBケーブルでJM21を接続してMTP転送するのではなく、microSDをJM21から取り出しmicroSDリーダライタなどを使って転送します。

MusicBeeの設定を開き「デバイス」を開きます。
「リムーバブルディスク」を選択して「構成」を開きます。

「設定」メニューを選択して、「プレイリストの格納」の設定項目を表示します。

設定すべき項目としては、「プレイリストのパス」、「保存形式」、「トラックのパスのプリフィックス」の3箇所です。
「トラックのパスのプリフィックス」という設定項目は、JM21をUSB接続した場合には表示されない項目です。
以下の様に設定をします。

設定項目 設定値 備考
プレイリストのパス Playlists\ 初期値
保存形式 M3U8 M3Uでも問題ないかもしれませんが未確認
トラックのパスのプリフィックス /storage/external_sd/
「トラックのパスのプリフィックス」の設定は、FIIO MUSICアプリが音楽ファイルのパスを正確に認識するために設定します。
FIIO MUSICアプリがプレイリストを扱うとき、microSDカードのルートパスではなく、/storage/external_sd/から始まるフルパスを見ていると考えられます。

その他、音楽の転送設定等はお好みでどうぞ。
設定を保存してウィンドウは閉じておきます。

転送後に実行するバッチファイル

前述の設定で音楽やプレイリストをmicroSDへ転送(同期)すれば、はい終わり、とは行かないのが萎えポイントなのですが、最後にプレイリストのファイル名を変えてあげる必要があります。
現在は/Playlists/プレイリスト名.m3u8というファイル名で存在しているのですが、/Playlists/プレイリスト名.playlist.m3u8というファイル名にする必要があります。

ファイルのリネームに関してWindowsは優秀で、簡単に一斉変更できるrenameコマンドがあります。
renameコマンドを実行するバッチファイルを用意して、MusicBeeで同期後にmicroSD中のファイル名を一斉に書き換えてしまいましょう。

以下の様なバッチファイルを用意してみます。バッチファイル名はRenPlaylists.batなどではいかがでしょうか。

D:はmicroSDリーダライタのドライブレターです。環境に合わせて変更してください。
D:
CD D:\Playlists
REN *.m3u8 *.playlist.m3u8

これを実行しやすい場所に置いて、MusicBeeの同期後に実行しましょう。

なおMusicBeeで同期を実行すると、リネーム後のファイル(プレイリスト名.playlist.m3u8)は毎回削除されるので、同期を実行する度にバッチファイルを実行する必要があります。
逆に同期を実行する前に繰り返しバッチファイルを実行してしまうと、ファイル名に.playlistがどんどん付け足されていくので注意です。

FIIO MUSICアプリにプレイリストを取り込む

ここまで下ごしらえをしてあげたうえで、やっとプレイリストを取り込むことができます。
microSDを忘れずにJM21へ挿入したあと、M3Uプレイリストのインポートを実行します。

FIIO MUSICアプリのPlaylists画面を開いて、右上のメニューを選択します。
※モザイク貫通してますね(冒頭のスクショはモザイク設定すらしてない)

メニューから「M3Uプレイリストのインポート」を選択します。

プレイリストインポートしていい?って聞かれるので「OK」

これでインポートが完了します。

この手順、新しくプレイリストを同期するたびに実行する必要があります。
わたしの環境では400個以上プレイリストがあるのですが、初回は結構時間が掛かりました。
2回目以降は10秒とか20秒程度で完了しました。

まとめ

初回は手順が少々面倒ですが、2回目以降はMusicBee同期後のバッチファイル実行と、FIIO MUSICアプリでのプレイリストインポートだけ実行すれば・・・・・・十分面倒ですね。
どうしてDAPはどいつもこいつもプレイリストの扱いが下手くそなんだ。NW-A40シリーズを使ってたときが一番ストレスなく転送できてたぞ。

おまけ:Android標準ファイルアプリの起動方法

ランチャー変えれば良いのですが、変えるのも面倒な人向け(私向け)の手順です。

設定アプリを開いて、「アプリ」を開きます。

私の場合何度も起動しているので、「最近開いたアプリ」に表示されていますが、なければ「アプリをすべて表示」から「ファイル」を起動すればOKです。

おすすめ

4件のフィードバック

  1. MGG より:

    はじめまして。
    直近でJM21を同じく購入してiTunesと格闘の末にこのブログに辿り着いた者です。
    この記事は大変参考になり、大いに助かっています……!

    もし、よろしければ1点だけ上手くいかないことがあり、ご相談させていただけないでしょうか。
    手順のうち、
    >>「設定」メニューを選択して、「プレイリストの格納」の設定項目を表示します。
    の部分で「プレイリストのパス」を手動でDドライブのSDカード内にあるPlaylistsフォルダを選択しても、
    エラーのダイアログが発生し「選択されたフォルダは、デバイス上にある必要があります」と表示されてしまい、
    実際のSDカード内のフォルダにはファイルが生成されない状態です。
    (楽曲の転送は無事にできてました。プレイリストだけが生成されない状態です。)

    自分のWin10端末とJM21では、JM21側でSDカードをフォーマットさせるとAndroidというドライブ名に
    なっていたので、差異があるとしたらそこぐらいなのですが、それ以外の原因が見つからず、
    もし、解決策などに思い当たることがあれば助言いただけないでしょうか。

    • tukapiyo より:

      コメントありがとうございます。JM21、中々難しいですよね。
      設定の中で、格納パス:「D:\」 になってますでしょうか。その場合、プレイリストのパスには、手動で「Playlists\」と入力してあげると良さそうです。参照してフォルダを選択する必要はありません。

      • MGG より:

        tukapiyo 様
         ご返信ありがとうございます! あのあとひたすらいろいろ試してましたが、アドバイスもあり無事に解決できました! 代わりに新しい問題も出てきて、JM21は本当に手強いと感じました……。

         格納パスは合っていたのですが、どうも自分の環境だとデバイス設定で2つ以上(今回は初期ドライブのandroidとFiio JM21)の仮想デバイスを作っておき、その上でDドライブ側のandroidを構成しないとドライブが認識されない状態みたいでした。
         それで、MusicBeeで新しいタブを作って、そこからSDカードにプレイリストの同期をさせてみたのですが、今度はJM21側で読み込む際にJM21側で一度なんでもいいのでプレイリストをエクスポートしてさらにM3Uプレイリストのエクスポートしないとインポートをしてくれないという問題が出てきたりと難儀していました。

         さらに、プレイリストを読み込めたはいいものの、なぜか楽曲が認識されるプレイリストとそうでないプレイリストが点在する状況になって頭を悩ませています……。
         プレイリストを開いてみると、トータル0曲とカウントされてるのに()内の再生時間は正しく認識できている状態なので、何かがおかしい状態なんだと思うんですが原因が見当たらず……本当に難儀ですね。この子……。

         全くの別件ですが、仕方ないのでと思いGoogle PlayからNintendo musicアプリを落としてみたら、なんとそっちからはアプリから一切音が鳴らないバグがありまして使い物にならないということもありました。元はAndroidなんだから平気だろと「タカ」を括ってたらこのザマなので、(ハードは大変良いのでソフト面は全般的に)いずれ改善されてほしいですね……

        • tukapiyo より:

          仮想デバイスを明示的に作成したことがなくて、私の場合SDカードをカードリーダに差し込んだ状態でMusicBee起動すれば自動的にデバイスの一覧に出てくるのでそれを使ってましたね。
          プレイリストを一度エクスポートしないといけないというのは知りませんでした。調査の中でエクスポートをしていたのでうまくいけたのかもしれません。
          プレイリストの中身については、一度インポートすると再度インポートしても更新されないということは経験上分かってまして、プレイリストの更新がある場合はそのプレイリストを削除しなければいけないみたいです。0曲問題と直接関係しないかもしれませんが、一度削除を試してみてはいかがでしょうか。
          仰るとおりソフト面ではやはり詰めが甘いなと思う部分が多く、純正ツールで素直にDAPとして使うのが良さそうだなぁと思っているところです。

コメントを残す

Amazon プライム対象