タグ別アーカイブ: posterous

WordPressのWXR形式とPosterousからのインポート

2013年4月末に終了したPosterousというブログサービスから、借りているVPSに手作業でインストールしたWordPressに記事を移した際に行った事のメモ書きです。もうPosterousというものは世の中にはないけど、手法としては参考になるかもしれないし、自分への覚え書きとして残しておきます。

WordPressでは、インポートやエクスポートの形式として WXR形式 というものをサポートしています。RSS+αといった感じ。用途としてはMovableTypeのMT形式のようなものでしょう。

Posterousもさすがに終了時に記事をZIPでエクスポートできて、その中に wordpress_export_1.xml というファイルがあったので「あぁこれはWXR形式なんだな」と思っていたんだけど、3ヶ月放置してマズイマズイと思ってWordPress設置してWXR形式としてインポートしたら見事にエラーが出た。参った。これは妥当なWXR形式じゃない!

PosterousのエクスポートZIPには、中を見ると1ファイル1記事となったPosterous独自と思えるXML形式があったので、とりあえずメールのような「ヘッダ、空行区切り、ボディ」といった自分独自のテキストファイル変換した

XMLは見づらいし扱いづらいので、メールっぽいUTF-8テキストファイルになれば、後はWordPressが受け付けてくれるWXR形式を作ればいいだけになる。今回は WXR(WordPress eXtended RSS)から記事をインポートする方法 – (DxD)∞ というページを大いに参考にさせてもらった。記事中のWordPress(2013年8月現在バージョン3.6)もWXR形式もバージョンが古いけど、それでもうまく行った。XML文字列をテンプレートにして、渡した独自形式テキストファイルの数だけitem要素を反復するスクリプトを書いて動かした。

タグやカテゴリのインポートは面倒なので諦めることにした。たかだか40くらいの記事だし、元々がタグやカテゴリの設定に不満なこともあって、取り急ぎインポート出来ればいいやと思った次第。タグやカテゴリ、あと欠損した画像とかは手作業でやると割り切りました。

40記事くらいであれば本当に全部手作業でインポートしてもいいかなと思ったけど、WordPressの投稿インターフェースでは過去の投稿日で投稿することはできないことが分かったので、WXR形式を少し真面目に作ることにしました。これはパーマリンクを “/?p=数字” ではなくて “/年/月/ポスト名” などとしている場合に響いてくる話。MySQLのWordPressのデータ構造を読みといて…というのも、テーブル数が少ないWordPressであることもあって出来なくは無さそうかなと思ったけど、WXR形式を作るほうが安全だろうなと思います。

他のPosterous難民は、Posterous終了直前にWordpress.comやTumblrから救済措置としてPosterous APIを使ったインポートツールを提供したので、そっちに移行したか、コンテンツを失ってしまったかのどちらかなのかなと思います。私も一応 post-tumblr.tetsuji.jp というTumblrに一時避難させました。ただ、こちらはしばらくしたら閉鎖したい。あと、PosterousのパーマリンクがWordPressとは相容れない形式だったので、URLとしての一意性を失ってしまったというのは痛い。独自ドメインでやっていたので、そういうリンクを拾おうと思えば拾えるのだけが救い。これをApache+mod_perlで拾って適切なリンクに誘導する方法も考えているので、後々のブログネタにする予定です。

もし将来的にWordPressから別のブログサービスに移行したくなったときも、たぶんWXR形式が役に立つんじゃないかな。永続性の担保されないサービスへデータを預けると、後々大変になるかもという話でした。

4月末から3ヶ月以上アウトプットの場を失っていた感じでしたが、いよいよ復活。これからアウトプットもどんどんしていきます。以前にさかのぼって記事を書いたり、いろいろはかどりそうです。

Posterousが2013年4月30日に終了するので色々面倒なことになった

こんにちは、Posterousでブログを開設して失敗したと思っている おがた (@xtetsuji) です。

Posterousが2013年4月30日に終了することが決定しました。アナウンスあり (どうせこれ自身もPosterousブログだし、無くなるだろうからウェブ魚拓)。ITmediaでニュースにもなりました

posterous-is-closing-down

しかし昨年3月にTwitterに買収されてから明らかに開発が滞って、Twitterアカウントでも連日障害報告をしていたり、いたるところでサービス終了を匂わせてはいたのですが、やはり終わってしまうのかという感じです。ユーザ視点で見ると買収も良し悪しですね。Twitter大好きなのでなんともいえない気分です。Posterousの遺伝子がTwitterに受け継がれることを祈るばかりです。

さて、Posterousからブログを引っ越す必要があるわけですが、上記のリンクからも分かる通り、バックアップをZIPファイルで取得できるようです。

posterous-blog-backup-interface

バックアップを予約して、ブログの規模にもよりますが、程なくしてバックアップは完了します。「所定のメールアドレスにメールするね」って書いてありますがこなかった。クソ…;。

で、ダウンロードしたZIPをほどくのですが、以下のような構造になっていました。

ogata@langdechat:~/Downloads/space-3273122-xtetsuji-222e60b8d71f5c7095fab6dd8ea7723d$ ls -l
total 1152
-rw-r--r--@  1 ogata  staff   10342  2 16 14:30 exports.css
-rw-r--r--@  1 ogata  staff     925  2 16 14:30 head.xml
drwxr-xr-x   3 ogata  staff     102  2 16 14:30 image/
-rw-r--r--@  1 ogata  staff    4303  2 16 14:30 index-2.html
-rw-r--r--@  1 ogata  staff     718  2 16 14:30 index-3.html
-rw-r--r--@  1 ogata  staff    4555  2 16 14:30 index.html
drwxr-xr-x  51 ogata  staff    1734  2 16 14:30 posts/
-rw-r--r--@  1 ogata  staff  550443  2 16 14:30 wordpress_export_1.xml

MT形式でのインポート形式への対応ファイルがあるかなーと期待していましたが、どうもそんな考えは甘かったようです。いちおうindex.htmlを開けばそれだけで完結した形式で閲覧はできるので、これ一式をどこかのウェブサーバに持っていけば閲覧は引き続きできると思います。

wordpress_export_1.xml ってのは WordPress へのインポートファイルなのかと思いましたが、中を見たらマルチバイト文字列が化け化けで使いものになりませんでした。これには失笑。posts/ 以下にある XML と HTML、こちらはUTF-8形式で文字化けもせず各記事が1ファイルになって保存されていました。ここから復旧するしかないでしょうね。

数が少なければ、新しいブログに一つ一つ手で入れていくっていうのもアプローチとしてはアリかと思いますが、画像関連が面倒くさい。

ちょっとこれらを著名な日本のブログサイトやブログシステムにインポートするスクリプトを書くことになりそうです。大した仕事では無いと思いますが。少なくとも「MT形式」にさえしてしまえば後はどうにでもなるでしょう。

私は幸い、独自ドメイン post.tetsuji.jp をPosterousに紐付けて使っていました。なので誘導に関しては比較的融通がきくだろうし検索サイトの誘導も比較的容易だと思うのですが、Posterous のサブドメイン ***.posterous.com でブログやっていた人は「住所変更」もできず悲しいことになりそうです。これはPosterous側がposterous.comのドメインでどうアフターケアするか見守るしかありません。

新しいブログ先はどうするか?今回の件で私はブログサイトの永続性に大いに疑問を持ち、正直懲りました。無料のブログサイトでは永続性は期待できない、有料のも疑心暗鬼になっています。本当は自分でホスティングするのが面倒だし自分のオペレーション的な信頼性も低いかなと思って当初他のブログサイトPosterousにホスティングしていたのですが、ちょっともう無いかなと。面倒でも自分でWordPressかMovableTypeを立てるよ、って感じです。

「日本で何年も続いているブログサイトあるよ?」とか「Tumblrは業界最大手だし大丈夫じゃない?」って反応もあるかとは思いますが、前者は前者で無料はちょっと…;有料のもコストがかかる。後者は個人的にリブログという仕組みが肌にあわないというか著作権的に大丈夫なのって気になって使えない。

Posterousの創業者が永遠に終了しないブログサービスを作るって言っているようですが、自分の信頼が地に堕ちたことに気づいていないらしい。

Posterousのバックアップアーカイブを別形式に変換できるようなスクリプトが書けたらまたお知らせします。もしくはリクエストがありましたら Twitter @xtetsuji までお気軽にお寄せください。自分に出来る限りなんとかします。