« 前のひとこと | トップページ | 次のひとこと »

cocolog:94023777

電子書籍『ジルパのVR紀行 1. 2022年12月~2023年2月』を BOOTH で無償で公開した。FANBOX の記事の一部をまとめた電子本(EPUB)。ダウンロードしていただけるとうれしい。ここでは裏話的なものを書いていく。 (JRF 9393)

JRF 2023年2月15日 (水)

《ジルパのVR紀行 1. 2022年12月〜2023年2月 - ジルパのおみせ - BOOTH》
https://j-rockford.booth.pm/items/4543923

利用条件は次のようになる。

JRF2023/2/158776


取材時の衣装等に商業利用不可、政治・宗教利用不可の条件のあるものがあります。それらの意を汲んでください。その自由を守るため、この電子書籍は無償で配布します。この電子書籍の譲渡・貸出等も利益を出さない「無償」で行うようお願いします。すみません。

JRF2023/2/155840

公開から2週間たったぐらいに国立国会図書館に納本(寄贈)します。変に目立つのを避けたい方もいらっしゃるでしょうから、国会図書館によるインターネット全公開ではなく、国会図書館(関連施設)内でのみ閲覧可に指定します。何か問題がありましたら、納本までにご一報いただけると対応できます。

それ以外は、電子書籍の一般的な慣行に基本的に従います。例えば、改変後、自作のように再配布するのはおやめください。

JRF2023/2/152812

国会図書館に納本するのがオリジナリティがあるところか。

JRF2023/2/154582

……。

……。

技術的覚え書き。

FANBOX の EPUB 化にあたり、最大の問題点は、FANBOX のページは JavaScript による動的生成を多用しており、Perl から get しても、ブラウザのページで保存したりしても、中身のないデータしか得られないという点である。これを補うため、Firefox のアドオンの Save Page WE というアドオンで保存する。

JRF2023/2/158891

ただし、Save Page WE はページがまるごと保存できるのがウリだが、決して特定の仕様に沿ったセーブをなすわけではない。そのため、Save Page WE で保存したものから変換作業を行っていくが、その作業は Save Page WE のバージョンアップと共に変更を強いられることとなろう。

JRF2023/2/156212

次の大きな問題点として、EPUB は HTML のかなり小さいサブセットであるため、情報をかなり削っていかなければ、うまく表示できないという点がある。Save Page WE の特殊な CSS の使い方等を補う必要がある。

JRF2023/2/156105

EPUB への流れとしては、Save Page WE でセーブ → 変換スクリプトで変換 → Sigil で EPUB にする。…という流れ。Sigil のメタデータの入力や CSS の作成などにもノウハウはないでもないが、これについてはできた EPUB を見てもらったほうが早いのでここでは説明しない。変換についてのみここでは書いていく。

JRF2023/2/151471

さて、変換のアウトラインを書き出していこう。変換のスクリプトは私は Perl で書いた。

JRF2023/2/152311

まず、HTML::Parser で読み込んで {tag => 'a', attr => {class=>'...', href=>'...'}, content => [...]} などという木構造を作っていく。この点、普通は HTML::DOM モジュールなどを使うものだと思うが、私は HTML::DOM をインストールしておらず、このごにおよんでインストールしてない重そうなモジュールは使いたくなかったので、独自の木構造を用いた。

JRF2023/2/152196

その後、iframe の内容を木構造内に開いていく。Save Page WE は iframe の構造を srcdoc という中に HTML エンコードして保存してくれている。(iframe 内に直接保存されてないことに注意!) それを iframe 内に展開する。

JRF2023/2/156048

iframe 内や トップの head、画像が、style の中に --savepage-url-数値 という CSS 変数で定義されているのでそれをファイルにセーブしておき、そこを参照している部分を、ファイルからの参照に置き換える。img タグに直接 data 形式で保存されているものもあるので、それもファイルに保存しておき、ファイルを参照するようにする。

JRF2023/2/156109

iframe やトップの head を削り article 部分のみを取り出しておく。

tco などの短縮 URL を開いておく。

記事のタイトル部分を整形する。

public-DraftStyleDefault-block というクラスの div を p に置き換える。

h2 の中の p を消す。

figure をそれぞれの方式に従って処理する。この処理は後述する。

JRF2023/2/159291

div の中に p が一つだけあるようなものを p だけにする。

<p><br/></p> を <p>&#160;</p> にする。これは好みの問題かも。

<article><div><p>...</div></article> などとなっているのを、<article><p>...</article> という形にする。

以上で変換したものをまとめていく。

……というのが流れになる。

JRF2023/2/153295

問題は figure をいろいろな方式に従って処理する部分である。

実は FANBOX の HTML のクラス名などは多くの場合、sc-2c960h-0 kYbcOI …といった(おそらく)ランダムな文字列であることが多い。そのためクラス名などから判断して構造を特定するのが難しい。iframe 内も例外的に YouTube のものなどはクラス名が人が読めるものになっているが、そのほうが珍しい形になる。

JRF2023/2/157756

いきおい、div の並列の数や img タグまでの深さの数などから、方式を特定することになる。正直、かなりダーティなコードとなる。

figure タグの中 iframe タグの外で、iframely-twitter iframely-youtube などというクラス名が使われることがあり、そこから figure の方式がなんであるか大まかに特定できることがあるが、必ずそうではない。

JRF2023/2/156819

画像を表示するだけの部分もやはり iframely-... というクラス名では判断できず、div の数などから判断して変換する。

HMV や FANBOX への(埋め込み)リンクもそれぞれ違う形式で、それぞれ独自に変換ルーチンを書く必要がある。

YouTube は先に書いたようにクラスが特定できるため、まだ易しく変換できる。

JRF2023/2/158076

問題は Twitter の埋め込み。Twitter は、その表記のされ方によって、中身がかなり変わり、しかもクラス名がランダムなため、方式の特定がしずらい。これを div の構造や img のあるなしなどから、適当に判断して整形することになる。この辺は Best Effort で、十分やったというところで諦めるしかなかった。

JRF2023/2/156581

……。

……。

著作権的・他者の規約に関する懸念もある。ここはメモをコピペしていく。

○ 2023-01-12T16:23:51Z

Booth で買う衣装の宗教・政治活動の禁止。政治活動の禁止はまだ守りやすいが、宗教活動の禁止は範囲が広すぎると感じる。バーチャルな初詣や神社・寺への訪問も引っかかる? 観光地も元・宗教施設とかありうる。宗教勧誘とかでなければいいのか…?

JRF2023/2/153807

○ 2023-01-13T18:03:17Z

衣装の条件での宗教・政治活動の禁止は憲法に反していて、企業がそれを主張するとかはありえないんだけど、CGM…相手も(ほぼ)消費者ということになると、それを守ることが創作意欲を維持するために必要であることはありえ、「自由」を志向していてもそれへの抵抗を義務と考える必要はないと思う。「お互いさま」の領域。

JRF2023/2/151872

○ 2023-02-08T02:09:32Z

商業利用不可、政治・宗教利用不可の商品がある。しかし、前者のためにそれを使ってできた写真集などを無償で提供するという選択をすれば、それは自由を重視するという選択をしたということになるが、それは自由主義という政治性を帯びることになる。これは政治利用不可に抵触するのではないか?

JRF2023/2/156203

しかし、それでは突き詰めれば商業利用不可と政治・宗教利用不可は同時に満たすことができない、つまり、使うことができない商品を売ったということになりかねない。(それはつまり詐欺だから)その結論も受け容れがたいだろう。すると、商業利用不可と政治・宗教利用不可は程度の問題ということが導けるのだと思う。

JRF2023/2/157684

商業利用不可のみ、政治・宗教利用不可のみ…とすれば、すりぬけられるか? すりぬけられない。それらは慣行として成立しているがゆえに有効であって、その両者があるものが慣行として成立し、どちらか一方しかないものはその慣行を参考にして成立するに過ぎないから。…とできるのではないか。

JRF2023/2/151728

○ 2023-02-08T02:17:03Z

従来であれば(広告なども取らず)「無償で配布」するというのは経済的に不可能だったが、現代では趣味の範囲の活動で、ブログを書くように、写真集を電子出版することが可能となっている。この点は過去に演劇等が無償で上演できたことと似ており、無償性に特別な意味を見出すべきように思う。

JRF2023/2/151931

○ 2023-02-08T02:28:02Z

だからまぁ、結論としては、要は、電子本を無償配布して、それによって FANBOX でパトロンが付いたり他の商品が売れたりしても商業利用不可に抵触しないというのが、「程度」だし、自由主義だから政治利用…と即ならないぐらいの「程度」は認めていただきたい。おねげーしやっす。…というところです。ハイ。

JRF2023/2/152267

……。

……。

追記。

○ 2023-02-18T14:48:07Z

jilpa> 電子書籍(EPUB)『ジルパのVR紀行 1. 2022年12月~2023年2月』。スマホ用に CSS を見直し少しバージョンアップしました。第1.1版です。特にスマホの方はお手数ですが再度ダウンロードしていただいたほうがよいと思います。よろしくお願いします。ペコリ

JRF2023/2/195811

« 前のひとこと | トップページ | 次のひとこと »