はじめに
Music kitを触っていてクソ仕様公式ドキュメントに書いてない仕様がいくつかあったので忘備録代わりに書き残していく。
アートワーク取得するためのURLが独自スキーマ
func url(
width: Int,
height: Int
) -> URL?
上記でアイテムのアートワークを取得できるURLを取得できるがURLのスキーマが
musickit://
とかいう独自スキーマになっていてswift内でのURLSessionじゃないと取得できない。
(React Nativeでアートワークを表示させようとさせたため、Swift側でViewに変換してRNに返す羽目になった)
有効回数一回だけのURLが混じる
上のやり方でアートワークを取得してみたら独自に作成したプレイリストのアートワークだけ最初の一回しかリクエストさせてくれなかった。
musicKit://artwork/transient
上のようなURLになっていて如何にも一回しかリクエストできないURLである。
プレイリストにアートワークを手動で設定した場合は何回でも取得できるURKが返ってきたため、アートワークを設定しない自動生成画像が設定されている場合のみこうなるようだ。
プレイリストだけartworkでnilを返さない
曲やアルバムのアートワークを取得する時、アートワークが設定されていない場合はシンプルにnilを返すが、プレイリストはnilを返さず無色透明の画像データが入ったartworkを返す。