はじめに
こんにちは、ライターです。
iPhoneの「ショートカット」アプリを使って、自動的にプレイリストを作成しようとしたのですが、単純に該当する機能を使おうとしてもうまくいきませんでした。
色々試行錯誤した結果、うまく使える方法を見つけたので、ご紹介したいと思います。
ショートカットを用いたApple Musicのプレイリストの作成方法
起こっている問題
ショートカットアプリで、「ミュージック」の項目(アクション)には、「ミュージックを検索」や「プレイリストを作成」というアクションがあります。(「ショートカット」アプリでは機能項目の1つ1つを「アクション」と呼んでいます)
ですので、通常であれば、「ミュージックを検索」アクションを用いて検索された曲を、「プレイリストを作成」アクションに渡してあげれば、うまく作れるはずです。
しかし、私の環境では、指定した名前のプレイリストはできるのですが、空になってしまうという問題がありました。
Appleのサポートコミュニティにも同様の問題があり、おそらくバグではないかなと疑っています。
そこで、色々試行錯誤して、私なりにうまくいく方法を見つけたのでご紹介します。
見つけた解決策
結論からすると、以下のスクリーンショットのようにします。
なお、この雛形は下のボタンか、こちらからも追加できるので、お急ぎの方は使ってください。
ショートカットの追加ができない場合は、下の、「補足:ショートカットを追加できないとき」を参考にしてください。
なお、使うときは、一番上の「テキスト」に、プレイリストの任意の名前を設定してください。
(「ショートカット」アプリの機能で、ショートカットのタイトルを、日時などその都度生成させることもできます。)
簡単な説明
前提
まず大前提として、プレイリストに追加する曲を指定する方法ですが、「ミュージック」の「ミュージックを検索」アクションを使用することで、ライブラリに追加した曲から、音楽を絞り込んで指定することができます。
逆にいうと、ライブラリに追加していない曲は指定できないので、おすすめなのは、特定のプレイリストをライブラリに追加して、その中から条件に合った曲を抽出する方法です。
この方法を使うには、「応用」を参考にしてみてください。
本題
その上で、「指定した曲を使ってプレイリストを作成することができない」という問題があり、この解決策が今回の本題です。
その解決策とは、簡単にいうと、
「プレイリストの名前を指定して、空の状態で作成させた後、5秒待機させて、その後、作成したプレイリストに曲を追加する」
というものです。
サポートコミュニティでも指摘されていますが、「プレイリストに曲を追加」という、「もともと存在してあるプレイリストに曲を追加する」という機能はうまく動作することがわかりました。また、「プレイリストを作成」機能を使うと、空ながらも指定した名前でプレイリストを作ってはくれるので、この2つを組み合わせることにしました。
「プレイリストに曲を追加」機能では、追加する先を選ぶときに、既存のプレイリストを選ぶ項目になりますが、ショートカット内に「テキスト」などの変数があれば、「>変数…」という項目から、変数を選ぶことができるようになります。
さらに、これだけでは不十分で、この状態で実行しても、空のプレイリストが作成されているだけです。
試行錯誤した結果、単純に、おそらくショートカット内で内部的にプレイリストを作るAPIを叩いているのだと思いますが、それにタイムラグがあるので、ショートカット機能「スクリプティング」の「待機」から、一定時間待機させて、APIがきちんとプレイリストが作成するのを待ってあげます。
ここまでお膳立てしてあげると、「テキスト」変数でプレイリスト名を指定してあげれば、直前に「プレイリストを作成」機能で新たに作成したプレイリストと同じプレイリストに、曲を追加できることを確認しました。
補足:ショートカットを追加できないとき
ショートカットを追加する時にエラーが発生する場合には「設定」アプリ→「ショートカット」より「信頼されていないショートカットを許可」をオンにしてください。
応用
プレイリストの中から条件に合った曲を抽出して指定したい場合
プレイリストの中から条件に合った曲を抽出して指定したい場合は、「ミュージック」の「プレイリストを取得」アクションと「ミュージックを検索」アクションを組み合わせます。
「プレイリストを取得」アクションで取得したプレイリストの中から、条件に合う曲を検索するようにします。
プレイリストに追加する曲を選ばせる方法については、これ以外にも、アイデア次第で、いろいろと応用例は広がるかなと思います。
まとめ
「ショートカット」は便利なアプリなのですが、iOSのバージョンアップなどのタイミングで、バグが起きることが多いような気がしています。
おそらくiOSアップデートに伴う内部的なAPI更新に対する対応や検証が間に合ってないのではないかなという気がします。(個人的な感想です)
個人的には非常に複雑なアプリだと思うので仕方のない部分もあるかもだけど、Appleには頑張って欲しいなとも思います。
この記事が何かの役に立てば嬉しいです。