Automatorのエラー

 こんにちは。

 初めての投稿で不慣れですが、質問をさせてください。


 Automatorを使って複数のオーディオファイルをMP3に変換し、既存のプレイリストに保存したいのですがうまくいきません。

変換したいオーディオファイルはMP2形式の2時間尺のものです。

アクション“オーディオファイルを読み込む”でエラーが起きました: “操作を完了できませんでした。(OSStatusエラー-1712)”


実行中に上記のように表示され、MP3変換まではできていますが、プレイリストに追加されません。

試しにWAV形式で一つあたり3分程度のオーディオファイルで10曲一括でやってみたところ、MP3変換もプレイリストへの追加も問題なく行われました。

読み込むファイルがMP2であることか、長尺であることが障害になっているのでしょうか?


*Automatorに指示している内容*


「指定されたFinder項目を取得」

  ↓

「オーディオファイルを読み込む」( iTunes)

方法:MP3エンコーダ

※その他チェックは無し

  ↓

「プレイリストに曲を追加」( iTunes)

既存のプレイリスト  <追加したいプレイリストの名前>

※その他チェックは無し


Mac OS:High Sierra10.13.2

iTunes:12.7.3.46

Automator:バージョン2.8 (444.4)


いつも大量にこの操作を繰り返す必要があるので、Automatorで一括操作できると非常に助かります。

どなたかお詳しい方いらっしゃいませんでしょうか?

相談させてください。

どうぞよろしくお願いいたします。

MacBook Pro with Retina display, macOS High Sierra (10.13.3), null

投稿日 2018/02/20 01:09

返信
スレッドに付いたマーク ランキングトップの返信

投稿日 2018/02/27 18:14

度々、失礼致します。


iTunes.appの、環境設定…>一般>読み込み設定…、で『読み込み方法:』の項目がMP3エンコーダーになっていれば、MP2のファイルをiTunesライブラリに直接読み込んだ時にファイルはMP3に変換されているのではないかと想像しています。


Automator.appの『オーディオファイルを読み込む』アクションは約1分程度でタイムアウトエラーになり、また、アクションの本体(/System/Library/Automator/Import Audio Files.action)のパッケージの中にある、info.plistで、ImportTimeOutValueInSecondsのキーが3600に設定されていることを考えると、このアクションにはバグがあって、使えなさそうです。


そこで、代わりに『AppleScriptを実行』アクションを使ってみたところ、狙い通りに処理を完了することができました(下図)。 Playlistへの追加もAppleScript内で処理した方がエラーにならなかったです。


ユーザがアップロードしたファイル


アクションに入力するステートメンツは以下の通りです。 プレイリストの名前をお使いのものに変更して下さい。 タイムアウトの時間も適切なものに変更して下さい。


tell application "iTunes"

with timeout of (300 * (length of input)) seconds # 一曲につき5分のタイムアウトを設定

set aTrackList to convertinput

end timeout

repeat with thisTrack in aTrackList


duplicatethisTracktoplaylist "Temp" # プレイリストの名前を入力

end repeat

end tell


最初のアクション『指定されたFinder項目を取得』では、項目を入力したり、削除したりする手作業が必要です。 この操作は、ワークフローをサービスに変換することで省くことができ、Finder.appからファイルを選択した状態で、サービスメニューから直接ワークフローを実行できるので便利ですよ(下図)。


ユーザがアップロードしたファイル


ライブラリに読み込んだ元のファイルをゴミ箱に移す操作を自動で行う場合は、上記のステートメンツの下に、


tellapplication "Finder" tomoveinputtotrash


を追加しておきます。

返信: 18

2018/02/22 22:42 tomo86 への返信

AppleEventのデフォルトのタイムアウトは2分のようです。このぐらいのタイミングでエラーが表示されていませんか?


When a command fails to complete in the allotted time (whether the default of two minutes, or a time set by a with timeout statement), AppleScript stops running the script and returns the error "event timed out".

https://developer.apple.com/library/content/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_con…


Automaterではタイムアウトを設定する箇所は見当たらないのですが、AppleScriptでは指定できるようです。

ユーザがアップロードしたファイル

> ちなみに、最初に自分が設定した状態でMP2から読み込んでもファイル1つ(2時間分)であれば

> エラーなく指示通りの結果になりました。


ということは、ファイルを一個ずつ行えば問題ないということでしょうか?


> シェルスクリプトを使えばタイムアウトエラーが改善される可能性はあるのでしょうか?


ShellScriptは、AppleEventとは関わりがないのでAppleEventのタイムアウトの制約は受けません。


私は、2時間超えのファイルを持っていないので、試しに、ShellScriptのルーチンを加え、擬似的に2分間のスリープを加えてみましたがタイムアウトは起こりませんでした。参考までに。

ユーザがアップロードしたファイル

ところで、AutomatorでRunすれば、上記のように✅マークが付くわけで、どこで失敗してるか分かる筈です。こうした情報を開示していただければあれこれ考えずに済むのですが...

2018/02/28 02:27 tomo86 への返信

tomo86 様、


うまく動いたようで、良かったです。 上記のAppleScriptではプレイリストの名前を直接入力していますが、Prompting for a Choice from a Listのコマンドを使うことで、実行時にリストから選択することもできます。 また、Displaying Notificationsや、Displaying Progressのコマンドを組み入れることで、処理の終了を通知したり、進行度を表示させることもできそうです。


Automator.appでは、AppleScriptの他にJavaScriptやShellScriptを実行するアクションがあります。 さらに、Objective-Cのクラスやコマンドも一部ですが利用できます。 それらを組み合わせることで、様々な処理を実行できるので便利です。

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

Automatorのエラー

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。