前書きで繰り返し書いた通り,SACDをリッピングすることは違法です。よって以下に書かれていることを真似することは違法です。違法な方法を伝聞として記載することが違法かどうかについては,はっきりしません。違法であることが明らかになればこのページは削除します。
基本的には,ここに書かれている通りですので読めばわかります。最初にブルーレイプレイヤーを使ってSACDのリッピングに成功したのはMediaTeckのSoCであるMT85xxを使ってLinuxをOSとした機種だったようです。たくさんのOEMバージョンがあるらしく,sonyのBDP-S390, S490, S590, S4100, S5100, pioneerのBDP-80FD, 160, 170あたりが安価なユニバーサルプレイヤーとして販売されていました。日本ではpioneerのBDP-160や170はモデル末期には新品が1万円代前半で叩き売られていたようですが,ヤフオク!などでみていると,中古品が新品よりもよほど高い価格で取引されています。それでも買う人がいる,ということは,おそらく,SACDのリッピングをしようという需要ががある程度存在しているから,と想像されます。また,BSD-160や170を用いたリッピングの手順が日本語に翻訳されたものがある,ということも大きいように思います。
その後,2019年2月にARMv7を使ったブルーレイプレイヤーでもSACDをリッピングする方法が「開発」されます。これは,SonyのBDP-S6200, S7200, S790が該当するようです。この情報はここに明記されているのですが,なぜか,BDP-S6200などのヤフオク!での価格は特に高いというわけでもなく,普通に適正な中古価格で取引されているように見えます。それなら,というわけで,このARMv7を使った機種での方法をトレースしてみようと思います。
具体的な手順はここがわかりやすいように思います(ただし,BDP-S390などをターゲットとしていますが,手順はS6200でも同じです)。
繰り返しますが,やり方がわかったからといってそれをやってよいわけではありません。日本では違法です。
1. ファイルのダウンロード
1.1 プレイヤー(サーバー)側のsacd_extract
BDP-S790は別のソフトがいるようで,S6200とS7200に使えるものがここに置かれています。右上の「ダウンロード」ボタンからローカルに落とします。
1.2 クライアントPC側のsacd_extract
SONOREのサイトの一番下のSoftwareというところからISO2DSDというリンクを辿ります。ISO2DSDのページの一番下にmacOS, Windows, Linux用のアプリケーションが置かれています。適当なOSのものをダウンロードして展開するといくつかファイルが入っていますが,sacd_extractという実行可能ファイルのみを使います。
2. ファイルをUSBにコピー
ダウンロードしたzipファイルを展開してできるAutoScriptというディレクトリごとUSBスティックのルートディレクトリにコピーします。USBスティックはFAT32でフォーマットしておきます。AutoScriptというディレクトリの下にはautorip.shというシェルスクリプト,AutoScriptとsacd_extract_6200という実行可能ファイルが含まれています。ディレクトリ構造を変えてはならないようです。
3. ブルーレイプレイヤーの設定
メニューの名称は微妙に違うかもしれませんがだいたい想像できるんじゃないかと思います。ブツが手元にないので想像です。
3.1 Setup -> オーディオ設定 -> DSD出力モード (off)
3.2 Setup -> BD/DVD視聴設定 -> BDインターネット接続 (許可しない)
3.3 Setup -> 音楽設定 -> スーパーオーディオCDの再生層 (SACD)
3.4 Setup -> システム設定 -> クイックスタートモード (On)
3.5 Setupから現在の設定を参照して,IPアドレスを確認しておきます。
4. sacd_extractの起動
4.1 リモコンを使ってプレイヤーの電源をいったんオフにして,USBスティックをリアのUSBコネクタに挿します。
4.2 改めてプレイヤーの電源をオンにすると,USBスティックのアクセスランプが(存在すれば)光って,ディスクトレーが自動的に開きます。これが,USBスティックにコピーしたソフトが正しく読み込まれた合図です。
4.3 ディスクトレーにSACDディスクを載せて,リモコンを使ってトレーを閉じます。
4.4 これで外部からの読み出し待ちになります。
5. クライアントPCのsacd_extractから書き出し。
クライアントPC (windows, macOS, LinuxのいずれでもOK)にsacd_extractの実行ファイルをコピーします。上記の解説のページではGUIのためのラッパーを使うことが想定されていますが,そんなものは全く不要なのでコマンドラインから直接sacd_extractコマンドを叩くほうが簡単です。windowsならコマンドプロンプトかpower shell,macOSならターミナルを立ち上げて,sacd_extractのあるディレクトリに移動します。macOSなら
./sacd_extract -i 192.168.xxx.yyy:2002 -I
と叩きます。192.168.xxx.yyyは3で確認したプレイヤーのIPアドレスです。最後のオプション(-I; 大文字のアイ)はisoイメージで読み出すことを指定しています。オプションを選べばDSF (-s)やDSDIFF (-p)で書き出すことも可能です。DSTによる圧縮がかかっている場合は-cをつけて圧縮を展開します。-2または-mで2チャンネルで読み出すか,マルチチャンネルで読み出すかを選びます。何も設定しなければ2チャンネルです。
上記コマンドではカレントディレクトリにisoファイルが書き出されます。ISOファイルは改めてsacd_extractを使ってDSFやDSDIFF形式に書き出せばそのあとはいかようにでも扱うことができます。そのあたりは,ここに書いた通りの手順でOKです。
上記サイトに書かれている手順をおおよそ整理するとこんな感じになりそうです。pioneerのBDP-160, 170と手順はまったく変わりません。
しつこいようですが,実際にやったら違法です。
Sony BDP-S6200 + sacd_extract (その1;長いイントロ)
このサイトのアクセス解析を見ると,どういうわけかsacd_extractの記事にコンスタントにアクセスがあります。自分用のメモを書いているだけでだれかに読んでもらいたい,というような意図はまったくないので非常に不思議に思っていました。
sacd_extractというキーワードでgoogleで検索すると,色々なページがヒットしますが,上記の記事も比較的上位でヒットします。このキーワードでヒットしているページをいくつか見ていて気が付いたことは,どうやら,sacd_extractを使ってSACDをリッピングする,というのが今更のように一部で流行しているらしい,ということです。SACDのリッピングについては,先の著作権法の改定で既に日本では違法とされていますので真似をしてはいけません。
著作権法の改正前にはPS3の初期型(CECHA00またはCECHB00)にカスタムファームウェア(CFW)をインストールしたうえでリッピング用のアプリ(SACD-Ripper)をインストールすることでPS3に外付けしたUSB HDDにSACDの中身を書き出す,という方法が流行りました。PS3はある時期(FW 3.56以降)からカスタムファームウェアのインストールができなくなったため,初期型かつ,古いファームウェア(FW 3.55以前)のままでアップデートされていない個体を見つけてこなくてはなりませんでした。そのうえ,PS3の初期型はYLODと呼ばれる有名な持病があるため健全かつ古いファームの個体はもはや絶滅危惧種となっています。
YLODはCPUまわりが高熱になるため,半田割れが生じて導通が不安定になって生じると言われており,本体をばらしてヒートシンクの上からヒートガンで適切に熱することで再びハンダがまわって導通が復活し正しく動くようになります。ヒートガンの温度や熱する時間など諸説ありますが,きちんとバラすことができれば難易度はそれほど高くありません。しかし,YLODはその原因からもわかるとおり,一度改善しても,頻繁に発生します。しょっちゅう分解して修理する,というのもなんともバカバカしくなってきます。
また,適切な個体を調達できた場合,カスタムファームウェアそのものは容易にインストールできますが,SACD-Ripperをインストールするのが大変でした。このアプリがリリースされた時は誰でも簡単に見つけてダウンロードできましたが,その後,アンダーグラウンド化して,非常に怪しげな裏サイトでしか入手できなくなっていたようです。もしも,頑張ってSACD-Ripperを発見できたとしても,SACD-Ripperの起動時にルートキーを要求されます。ルートキーを発見するのはほぼ不可能になっているのではないかと思います。
この当時(2010年頃でしょうか)は基本的にSACD-Ripperを使ってPS3にUSBで外付けしたHDDに書き出すのが一般的でした。しかし,ごく稀にSACD-Ripperではうまく読み出せない場合があって,そのような場合はPS3用のsacd-daemonという別のソフトをインストールし,PS3側のsacd-daemonをサーバーとして適当なクライアントPC上でsacd_extractを走らせてリモートでSACDの中身をリッピングする,という方法を使うとうまくいくようでした。
いずれにしても現在ではSACDのリッピングそのものが違法なので,リッピングのためのハードルが高くて難しくてもいっこうに困らないのですが,違法でもやりたい,という人にとってはとても残念に感じられるのかもしれません。
ところが,その高いハードルを比較的下げる方法が見つかった,ということで再びsacd_extractが注目されるようになったようなのです。
PS3ではなく,普通のブルーレイプレイヤーのうち,SACDを再生可能なユニバーサルプレイヤーの一部でプレイヤーのOSのバグを利用し(OSは組み込み用のLinuxです),プレイヤーでsacd_extractをサーバーとして走らせてSACDの読み出しをさせ,適当なクライアントPCで走らせているsacd_extractを使ってクライアントPC上にリモートから書き出す,という方法が「開発」されたようです。
何回も繰り返しますが,SACDをリッピングすることは違法なので,たとえ可能になったとしてもやってはいけません。ただ,どういう方法でこれを実現したのか,ということには純粋に興味があるため,手順について少し調べてみました。
sacd_extractというキーワードでgoogleで検索すると,色々なページがヒットしますが,上記の記事も比較的上位でヒットします。このキーワードでヒットしているページをいくつか見ていて気が付いたことは,どうやら,sacd_extractを使ってSACDをリッピングする,というのが今更のように一部で流行しているらしい,ということです。SACDのリッピングについては,先の著作権法の改定で既に日本では違法とされていますので真似をしてはいけません。
著作権法の改正前にはPS3の初期型(CECHA00またはCECHB00)にカスタムファームウェア(CFW)をインストールしたうえでリッピング用のアプリ(SACD-Ripper)をインストールすることでPS3に外付けしたUSB HDDにSACDの中身を書き出す,という方法が流行りました。PS3はある時期(FW 3.56以降)からカスタムファームウェアのインストールができなくなったため,初期型かつ,古いファームウェア(FW 3.55以前)のままでアップデートされていない個体を見つけてこなくてはなりませんでした。そのうえ,PS3の初期型はYLODと呼ばれる有名な持病があるため健全かつ古いファームの個体はもはや絶滅危惧種となっています。
YLODはCPUまわりが高熱になるため,半田割れが生じて導通が不安定になって生じると言われており,本体をばらしてヒートシンクの上からヒートガンで適切に熱することで再びハンダがまわって導通が復活し正しく動くようになります。ヒートガンの温度や熱する時間など諸説ありますが,きちんとバラすことができれば難易度はそれほど高くありません。しかし,YLODはその原因からもわかるとおり,一度改善しても,頻繁に発生します。しょっちゅう分解して修理する,というのもなんともバカバカしくなってきます。
また,適切な個体を調達できた場合,カスタムファームウェアそのものは容易にインストールできますが,SACD-Ripperをインストールするのが大変でした。このアプリがリリースされた時は誰でも簡単に見つけてダウンロードできましたが,その後,アンダーグラウンド化して,非常に怪しげな裏サイトでしか入手できなくなっていたようです。もしも,頑張ってSACD-Ripperを発見できたとしても,SACD-Ripperの起動時にルートキーを要求されます。ルートキーを発見するのはほぼ不可能になっているのではないかと思います。
この当時(2010年頃でしょうか)は基本的にSACD-Ripperを使ってPS3にUSBで外付けしたHDDに書き出すのが一般的でした。しかし,ごく稀にSACD-Ripperではうまく読み出せない場合があって,そのような場合はPS3用のsacd-daemonという別のソフトをインストールし,PS3側のsacd-daemonをサーバーとして適当なクライアントPC上でsacd_extractを走らせてリモートでSACDの中身をリッピングする,という方法を使うとうまくいくようでした。
いずれにしても現在ではSACDのリッピングそのものが違法なので,リッピングのためのハードルが高くて難しくてもいっこうに困らないのですが,違法でもやりたい,という人にとってはとても残念に感じられるのかもしれません。
ところが,その高いハードルを比較的下げる方法が見つかった,ということで再びsacd_extractが注目されるようになったようなのです。
PS3ではなく,普通のブルーレイプレイヤーのうち,SACDを再生可能なユニバーサルプレイヤーの一部でプレイヤーのOSのバグを利用し(OSは組み込み用のLinuxです),プレイヤーでsacd_extractをサーバーとして走らせてSACDの読み出しをさせ,適当なクライアントPCで走らせているsacd_extractを使ってクライアントPC上にリモートから書き出す,という方法が「開発」されたようです。
何回も繰り返しますが,SACDをリッピングすることは違法なので,たとえ可能になったとしてもやってはいけません。ただ,どういう方法でこれを実現したのか,ということには純粋に興味があるため,手順について少し調べてみました。
ApacheでDigest認証
SSLを使ってwebページにhttpsでアクセスをするためには必ず証明書が必要になります。たんに通信経路を暗号化したいだけなのに,高価な証明書を買うなどというバカなことはやってられません。もちろん,オレオレ証明書を使えばよいのですが,そうすると,最近のブラウザは危険なサイトだ,とか表示してユーザーを脅かしてくれます。
事情がわかっているユーザーならばハイハイわかりました,とか言いながら危険をおかしてアクセスすることに躊躇しませんが,一般のユーザーではそういうわけにもいきません。それに,最近のブラウザでは,危険を承知の上でアクセスする,という選択をするためのボタンを見つけにくくなっていたりして,余計な手間がかかります。
そんなわけで,通信経路の暗号化はあきらめて,せめてアクセス時の認証だけ暗号化する,ということでDigest認証で妥協をしてしまいます。さすがにBasic認証はないよな,ということでDigest認証です。でも暗号化はMD5なのでどうせ大したことはありませんが,それでも暗号化はないよりあったほうがマシです。
というわけでDigest認証の安直な設定方法のメモです。
認証をしたいディレクトリに.htaccessファイルを作って以下の内容を書いておきます。
AuthType Digest
AuthName hogehoge
AuthUserFile /somewhere/.htpasswd_dig
require valid-user
hogehogeは認証画面で表示される文字列です。パスワードを設定するときにこれと同じ文字列を入力する必要があります。また,.htpasswd_digはパスワードを保存しておく適当なファイル名です。
次に,パスワードを設定します。
htdigest -c /somewhere/.htpasswd_dig 'hogehoge' USER_NAME
オプションの-cは初めてこのファイルを作るときにのみ使います。2つめ以降のアカウントでは-cなしで上記コマンドを実行するとどんどんアカウントが追加されていきます。逆に-cをつけると前に設定したアカウントが上書きされて失われてしまいます。hogehogeは.htaccessのAuthNameで設定した文字列です。これが一致していないとアクセスできません。USER_NAMEはアカウント名です。コマンドを実行するとパスワードを聞かれるので設定したいパスワードを入力すればOKです。
Apacheの設定ファイルであるhttps.confで
LoadModule auth_digest_module libexec/apache24/mod_auth_digest.so
を有効にして(コメントアウトされていれば#を消して),httpdを再起動すれば正しく動くはずです。
Digest認証を要求しているディレクトリの下に認証を必要としないディレクトリをおく場合は,認証を必要としないディレクトリに.htaccessファイルを作って,
Satisfy Any
とだけ書いておけば,このディレクトリでは.htaccessの設定が上書きされて認証なしでアクセスできるようになります。ある意味,際どい設定です。このように設定しているディレクトリの下にまた別のディレクトリを作って認証したいような場合,うっかり,ひとつ上のディレクトリで認証を無効にしているのを忘れていたりすると事故につながりますので注意が必要です。
事情がわかっているユーザーならばハイハイわかりました,とか言いながら危険をおかしてアクセスすることに躊躇しませんが,一般のユーザーではそういうわけにもいきません。それに,最近のブラウザでは,危険を承知の上でアクセスする,という選択をするためのボタンを見つけにくくなっていたりして,余計な手間がかかります。
そんなわけで,通信経路の暗号化はあきらめて,せめてアクセス時の認証だけ暗号化する,ということでDigest認証で妥協をしてしまいます。さすがにBasic認証はないよな,ということでDigest認証です。でも暗号化はMD5なのでどうせ大したことはありませんが,それでも暗号化はないよりあったほうがマシです。
というわけでDigest認証の安直な設定方法のメモです。
認証をしたいディレクトリに.htaccessファイルを作って以下の内容を書いておきます。
AuthType Digest
AuthName hogehoge
AuthUserFile /somewhere/.htpasswd_dig
require valid-user
hogehogeは認証画面で表示される文字列です。パスワードを設定するときにこれと同じ文字列を入力する必要があります。また,.htpasswd_digはパスワードを保存しておく適当なファイル名です。
次に,パスワードを設定します。
htdigest -c /somewhere/.htpasswd_dig 'hogehoge' USER_NAME
オプションの-cは初めてこのファイルを作るときにのみ使います。2つめ以降のアカウントでは-cなしで上記コマンドを実行するとどんどんアカウントが追加されていきます。逆に-cをつけると前に設定したアカウントが上書きされて失われてしまいます。hogehogeは.htaccessのAuthNameで設定した文字列です。これが一致していないとアクセスできません。USER_NAMEはアカウント名です。コマンドを実行するとパスワードを聞かれるので設定したいパスワードを入力すればOKです。
Apacheの設定ファイルであるhttps.confで
LoadModule auth_digest_module libexec/apache24/mod_auth_digest.so
を有効にして(コメントアウトされていれば#を消して),httpdを再起動すれば正しく動くはずです。
Digest認証を要求しているディレクトリの下に認証を必要としないディレクトリをおく場合は,認証を必要としないディレクトリに.htaccessファイルを作って,
Satisfy Any
とだけ書いておけば,このディレクトリでは.htaccessの設定が上書きされて認証なしでアクセスできるようになります。ある意味,際どい設定です。このように設定しているディレクトリの下にまた別のディレクトリを作って認証したいような場合,うっかり,ひとつ上のディレクトリで認証を無効にしているのを忘れていたりすると事故につながりますので注意が必要です。