命名って難しい

変数、関数、クラスなどなど実装より命名に毎回悩むタイプの人間による技術や趣味についてのメモ。

Apple Musicのプレイリストを Spotifyにエクスポートした。

ネットでみかけたApple MusicのプレイリストをSpotifyに取り込むため、一部ブックマークレットと外部サービスを使って解決した流れをメモ。

前提

  • Apple Musicを登録していない。
  • Spotifyに登録している。

手順

1. プレイリストをテキスト形式に落とし込む

ブックマークレットを使います。
下記のブックマークレットを使うと今開いているページの曲目リストをテキストにしてダウンロードできます。

テキストの形式は以下。
Playlist Converterの仕様、Spotifyの検索結果の当たりやすさを考慮して、一部オリジナルから変えています。

  • 各行 [{{曲名}} - {{アーティスト名}}]の形式
  • 曲名の末尾につくfeat.系はカッコで閉じられた部分を削除することで除外。
  • アンパサンドを除外

ブックマークレット

javascript:(
    function () {
        const plName = document.querySelector(".product-header__title").innerText;
        const plMadeBy = document.querySelector(".product-header__identity").innerText;
        const csv =[];
        /* [曲名] - [アーティスト] の形式にする。*/
        /* 
          PlaylistConverter(https://www.playlist-converter.net/#/)の成功率を高めるため、下記2点の表現は削除する。
          ・曲名のかっこ書きで追記されるコラボレーションアーティスト(ラップなどでありがちな奴)
          ・アンパサンド
        */
        document.querySelectorAll("li.song-list-row").forEach(e=>{
            csv.push(
                e.querySelector(".tracklist-item__text__headline").innerText.replace(/\(.*\)/,"") + 
                ' - ' +
                e.querySelector(".table__row__link--secondary").innerText.replace(/&/g,"")
            ); 
        });
        /* ダウンロードする */
        const link = document.createElement("a");
        link.setAttribute('href','data:Application/octet-stream,' + encodeURIComponent(csv.join("\n")));
        link.setAttribute('download','am-playlist_' + plName + '-by-' + plMadeBy + ".txt" );
        link.click();
    }
)();

2. Playlist Converter にテキスト形式でデータを読み込ませる

https://www.playlist-converter.net/

  • Plain Text を選び、1.のテキストの中身をコピペする。
  • Convertボタンをクリックする。

f:id:NotShown:20200227184706p:plain
PlaylistConverter01

  • Convert to spotify をクリックする。(APIなどの連携が始まるので連携)

f:id:NotShown:20200227184603p:plain
PlaylistConverter02

  • 各曲を検索してSpotify対応にしてくれる。
  • 検索でヒットしないものは空白になる。
  • そのままプレイリストを作ってもいいし、URLリストを出力してSpotify上で貼り付けするのもよし。

f:id:NotShown:20200227202039p:plain
PlaylistConverter03

他にもApple Musicもアカウントあれば連携してくれるサービスとかあるっぽいんだけど、面倒なのでブックマークレットからのごり押しでの解決となりました。

以上。