アイスクリーマ 様、みなさま:
貴重かつ厳しいコメント、ありがとうございます。
私なりに考えまして、また、お子様ランチ様のコメントを参考に、私が最初に申し上げたiCalに登録する機能を有するAppleScript(テスト用)ができましたので、お知らせいたします。
しかし、現時点ではQuickTimeのオーディオソースが、内蔵入力、ライン入力のままで、soundflowerからの出力が読み込めていない状況で、録音まで実現できておりません。iMacのシステム環境設定-サウンド設定では、入力、出力ともにSoundflower(2ch)に切り替わっておるにもかかわらず、QuickTimeProの設定が切り替わっていない点が理解できておりません。また、この問題が、私固有の問題なのか、ちがうのかもわからない状況です。
もし、お手数でなければ、みなさまにテストしていただきフィードバックしていただければ幸いです。よろしくお願いいたします。おそらく、QuickTimePro 7であれば、録音できるかどうかはともかく、どの環境(スクリプトの内容をご覧になって、みなさまの環境に合わせて変更が必要ですが)でも動作可能かと思います。このスクリプトは、とりあえず1分間の録音と、出力先がiTunesでなく、テスト用フォルダになっておる点が最終ゴールと違います。これで録音可能とわかれば、時間延長やiTunesへの登録は、コメントアウトした1行を変えるだけで実現できます。テストに時間はかかりませんので、是非、ご検討の程、よろしくお願いいたします。
-- /users/username/Library/Scripts/Applications/QuickTime Player/ABC JAZZ QT record 1min.scpt
-- Apple Script for net-stream-radio recording using QuickTime
-- (c) 2011 kimukazu@pastel.ocn.ne.jp
--テスト版
property username : "username" --みなさまの環境に合わせて変更ねがいます
property rec_time : 1 ----録音時間(min)
on run
--プレイリストファイル名の設定
--.m3uファイルは、デスクトップのm3uフォルダ内に置く
set url_file to ":Users:" & username & ":Desktop:m3u:abc-jazz.m3u" as string
tell application "QuickTime Player"
activate
if (document 1 exists) then close document 1 --初回起動時の画面処理
open url_file --open net stream radio
play document 1 --再生開始
delay 3 --音声出力までの待ち時間
set tgt_file to "QT" & my getTimeStamp() & ".mov" as string --録音ファイル名
new audio recording --録音開始
start document 2
delay rec_time * 60
stop document 2 --録音停止
close document 2
stop document 1 --再生停止
close document 1
end tell
set original_name to ":Users:" & username & ":Desktop:オーディオ.mov" as alias
tell application "Finder"
set name of original_name to tgt_file --ファイル名を変更する
--テスト時の出力フォルダは、ミュージックフォルダ内のQuickTime dataフォルダ(注):本スクリプト実行前にこのフォルダを作成してください
move file tgt_file of (path to desktop folder) to folder "QuickTime data" of (path to music folder) with replacing --ファイルの移動 for test
-- move file tgt_file of (path to desktop folder) to folder "iTunes:iTunes Music:iTunes に自動的に追加" of (path to music folder) with replacing --iTunesライブラリへのファイルの移動
end tell
end run
-- 日時の取得 yyyymmddmmss
on getTimeStamp()
set localdate to (current date)
set y to year of localdate as number
set m to month of localdate as number
set d to day of localdate as number
set h to hours of localdate as number
set mi to minutes of localdate as number
set ss to seconds of localdate as number
if m < 10 then set m to "0" & m
if d < 10 then set d to "0" & d
if h < 10 then set h to "0" & h
if mi < 10 then set mi to "0" & mi
if ss < 10 then set ss to "0" & ss
set msg to y & m & d & h & mi & ss
return msg as string
end getTimeStamp
-- Mac OS X 10.4.11, Tiger
参考
--abc-jazz.m3u
--以下の1行のテキストファイル
http://listen.radionomy.com/abc-jazz
以上です。よろしくお願いいたします。