2012/05/23

Wavecast-01からiTunesへ自動登録

Wavecast本体にiTunesをインストールしてみたが残念ながらホームシェアリングが出来る
状態には出来なかった。しかたないので、録画した動画ファイルを自動的にMac上のiTunes
にコピーするように出来ないかな?
そうすれば、未だ脱獄が出来ないAppleTV(3rdgen)や外出中iPod Touchで視聴できるしっと。


ホームシェアリングで、AppleTVやiPadで視聴するためにiMacでiTunesを動かしている。
iTunesの保存フォルダはNASとして使用しているTimecapsuleになっている。
この状態でどうするか・・・

録画スクリプトの中で最後にNAS上のiTunesフォルダにコピーしてiTunesに登録されれば
目的は果たせるはずだ。

NAS (Timecapsule)をWavecastでマウント
TimecapsuleはSambaでマウント可能なので、smbfsをインストール。
最初からはWavecastには入っていなかった。
$ sudo apt-get install smbfs
マウントする。
$ sudo mkdir /media/nas1
$ sudo mount.smbfs <Timecapsule>:/Data /media/nas1 -o user=<user> pass=<password>
<Timecapsule>はIPアドレスとか/etc/hostsに登録したNASのホスト名とか。
<user>、<password>は、Timecapsuleに設定した共有ディスクのアカウント。
Timecapsuleの場合、「共有ディスクのセキュリティ保護」を「アカウント」にしておかないと上記のようなマウントが出来ない。

これで、いつものiTunes保存フォルダが/media/nas1/iTunes/とかでアクセス出来た。
もちろん、IPアドレスがDHCPで変わってしまわないように固定IPにしておく。

コピー先
何処にコピーすれば良いかだが、iTunesフォルダには、「iTunesに自動的に追加」っていう
フォルダがある。ここにファイルを入れるとiTunes内部に自動登録される仕組みがあるので、ここにコピーすればいい。
ただちょっと困った事に、ファイルコピーが終了する前にiTunesが反応してしまい、コピー途中で登録しようとして失敗してしまうのだ。
この問題を回避するために、NAS上の別の場所に一旦コピーしてから、自動登録フォルダに移動させる事にした。同じボリューム内の移動なら一瞬で終わるから問題は解決。

iMacのスリープ解除
マックではWake on LANのことをWake on Demandって言うらしい。最近のMacOSではWifi接続のマックもリモートでスリープ解除が出来るそうな。ただそのためにはいろんな条件が揃ってないとだめだそうな。AppleTVからiMacのスリープ解除は普通に出来るが、
それ以外だとスクリプトを書いてどうのとか、TimecapsuleやAirMacでどうのとか、
色々大変そうだ。
まあ何だか難しい話はすっ飛ばして、簡単に出来そうな方法を模索する。

sshfsを使う
sshfsとは、ssh経由でリモートマウントが出来てしまう。sambaとかほかのファイルサーバーみたいに面倒な設定をする必要がなく、sshが出来さえすれば使える優れもの。
色々やってみた結果、これが一番簡単っぽい。Wavecastには入ってないので入れる。
$ sudo apt-get install sshfs
$ sudo sshfs <account>@<mac-ip-address>:/users/<account> /media/tmp
ってやると、<account>のパスワードを聞いてくるので入れてやる。
これで/media/tmpにマックの自分のフォルダがマウントされる。マック上に面倒なSamba
設定とかする必要はない。
おっと、言い忘れ。マックにsshで入れるようにするためには、共有設定で
リモートログインを有効にしておく。

とにかく、スリープ状態のマックのボリュームをsshfsでマウントすると、スリープが解除
されるのだ。

vidrecsrc5.sh
そんなこんなで、スクリプト最後に以下のような手順を追加した。
#Transfer
echo <password>|sshfs <account>@imac:/users/<account> /media/tmp -o password_stdin
cp /tmp/$1-s.m4v /media/nas1/iTunes/
mv /media/nas1/iTunes/$1-s.m4v '/media/nas1/iTunes/iTunes に自動的に追加'
fusermount -u /media/tmp
sshfsで-o password_stdinとしているのは、標準入力からパスワードを入力するというオプション。前段のechoでそのパスワードを入れておいてパイプで繋いでおけば、バッチ内で完結する。
ファイルをNASに一旦コピーして、自動登録フォルダに移動させる。
fusermountコマンドでsshfsでマウントしたボリュームをアンマウントする。

cp /tmp/$1-s.m4vと、mp4じゃないあたりは別途記載する予定。
これはこれで難儀な話でして・・・

0 件のコメント:

コメントを投稿