もう一人のY君

主にiPhoneのショートカットアプリのレシピやTipsなどを書いています. たまに数学の記事も書きます.

もう一人のY君 MENU  MENU

【iPhoneショートカット】画像や着信音データを管理するショートカット

f:id:thetheorier:20201001124303p:plain

 引き続き, iOS14で人気となった充電音関連のネタです.

 

 

ショートカット

ショートカット

  • Apple
  • 仕事効率化
  • 無料

※価格は記事執筆時のものです. 現在の価格はApp Storeから確認ください.

 レビュー時のiOSバージョン : iOS14.0.1

 

 

スポンサーリンク

 

 

 

たくさんある中から選びたい

 充電音としてだけでなく色んな場面で使いたい, 状況によって着信音を変えたい…となったとき, それだけ多くの音声データを保存することとなります.

 

 そのときどれが何の音だったかわからなくなる可能性があります.

 

 画像なり音声ファイルなりをただ確認するなら各々のアプリを使えば良い話ですが, 初めから特定の画像やファイルに限定されている場合は最初の準備さえあれば後はこちらの方が簡単になります.

 

 

 

blog.thetheorier.com

 ただし先日紹介した通りでカスタムアイコンの話もあります.

 こちらはBase64ベースで管理できますが着信音関連はどうもエンコードした文字列単体で扱うのは難しいようなので, ファイルアプリからのアクセスで妥協します.

 

 なので

 

  • 既に所有しているBase64データ
  • 「ファイル」アプリにあるコンテンツ

 

それぞれでプレビュー, そして必要なファイル名ないしコードをクリップボードに保存するレシピを作ってみましょう.

 

 

準備

f:id:thetheorier:20201001125104p:plain

 予め, 「ファイル」アプリの"Shortcuts"ファイルの中に画像や着信音を入れるフォルダを作り, その中に画像や着信音を保存しましょう.

 次で紹介する通りで画像についてはBase64コードそのもので扱えますが着信音の方と同じやり方でも可能です.

 iCloudの残り容量とも相談しましょう.

 

 ここから先は各レシピのiCloudを貼った上でフローの説明をしていきますが, いづれも先頭にある「辞書」アクションを好みで編集する必要があります.

 レシピ次第ではダウングレードして起動しただけではエラーになります.

 各々での記述ルールは各フローでの紹介の初めに記述しています.

 

 

レシピ1:Base64コードのみ管理するレシピ

 まずはBase64コードのみを管理, プレビュー, コピーするレシピです.

 

https://www.icloud.com/shortcuts/21787915e48c4ed5bacd70d10860f66f

 

 先頭にある「辞書」アクションのキーに好みの名前を入れ, 対応する値に予め取得したBase64コードを貼り付けて使います.

 

 

  それぞれでフローを紹介しますが面倒なら各々の次の「実行」で簡単な使い方を参照してください.

 

 

フロー

f:id:thetheorier:20201001125051p:plain

 まず「辞書」アクションを追加し, 「テキスト」ベースで「値」の方にBase64コードを追加していきます.

 キーには分かりやすい名前をつけておきます.

 

 

f:id:thetheorier:20201001135456p:plain

 続いて「辞書の値を取得」アクションで辞書からすべてのキーを取り出し, , これを「リストから選択」アクションで選ばせます.

 これで辞書にあるデータ名であるキーを選択できたので, 続いて「辞書の値を取得」アクションで対応するキーの値であるBase64コードも取得します.

 続いて取得したBase64コードを「Base64エンコード」アクションでエンコードし, 「クイックルック」でプレビューします.

 

 

f:id:thetheorier:20201001140114p:plain

 プレビューを終えたら, 対象のBase64コードをクリップボードにコピーさせるか, このショートカット自体をもう一度やり直すか選択させます.

 わざと後者を選択させるのは「やっぱり間違えた」とか「他のにしよう」と思った時などの対応なので必須ではありません.

 

 

実行

f:id:thetheorier:20201001140547p:plain

 実際に起動します.

 最初に辞書のキーに従ってメニュー表示されるので, 各々を選択すると対象の画像がクイックルックでプレビューされます.

 良ければ画面左上の「完了」で抜けます.

 

 

f:id:thetheorier:20201001140741p:plain

 続いて選択したBase64ベースのデータコードをコピーするか, レシピを初めから行うか選択します.

 前者を選択すれば対応するBase64コピーがコピーされ, 後者であればもう一度リスト選択から始まります.

 

 ちなみにショートカット実行中, 特にリストやメニュー表示中にショートカットから抜けるには, 選択のポップアップ以外の場所をタップすれば大丈夫です.

 

 

レシピ2:「ファイル」アプリにあるファイルのみ管理するレシピ

 今度は「ファイル」アプリにあるファイルを同じように管理, プレビュー, コピーします.

 

https://www.icloud.com/shortcuts/a543d41579f64d348b5b13069024d22a

 

 先頭の「辞書」アクションに好きな名前を入れ, 対応する値に「ファイル」アプリ内の"Shortcuts"フォルダにある対象のファイル名を入れます.

 

 ファイル名については, 例えば"Shortcuts"フォルダの中に直接hoge.mp3というファイルがあるならhoge.mp3, また"Shortcuts"フォルダにある"ringtone"というフォルダの中にあるhoge.mp3というファイルを選ぶときはringtone/hoge.mp3となります.

 

 

フロー

f:id:thetheorier:20201001141901p:plain

 先程と同じく, 初めに「辞書」アクションを追加して「キー」に好きな名前を, 「値」に対象ファイルのファイル名を入力します.

 今回は予め"Shortcuts"フォルダの中に"ringtone"というフォルダを作成し, その中に着信音のファイルを保存しているため, 値に入れる文字は"ringtone/~.mp3"の形をしています.

 

 

f:id:thetheorier:20201001142424p:plain

 一度だけフローの話から逸れますが, ファイル名は「ファイル」アプリから対象のファイルを長押しした「情報」をタップし, 「開く」の上にあるファイル名を長押しして「コピー」をタップすることで得られます.

 

 但しここでコピーされたものは「ファイル名+拡張子」の組のみとなります.

 "Shortcuts"のどれだけ下層にあるフォルダの中であってもコピーされるのはファイル名だけなので注意が必要です..

 

 ともかく, これを辞書の各々の「値」に貼り付けます.

 

 

f:id:thetheorier:20201001143422p:plain

 フローに戻ります.

 先の例と同じく, 辞書にあるすべてのキーを取得し, 「リストから選択」で一つを選ばせ, そのキーに対応する値を取得します.

 上記の「値」は「ファイル」アプリの"Shortcuts"より先のファイル名, もしくは"Shortcuts"より先のディレクトリを含むファイル名になっているはずです(辞書を作る際に指摘したことです).

 なので「ファイルを取得」アクションを追加し, 「書類ピッカーを表示」をオフにして表示された「ファイルパス」の部分に上記の「辞書の値」を変数指定します.

 これを「クイックルック」でプレビューします.

 

※今回は画像と着信音で分けていますが, 画像についても「ファイル」アプリで管理することでこちらと同様に行えます.

 

 

f:id:thetheorier:20201001145142p:plain

 後は先程の例と同じで, (こちらの場合は)ファイル名をクリップボードにコピーさせるか, もう一度選び直すかを選択させます.

 

 

実行

f:id:thetheorier:20201001145315p:plain

 実際に起動させてみると, 選択肢から一つ選ぶとクイックルックで音声の再生が可能です.

 

 

f:id:thetheorier:20201001145442p:plain

 その後「ファイル名をコピー」を選べば, "Shortcuts"より後ろのファイル名をコピーすることができます.

 

 例の充電音を変更する際, このままそちらのレシピに移動して貼り付ければ良いわけですね.

 

 

例3(応用):双方を兼ねたレシピ(カテゴリ分けされたレシピ)

 最後は先2つを両方とも一つのレシピに実装します.

 

https://www.icloud.com/shortcuts/50854d5d858e4b749c3e6b8fd9f299d3

 

 

 「辞書」アクションの階層を増やし, 最初に画像か着信音かを選択させ, それぞれに応じて先と同じことを行います.

 

 更に応用すればカテゴリ分けして使うことも当然可能です.

 ちなみに「辞書」アクションの階層は合計3階までです, まあやりすぎるとフローがややこしくなるだけですから普通はやっても2階で十分ですね…

 

 

フロー

f:id:thetheorier:20201001150328p:plain

 まずは何はともあれ「辞書」アクションからです.

 「新規項目を追加」をタップして「辞書」を選ぶことで一つ下の階層で辞書が作れます.

 

 

f:id:thetheorier:20201001150507p:plain

 それぞれの項目をタップし, その中にある「新規項目を追加」で「テキスト」を選択し, それぞれのキーと値に名前や対応するBase64コードまたは「ファイル」アプリ内のファイル名を入力します.

 後述するフローによって, よほど出ない限り対応可能になっているので, 今回はBase64コードと着信音用の1つずつになっていますが好きに書き換えて大丈夫です.

 

 

f:id:thetheorier:20201001151539p:plain

 上記の辞書をもとに, 必要な情報を取り出します.

 今回は上位の辞書と下層の辞書があるため便宜上それぞれ"MainDict"と"SubDict"という名前を付けています.

 まずMainDictにあるすべてのキー, つまり「カテゴリ」を選択させます.

 選択したキーの値は下層辞書になっていますから, この値から辞書を取得し, "SubDict"とします.

 これで前述と同様の辞書を得たので, 前回前々回と同じようにSubDict内のすべてのキーから選択→対応する値を取得…と進めていきます.

 

 こうして得た最後の値は, Base64コードであれば大量の文字列であり, また「ファイル」アプリからの扱いを想定すればよほどでない限り100文字で済むでしょう.

 各々によってこの後の処理が異なりますからここでその値の文字数を取得しておき, この多寡を利用して場合分けします.

 

 

f:id:thetheorier:20201001152245p:plain

 というわけで先程カウントした文字数とif文で場合分けします.

 画像では念の為1000で分けていますが200とかでも良いかもしれませんね…ちょっとこの辺は皆さんにおまかせします.

 もし文字数が指定数より多ければ, それはBase64コードの方であるとみなしてよいでしょう

 なのでこちらの場合はBase64デコード→クイックルック→コピー用にコードを共有の変数名で取得(今回は"data")…とします.

 

 逆にこの指定数より小さければ, それは「ファイル」アプリで指定したファイル名を使う方とみなして良いでしょう.

 なのでこちらは「ファイルを取得」→クイックルック→コピー用にコードを共有の変数名で取得…とします.

 

 

f:id:thetheorier:20201001152900p:plain

 最後に, 最終的に得たBase64コードまたはファイ名が入った変数dataをクリップボードにコピーするか, 再び選び直すかを「メニューから選択」で選ばせて終了します.

 

 

実行

f:id:thetheorier:20201001153237p:plain

 実際に実行すると, カテゴリ→コンテンツ名の順で選ぶこととなります.

 

 

f:id:thetheorier:20201001153539p:plain

 その後は先の例と同じ用にプレビューを経てコピーするか選び直すかを選択します. 

 

 

 今回は例の充電音変更やカスタムアイコンを想定した管理レシピになっていますが, 一部を端折れば違った形での画像アルバムとしても使えるわけです.

 

 よく使うコンテンツのBase64コードないしファイル名を階層辞書に入れておき, 必要な時にすぐに取り出せる…と考えればこれも一つのランチャーですね.