不自由な電子書籍の自由化の自動化

経緯

昔、不自由な電子書籍(単独アプリのタイプ,数百ページ)を、iPadで1枚1枚スクリーンショットを撮って自由なpngにした後にPDFにしたことがあった。スクリーンショットを撮ってページを送ってというのを延々と繰り返していた。
アニメ見ながら無心で作業するとかなら案外なんとかなる。まああまりやりたくないですね。

現状

iOS/Android電子書籍系アプリというのは、だいたいDRMがついてて、フリックで次のページに移動して、スクリーンショットは普通に取れるという感じではないかと思う。*1*2
スクリーンショットの撮影を自動化すると、様々なアプリで汎用的に利用でき、法的にも問題なく良いのではという気がしたので、Androidでの実現性について調べた。

なお、スクリーンショットを封じていたWindows電子書籍ソフトウェアスクリーンショットを、無理矢理撮影するソフトウェアの製造で逮捕された事例が存在する。
技術的保護手段の回避がどこまで適応されるのかはわからないが、普通にスクリーンショットを撮影できるアプリならば大丈夫なのでは。 http://www.itmedia.co.jp/news/articles/1402/20/news045.html

方法

これを実現するためには、

調査の結果root権限が無くとも、adbが利用できれば両者を実行できることがわかった。

  • adb shell screencap -p /sdcard/sc.png
  • adb shell input touchscreen swipe 500 500 1000 500
    の2つを用いて、目的の操作が可能なことを確認した。(isai LGL22 Kitkat)
    コマンドの実体は端末の/system/bin/ にあるので、adb shellの権限で適当に叩けばよさそう。

iOSでやろうとするとJailbrokenなデバイスでなんかやるんですかね(適当)

問題点

当然、スクリーンショットで自由化する問題点が引き継がれる。

結論

DRMが死んでほしい

*1:AndroidだとFLAG_SECUREが付いてるとadb経由でのスクリーンショットも含め阻止できるようだった。

*2:ただしKindleなどの自分が使っているアプリでは普通に撮れるので、設定されていない模様

PT3+Ubuntu 14.04+KVM+Chinachuで録画

個人の日記です

  • GA-Z87X-UD3H
  • Core i5 4570
  • PT3*1
  • Ubuntu 14.04 LTS KVM host
    みたいな構成で録画鯖の動作検証をした。
    4440ではなく4570にしたのはTSXなどのなんかかっこいい拡張命令に対応しているからですが、実際に活用できるのかは調べてない
    http://ark.intel.com/compare/75038,75043

KVM PT3 PCI-Eパススルー

  • UEFIでVT-x/d Enabledを確認
  • http://www.linux-kvm.org/page/How_to_assign_devices_with_VT-d_in_KVM などを読んで、 /boot/config-3.13.0-30-genericを元に適当にmenuconfigをしてコンパイルした
  • やらなくてもintel_iommu=onmodprobe pci_stubで済む気がするけど試してない
  • 以後はvirt-managerで適当にポチポチしたらPT3をパススルーできたのを確認、USBカードリーダーも同様
  • PT3のデバイス名:Multimedia controller: Altera Corporation Device 4c15 (rev 01)
683c683
< CONFIG_PCI_STUB=m
---
> CONFIG_PCI_STUB=y
6322c6322
< # CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
---
> CONFIG_INTEL_IOMMU_DEFAULT_ON=y

chinachu

録画用ゲストもUbuntu 14.04 LTSとした

  • apt-get install git build-essential autoconf unzip pcscd libpcsclite1 libpcsclite-dev libccid pcsc-tools pkg-config dkms yasm libtool curl
  • m-tsudo/pt3
  • c44e16dbb0e2/arib25
  • stz2012/recpt1

などのアレを適当にアレして、recpt1 --device /dev/pt3video0 --b25 --strip 101 30 NHKBS1.tsなどで受信確認の後、Chinachuをインストール
https://github.com/kanreisa/Chinachu/wiki/Installation

このへんでチャンネルを拾って、config.jsonに書き足す(epgdumpはchinachuのusr/bin/epgdumpに入ってる)
完了

現況

  • とりあえず4番組同時録画などしても安定しているように見える
  • PT3を2枚以上刺した時の挙動などは不明(不要なPT3の寄付などいつでも受け付けています)
  • chinachuのWebUIライブ視聴機能 is 便利最高
  • 録画番組はエンコしないとどうしようもなくなるので、chinachuの視聴機能を使うかというと微妙(chinachu自身が録画したtsファイルのみが対象のため)

雑記、感想

  • 思ったよりも楽に問題なく出来た、Red Hat最高
  • まだchinachuで運用するかWindowsでSpinel+EDCB使うか迷ってる(Windows Guestにおいてもパススルー動作確認はできた)
  • recpt1、異様に派生版と野良のパッチがあって渋い
  • これが気になる https://github.com/u-n-k-n-o-w-n/BonDriverProxy_Linux
  • TSUKUMOのこのHaswellセットが異様に安くてよさそう(たまたま見つけたのでついでにアヒリエイトを貼っておく)

Android+PCの音楽環境について調査した

現状:
iTunes(Windows)+iPod touch(4th)の組み合わせを利用している。そろそろこの構成も限界が近い。
曲の追加日、再生回数/最終再生時の管理、レーティングなどのメタデータを活用し、スマートプレイリストを作成するような使い方をしている。音質は全然わからん。

調査目的:
Androidアプリ+PC上の音楽管理ソフトウェア の組み合わせにおいて、どの程度このような環境を実現できるかを調査する。
また、スマートプレイリストのような物を端末側で作成するなどの機能が実現されるとよりよい環境となる。

大まかな指針として、

  • PC上での音楽管理にiTunesを利用したまま、Android端末へ同期できるアプリを利用する
  • 他のAndroid端末と音楽管理ソフトウェアを探す

の2つが考えられる。

 

前者の組み合わせの場合、Android端末とiTunesを同期する方法はほぼiSyncr一択となるようであった。
有料アプリではあるが、無料の試用版を用いてテストした(プレイリスト当たり100曲の制限がある)。
iSyncrを利用すれば全てのアプリから必ずレーティングなどの情報を利用できるとは限らず、対応アプリの利用が必要となっている。
再生回数の同期が可能なプレイヤーの一覧がここにある。
iTunesのスマートプレイリストは単なるm3uに変換されるので、端末側でスマートプレイリストとしての利用はできない。
ひとまず、iSyncrと同じ開発元のRocket Playerと、評判のいいPlayerProを試した。

PlayerPro
設定の「Music library → 評価システム」で、iSyncrを選択するとレーティングとしてiSyncrのものを利用できる。また、再生回数のScrobbleを有効にすると、同期時にiTunesの再生回数・再生時刻が更新されることを確認できる。
iTunesのスマートプレイリストと互換性はないが、似たような機能を実装している。しかし、再生回数などの情報はPlayerPro→iTunesの単方向でしか伝達されないようで、iTunesにすでに記録されている情報を利用することはできなかった。

Rocket Music Player
とくに設定なしにiSyncrを利用して同期することができる。
再生回数などの情報も、双方向で同期されているように見えた。
iTunesのスマートプレイリストと互換性はないが、ライブプレイリストという似たような機能を実装しており、そこでiTunes側がつけた再生回数やレートなどのメタデータを問題なく参照することができた。
SJISのタグが文字化けしたが、いいかげん昔のSJISのID3は変換するべきなので仕方ない。

 

後者の場合、現在iTunesを用いて作成されているライブラリのデータを、そのままインポートして利用できるソフトウェアは、MusicBee以外には発見できなかった。(ここではレーティングや再生回数を含め移行できる機能をインポートとする)
MusicBeeを調査したところ、モバイル機器のサポートがほぼない事が判明し、調査を終了した。
他にモバイル機器のサポートは期待できるがiTunesからのインポート機能がないソフトウェアとしては、MediaGo、WMP、あたりか。
インポート元としてiTunesはCOMから十分な情報を利用できるので、インポート先に選びやすい物があれば検討。

結論
アイホンハイブエス64GBの様子です

f:id:sudo_vi:20140302150201j:plainまた数年ぐらいお世話になります

Android用SSHターミナルアプリ「JuiceSSH」の紹介

JuiceSSHは、要するにIrssi ConnectBotなどと同様に、Android端末からリモートサーバにsshなどができるやつです。多くの機能は無料で利用できます。
何かと良い点があって乗り換えて、日本語記事がほぼなかったので適当な紹介をします。

とりあえず基本的な
ssh,telnet,local接続
・公開鍵認証
ssh port forwarding
・物理キーボードの利用
などは出来ます。
username,password,publickeyはidentifyという単位で管理できます。
各コネクションをgroup単位にまとめることも可能です。

BTキーボードに関して、Tab,Shift,Ctrl,Escなどは問題なく利用でき、C-[なども問題なく使えることを確認しました(Nexus 7 2013 + ポケモンキーボード、terminal emulator: linuxにて確認)

f:id:sudo_vi:20131012165018p:plainf:id:sudo_vi:20131012162923p:plainf:id:sudo_vi:20131012164907p:plain

特徴的な主要機能として、moshへの対応があります。
moshはsshのリモートターミナル部分の代替で、Android端末などの回線の安定性に不安がある場面で非常に有用です。(参考)
また、セッションの継続中には通知領域にconnected表示が出ます。

Irssi ConnectBotより優れている点として、スクリーンキーボード利用時の操作性がありますが、というよりもConnectBotの操作性が悪いのが普通になっただけですね。
こんな感じです。タッチしてもすぐ消えたりしません。

f:id:sudo_vi:20131012165412p:plainf:id:sudo_vi:20131012162809p:plain

有料版だとCloudSyncというIdentifyを同期する機能があったり、TeamShareという複数人で使う機能があるようですが、使わないのでよくわかりません。
記事を書こうとして設定を眺めてたら、Snippet、EC2 Linkなどの機能があることも発見しましたがまだ触ってもないです。

ダウンロードはこちらから
https://play.google.com/store/apps/details?id=com.sonelli.juicessh&hl=ja

MacのTrackpad関係の設定(13/4/2)

利用ハードウェアはMBPR13
BetterTouchTool便利

要点としては、
タブ/ウィンドウをよく閉じるアプリでは3/4本指でのクリックをcmd+wに割り当て、
3本指ドラッグを有効に、
アプリケーションを超えるドラッグ操作は4本指に、
TipTapにタブの左右移動
など

 

f:id:sudo_vi:20130402004738p:plain

f:id:sudo_vi:20130402004742p:plain

f:id:sudo_vi:20130402004838p:plain

f:id:sudo_vi:20130402004849p:plain

f:id:sudo_vi:20130402004853p:plain