カラクリサイクル

『輝かしい青春』なんて失かった人の雑記

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

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


  1. Tumblr APIへpostするための生データを用意する
  2. JSONを読み込んでTumblrへデータを投げるスクリプトを書く
    • 僕が実際に使ったのは以下
      • https://gist.github.com/nyarla/5611118
      • ちなみに最初はCoffeeScript + Node.jsでスクリプトを書いてた
      • しかしながら、なんか一部の記事がうまいことpostできなかった
      • なので、不慣れながらもRubyでやり直した
  3. 生データを200記事ぐらいに分割する
    • 2013年5月現在、Tumblr APIによるPostは最大数が制限されてる
      • 主にスパム対策が目的らしい
      • 最大数は、1 user につき 250 post / day
      • あとpost数の制限は日本時間だ14:00を過ぎた辺りでリセットされる
      • それとスクリプトのテスト段階で全記事投げると制限値で死ぬ
        • 僕の場合死にました/(^q^)\
    • ちなみに僕の場合、下記の様な感じで記事を分けた
      1. 普通の記事 (2と3以外の記事すべて)
      2. アフィリエイトを含む記事 (URI変更に伴う再登録申請とかの加減)
      3. 内部リンクを含む記事 (URI変更に伴うリンク切れ防止のため)
  4. 分割した生データをTumblrに投げる(ここからややこしい)
    1. まず最初に上記の普通の記事を最初に投げる
      • そしてその際のレスポンスをきちんと記録しておく
        • → これは後でリダイレクト用URI map等で使用するため
        • ちなみに僕が使用したスクリプトではJSONで記録した
    2. そして次にある程度記事がある状態でアフィリエイトの再審査を受ける
      • 僕の場合Amazonアソシエイトが該当
      • これは割とすんなり行った
    3. アフィの審査が終わったら、今度はアフィを含む記事を投げる
      • これの手順はまあ最初と一緒
    4. そして内部リンクを含む記事を投稿する前に、内部リンクを書き換える
      • これには先に記録したレスポンスデータを使用
      • ちなみに僕はこのレスポンスデータを.htaccessに加工してた
        • → これはあとでブログのURIをリダイレクトさせるため
        • → ちなみにURIの検索にはgrep使った
    5. 内部リンクを書き換えたら残った記事をTumblrに投げる
      • この時一部記事同士の依存関係で修正できなかったのも一緒に投げた
        • → 依存解決できなかったヤツはTumblrに投稿してから手作業で修正
  5. 古いURIから新しいURIにリダイレクトさせる
    • これはURI map dataから.htaccess作って対処
    • んで、久しぶりに.htaccess書いたもんだからちょっとハマった
  6. 最後新しくTumblrに移植したブログの微調整等する
  7. おわり