QuickTimeの画面収録機能でYoutubeなどの動画配信を自動で保存するAppleScriptを書いてみました。
AppleScriptを書くのはは初めてで、しかもJXA(Javascript)なので間違っている所があったらご指摘いただければ嬉しいです。
※ちなみにこのスクリプトが有効なのはmacOS HighSierraまでです。
Mojaveからは画面収録の仕様が変わり、動きません。
※全画面表示のショートカットが「F」キーであることが多いので「F」としましたが、
サイトによって適宜変更してください。
##やりたかったこと
1.Cromeで動画配信サイトを表示
2.QTの画面収録で録画
3.自動で保存
4.自動でchromeとQTを終了
5.上記を日時を指定して実行
//chromeで配信動画を全画面再生、QuickTimeで画面収録する
var myLink = "https://www.youtube.com/watch?v=5qap5aO4i9A";//開きたいURL
var myPath = "/Users/ユーザー名/Desktop/movie.mov";//保存したいディレクトリ
var Rectime = 3 ;//録画時間を秒で指定1時間なら3600
var chrome = Application("Google Chrome");
var win = chrome.Window().make();
var window = chrome.windows[0];
var theTab = window.tabs[0];
theTab.url = myLink;
delay(5);//ちゃんと起動するまで5秒待つ
var se = Application("System Events"); //参照を取得
se.keystroke("f");//全画面にする
delay(3);
var QuickTime = Application("QuickTime Player");//QT起動
var doc = QuickTime.newScreenRecording();//画面収録
doc.start();
delay(3);//録画時間(秒)
doc.close({saving: 'yes', savingIn: Path(myPath)});//保存
QuickTime.quit();
chrome.quit();
日時を指定して実行するにはカレンダー.appを使います。
設定の方法はこちらのサイトを参考にしました。
http://gijutsubu.backstage.jp/?eid=87
その他、注意点としてはchromeの設定で「前回開いていたページを開く」がオンになっていると
次回chromeを起動時に裏でフルスクリーンで動画サイトが開いている状態になります。
その都度閉じればいいだけですが。
##やりたかったけどできなかったこと
・全画面ではなく範囲を指定して録画
・Catalinaでの実装
私の知識ではどうしてもできませんでした。だれか親切な方・・・