40歳からのキャリアチェンジ

20代はエンジニア・PM、30代はWeb系エンジニア向けのキャリアアドバイザー。40代の今はフリーランスで開発含めて色々やってます。技術ネタとしてはRuby/RailsとJavaScript関連あたり

iPhotoの写真をEvernoteに一括インポートするのに必要そうなこと

前回からの続き


iPhotoのアルバムを一旦HTML形式で書き出すと、指定したサイズに写真が書き出されるし、しかもメタ情報もHTMLの本文中に記載される。

これをうまくつかって一括取込した方が意外と自分のニーズにはあいそう。

流れとしてはこんな感じでいけそう

  • iPhotoでの処理
    • iPhotoでお気に入りの写真を集めたアルバムを作成
    • 上記アルバムを指定して、こんな感じで書き出す

iphoto_data_export01

iphoto_data_export02

  • Rubyのスクリプト側の処理
    • 書き出したファイル1つづつに対してenex形式のノートに変換
    • enex形式になったものを、AppleScriptからEvernoteを操作して一括取り込み

iPhotoから書き出されるファイルに対する処理としては

  1. HTMLのパースをして、写真のタイトル→Evernoteのタイトル、写真の撮影日→Evernoteのノート作成日、写真撮影の際のメタデータEvernoteのノート本文という対応をするように処理
  2. img srcで指定されている元の画像データに対してBase64エンコード処理を施す
  3. 上記の2点を結合してenex形式のファイルを作成する

という感じ。Nokogiri使ってパースする際に、tableタグの特定の箇所のみ指定するっていうのがよくわからないので、これは調べる必要あり

require 'rubygems'
require 'nokogiri'

Dir::glob("/Users/hoyamada/Desktop/2010-photobook/Pages/*.html").each{|f|
  begin
    doc = Nokogiri::HTML(open(f))
    @title = doc.search('table/tr/td').text
    puts @title
  rescue OpenURI::HTTPError => e
    e.io.close
  end
}