カラクリスタ

既存のブログをTumblrへ引っ越す方法 (プログラマ向け)

概要: 僕はどうやって既存の記事を Tumblr へインポートしたか


  1. Tumblr API へ post するための生データを用意する 僕は投稿用データの配列を JSON にした
  • ちなみに Tumblr API の投稿用データの params は下記参照 → <http://www.tumblr.com/docs/en/api/v2#posting http://www.tumblr.com/docs/en/api/v2#posting>
  1. JSON を読み込んで Tumblr へデータを投げるスクリプトを書く 僕が実際に使ったのは以下 → https://gist.github.com/nyarla/5611118 https://gist.github.com/nyarla/5611118
  • ちなみに最初は CoffeeScript + Node.js でスクリプトを書いてた
  • しかしながら、なんか一部の記事がうまいこと post できなかった
  • なので、不慣れながらも Ruby でやり直した
  1. 生データを 200 記事ぐらいに分割する 2013 年 5 月現在、Tumblr API による Post は最大数が制限されてる 主にスパム対策が目的らしい
  • 最大数は、1 user につき 250 post / day

  • あと post 数の制限は日本時間だ 14:00 を過ぎた辺りでリセットされる

  • それとスクリプトのテスト段階で全記事投げると制限値で死ぬ 僕の場合死にました/(^q^)\

  • ちなみに僕の場合、下記の様な感じで記事を分けた 1. 普通の記事 (2 と 3 以外の記事すべて)

  1. アフィリエイトを含む記事 (URI 変更に伴う再登録申請とかの加減)

  2. 内部リンクを含む記事 (URI 変更に伴うリンク切れ防止のため)

  3. 分割した生データを Tumblr に投げる(ここからややこしい) 1. まず最初に上記の **_ 普通の記事_** を最初に投げる そしてその際のレスポンスをきちんと記録しておく → これは後でリダイレクト用 URI map 等で使用するため

  • ちなみに僕が使用したスクリプトでは JSON で記録した
  1. そして次にある程度記事がある状態でアフィリエイトの再審査を受ける 僕の場合 Amazon アソシエイトが該当
  • これは割とすんなり行った
  1. アフィの審査が終わったら、今度はアフィを含む記事を投げる これの手順はまあ最初と一緒

  2. そして内部リンクを含む記事を投稿する前に、内部リンクを書き換える これには先に記録したレスポンスデータを使用

  • ちなみに僕はこのレスポンスデータを.htaccessに加工してた → これはあとでブログの URI をリダイレクトさせるため
  • → ちなみに URI の検索にはgrep使った
  1. 内部リンクを書き換えたら残った記事を Tumblr に投げる この時一部記事同士の依存関係で修正できなかったのも一緒に投げた → 依存解決できなかったヤツは Tumblr に投稿してから手作業で修正

  2. 古い URI から新しい URI にリダイレクトさせる これは URI map data から.htaccess作って対処

  • んで、久しぶりに.htaccess書いたもんだからちょっとハマった
  1. 最後新しく Tumblr に移植したブログの微調整等する
  2. おわり

#FIXME