2015年02月13日
iTunes の NAS 共有時の問題点と対策
こんにちわ、もんじです。
本日は iTunes の話題です。
みなさんはどんな風に iTunes を使っていますか?
私は、家族全員で iTunes をNASで共有して使っています。
最近は大容量のNAS でも簡単に導入することが出来るようになっていますね。
私は リンクステーション を RAID-5 で運用していますが、当時の価格は20万近くしました・・・。
こんなことなら、もう少し待てばよかった・・・。
そもそも・・・・
そんなことはどうでもいいですね。
iTunes の話でした。
iTunes を家族で共有した理由は、私の愛車「キューブ」には ipod を繋ぐことが出来るので、家族でドライブに行く際にはみんなの曲を ipod に入れておきたいのです。
なので、iTunes を家族全員で1つにまとめて使用しています。
1つにまとめると、家族の誰でも曲を追加出来るし、家族のどの端末でも ipod を繋げて同期が出来ます。
さて、我が家でやっているこの運用方法ですが、普通には出来ません。
少し設定が必要になります。
スポンサードリンク
そもそも iTunes にはホームシェアリングという機能があり、家族で共有することが出来るのですが、これはあくまでも自分のライブラリを他の家族に見せる機能で、家族は曲を追加することは出来ないし、もちろん ipod を繋げても同期することはできません。
こういう風に言うと、我が家の運用方法が完璧のように見えるのですが、これにも欠点があります。
それは、ライブラリファイルの排他制御の問題です。
つまり、先勝ち ということです。
家族の中で、1番始めに iTunes を開いた人が曲を追加することやプレイリストを作るなど、iTunes の内容を更新することが出来ます。
2番目以降に iTunes を開いた人は、曲を追加出来ません。
試しに追加してみるると、ファイル自体はコピーされるのですが、ライブラリは1番目に iTunes を開いた人がロックしているため、更新できません。
なので、もちろん曲リストには載りません。
自分が起動した iTunes が更新できるのか、できないのかを家族に聞いて回らないと更新作業が出来ないので、実用に耐えません。
なので、私は iTunes を起動するときに1つプログラムをかます事にしました。
要するに問題は、自分が1番に起動したかどうかを知れればいい訳です。
これくらいなら何とかなるかな?とプログラムを作成したわけです。
このプログラムが欲しい方はこちらから。
1時間くらいで家庭用に作成したプログラムなので美しくないです。苦情は受け付けておりません(笑)
iTunesStart.vbs
このプログラムを実行すると、1番始めの人は何も起こらずに普通に iTunes が起動します。
2番目以降に起動した人には「他の誰かが起動中なので、読取専用で起動します」とメッセージが表示されて iTunes が起動します。
このプログラムは iTunes のショートカットの変わりに使うことになります。
ご家族で共有化するなら、家族の皆さんに配ってください。
これだけの機能ですが、家族からはなかなかに好評です (´∀`)
ではセットアップ方法と、プログラムの内容を説明します。
プログラムがよくわからん人はセットアップ方法だけ読んでください。
その前に、iTunes を NAS で共有化する方法は、こちらのページで詳しく説明されていますので参考にして下さい。
(※事例2の方法です)
MacとWindowsの間でiTunesライブラリを完全共有する
セットアップ方法は簡単です。
次にダウンロードしたプログラムを適当なエディタで開いて、以下の部分を環境に合わせて修正してください。
1.23,39,53行目
Set objFile = objFso.OpenTextFile("Z:\iTunes\bootState.txt", 1, False)
Set objFile = objFso.OpenTextFile("Z:\iTunes\bootState.txt", 2, False)
Set objFile = objFso.OpenTextFile("Z:\iTunes\bootState.txt", 2, False)
赤字の部分、「bootState.txt」までのパスをご自分の環境に合わせて修正して下さい。
家族全員で環境が違うかもしれないので、それぞれの方に合わせて修正して下さい。
2.44,48行目
objWShell.Run """C:\Program Files\iTunes\iTunes.exe""", 4, True
objWShell.Run """C:\Program Files\iTunes\iTunes.exe""", 4, false
赤字の部分、「iTunes.exe」までのパスをご自分(またはご家族)の環境に合わせて修正して下さい。
パスくらい変数に持たせろよ!って仰る通りです!
めんどうだったんです・・・ m(_ _)m
以上でセットアップは完了です。
今後は iTunes を起動する際には、このプログラムを起動するようにして下さい。
ポイントだけ説明します。
コメントで記載しているので、いるかどうかは微妙ですが・・・(^▽^;)
・6行目
Windows のプロセスリストから iTunes があるかどうかを検索しています。
要するに iTunes が既に起動しているかどうかを確認しています。
その後の処理で、起動している場合はメッセージを表示して、プログラム終了です。
・22〜31行目
「bootState.txt」ファイルを読み込んでます。
・37〜44行目
「bootState.txt」に何も書かれていなかったら、1番目の起動として「bootState.txt」に「booting」(起動中)と書き込み、iTunes を起動します。
iTunes を終了した時点で「bootState.txt」をクリアする必要があるため、プログラムは待ち状態にさせています。
・45〜49行目
「bootState.txt」に何か書かれている場合は、「他の誰かが起動中なので、読取専用で起動します」とメッセージを表示して、iTunes を起動後、プログラムを終了させています。
・56〜57行目
1番始めに起動した人の iTunes 終了時の処理です。
「bootState.txt」に「booting」と書かれているので、これをクリアします。
以上です!
これでかなり快適な iTunes ライフが送れるようになりました!
もっと、こんな風に運用した方がいいんじゃない?とかあれば、どしどし教えてください!
でわでわ ( ´Д`)ノ~
本日は iTunes の話題です。
みなさんはどんな風に iTunes を使っていますか?
私は、家族全員で iTunes をNASで共有して使っています。
最近は大容量のNAS でも簡単に導入することが出来るようになっていますね。
私は リンクステーション を RAID-5 で運用していますが、当時の価格は20万近くしました・・・。
こんなことなら、もう少し待てばよかった・・・。
そもそも・・・・
そんなことはどうでもいいですね。
iTunes の話でした。
iTunes を家族で共有した理由は、私の愛車「キューブ」には ipod を繋ぐことが出来るので、家族でドライブに行く際にはみんなの曲を ipod に入れておきたいのです。
なので、iTunes を家族全員で1つにまとめて使用しています。
1つにまとめると、家族の誰でも曲を追加出来るし、家族のどの端末でも ipod を繋げて同期が出来ます。
さて、我が家でやっているこの運用方法ですが、普通には出来ません。
少し設定が必要になります。
スポンサードリンク
そもそも iTunes にはホームシェアリングという機能があり、家族で共有することが出来るのですが、これはあくまでも自分のライブラリを他の家族に見せる機能で、家族は曲を追加することは出来ないし、もちろん ipod を繋げても同期することはできません。
こういう風に言うと、我が家の運用方法が完璧のように見えるのですが、これにも欠点があります。
それは、ライブラリファイルの排他制御の問題です。
つまり、先勝ち ということです。
家族の中で、1番始めに iTunes を開いた人が曲を追加することやプレイリストを作るなど、iTunes の内容を更新することが出来ます。
2番目以降に iTunes を開いた人は、曲を追加出来ません。
試しに追加してみるると、ファイル自体はコピーされるのですが、ライブラリは1番目に iTunes を開いた人がロックしているため、更新できません。
なので、もちろん曲リストには載りません。
自分が起動した iTunes が更新できるのか、できないのかを家族に聞いて回らないと更新作業が出来ないので、実用に耐えません。
なので、私は iTunes を起動するときに1つプログラムをかます事にしました。
要するに問題は、自分が1番に起動したかどうかを知れればいい訳です。
これくらいなら何とかなるかな?とプログラムを作成したわけです。
このプログラムが欲しい方はこちらから。
1時間くらいで家庭用に作成したプログラムなので美しくないです。苦情は受け付けておりません(笑)
iTunesStart.vbs
このプログラムを実行すると、1番始めの人は何も起こらずに普通に iTunes が起動します。
2番目以降に起動した人には「他の誰かが起動中なので、読取専用で起動します」とメッセージが表示されて iTunes が起動します。
このプログラムは iTunes のショートカットの変わりに使うことになります。
ご家族で共有化するなら、家族の皆さんに配ってください。
これだけの機能ですが、家族からはなかなかに好評です (´∀`)
ではセットアップ方法と、プログラムの内容を説明します。
プログラムがよくわからん人はセットアップ方法だけ読んでください。
その前に、iTunes を NAS で共有化する方法は、こちらのページで詳しく説明されていますので参考にして下さい。
(※事例2の方法です)
MacとWindowsの間でiTunesライブラリを完全共有する
セットアップ方法
セットアップ方法は簡単です。
NAS 上の、「iTunes」フォルダの直下に、「bootState.txt」という空ファイルを作成して下さい。 |
次にダウンロードしたプログラムを適当なエディタで開いて、以下の部分を環境に合わせて修正してください。
1.23,39,53行目
Set objFile = objFso.OpenTextFile("Z:\iTunes\bootState.txt", 1, False)
Set objFile = objFso.OpenTextFile("Z:\iTunes\bootState.txt", 2, False)
Set objFile = objFso.OpenTextFile("Z:\iTunes\bootState.txt", 2, False)
赤字の部分、「bootState.txt」までのパスをご自分の環境に合わせて修正して下さい。
家族全員で環境が違うかもしれないので、それぞれの方に合わせて修正して下さい。
2.44,48行目
objWShell.Run """C:\Program Files\iTunes\iTunes.exe""", 4, True
objWShell.Run """C:\Program Files\iTunes\iTunes.exe""", 4, false
赤字の部分、「iTunes.exe」までのパスをご自分(またはご家族)の環境に合わせて修正して下さい。
パスくらい変数に持たせろよ!って仰る通りです!
めんどうだったんです・・・ m(_ _)m
以上でセットアップは完了です。
今後は iTunes を起動する際には、このプログラムを起動するようにして下さい。
プログラム内容の説明
ポイントだけ説明します。
コメントで記載しているので、いるかどうかは微妙ですが・・・(^▽^;)
・6行目
Windows のプロセスリストから iTunes があるかどうかを検索しています。
要するに iTunes が既に起動しているかどうかを確認しています。
その後の処理で、起動している場合はメッセージを表示して、プログラム終了です。
・22〜31行目
「bootState.txt」ファイルを読み込んでます。
・37〜44行目
「bootState.txt」に何も書かれていなかったら、1番目の起動として「bootState.txt」に「booting」(起動中)と書き込み、iTunes を起動します。
iTunes を終了した時点で「bootState.txt」をクリアする必要があるため、プログラムは待ち状態にさせています。
・45〜49行目
「bootState.txt」に何か書かれている場合は、「他の誰かが起動中なので、読取専用で起動します」とメッセージを表示して、iTunes を起動後、プログラムを終了させています。
・56〜57行目
1番始めに起動した人の iTunes 終了時の処理です。
「bootState.txt」に「booting」と書かれているので、これをクリアします。
以上です!
これでかなり快適な iTunes ライフが送れるようになりました!
もっと、こんな風に運用した方がいいんじゃない?とかあれば、どしどし教えてください!
でわでわ ( ´Д`)ノ~
スポンサードリンク
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/3283054
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック