Tower Records Musicがサービス終了してしまうのでSpotifyに乗り換えたのだが、Tower Records Musicでせっせと作ったプレイリストを捨て去るのが悲しかったので救済した話。
世の中には各種アプリのプレイリストを相互変換するサービスがあり、Soundiizもそのひとつ。しかし残念ながらTower Records Musicのプレイリストに対応している相互変換サービスは見つからなかった。また、Tower Records Musicの方にも、プレイリストを他のアプリで読み込めるような形式でエクスポートする機能はない。
ただ、SoundiizはCSV形式の入力が可能で、Spotifyへの出力は当然可能なので、Tower Records MusicプレイリストをなんとかしてCSVに変換できれば救済は可能と見込んだ。
Tower Records Musicにはいい感じのプレイリストエクスポート機能がない。仕方がないのでWeb版Tower Records Musicでプレイリストを表示し、そのHTMLからプレイリスト情報を掘り起こすという手段をとる。整理すると以下の流れ:
- Web版Tower Records Musicでプレイリストを表示
- 「名前を付けて保存」でHTMLファイルを保存
- 自作スクリプトでHTMLを読み込み、CSVに出力
- SoundiizでCSVを読み込みSpotifyにエクスポート
SoundiizのCSVは「曲名,アーティスト名」というごく簡単なものでもOKなので、曲名とアーティスト名を抽出するHTMLパーサを作る。
ここでChatGPT(じゃなくて本当はBing Copilotを使ったが、ここではChatGPTと書くことにする)に働いてもらうことにした。プレイリストを保存したHTMLをChatGPTのプロンプトに貼って、「ここから曲名とアーティスト名を抽出するPythonスクリプトを書いて」とお願い。ただHTMLがプロンプトに貼るには長大すぎたので、最初の数曲の情報が書いてあるあたりまででカットした。それでもChatGPTはちゃんと動くスクリプトを一発で出してくれた。偉いぞChatGPT。
後はVS CodeのGitHub Copilotに頼りつつ仕上げていくと、あっという間に目的のものが出来てしまった。こちらに置いてあります。
実際に動かすと、半分以上の曲はちゃんとSpotify側でも取り込んでくれたが、失敗する曲も多い。昭和の歌謡曲ばかりなこともあって、曲名とアーティスト名だけではマッチングが取れないケースが多いのかな。そこはまぁ、Spotifyのレコメンド機能もあるから、またすぐに立派に育ってくれたので全然OKでした。