iPhotoFlickrSync

2년 전부터 나는 iPhoto 에 있는 사진을 Flickr 와 연동하길 원했고, 새로 나온 iPhoto 09 에도 기대를 걸어 봤지만, 내가 원하는 것이 될 수 없었다.
내가 가장 원하는 것은

  • 나는 사진을 iPhoto 에만 넣는다.
  • 그럼 iPhoto와 Flickr 는 자동으로 Sync 된다

였다.
하지만 내가 원하는 것을 찾을 수는 없었다. 그 추정되는 이유로는

  • 일반 사용자들이 필요로 하기엔 고급 기능에 가깝고,
  • 자동 싱크라는 것이 일반적으로 구현하기엔 너무 복잡한 일에 가깝고,
  • 방대한 iPhoto 사진을 백업 목적으로 Flickr 를 사용하는 예는 드물기, (대부분 공유의 목적으로 사용하지 않을까)

때문이 아닐까 싶다.
그래서 2년간의 숙고 끝에 자작 솔루션 제작에 들어갔다. 사실 수작업으로 Flickr 연동을 해 오다, 올해 1월부터는 안하기 시작했다. 가끔 Flickr 에서 사진을 찾아봤으면 했다가도, 이내 2010년이 들어서는 연동한 적이 없다는 것을 알고 실망한 적이 있었다.
언어는 Ruby 를 선택했다. Rails 공부하는 중이기도 하고 해서…

  • 첫번째 목표는 iPhoto 에 있는 정보를 Sqlite DB 로 옮기기.
  • 두번째 목표는 Flickr 에 있는 정보를 Sqlite DB 로 옮기기.
  • 마지막 세번째 목표는 iPhoto 에는 있지만, Flickr 에는 없는 사진들을 Upload 하기. 이 때, KEY 값은 사진이 찍힌 날짜( PHOTO_TAKEN ) 으로 잡았다.

SequelFlickraw 두개의 gem 의 도움으로 간단히 작성이 가능했다.
현재, 약 4천개 정도 업로드 할 사진이 있음을 파악하고 업로드 중에 있다. 한시간에 대략 170개씩 올라가고 있다.
현재 버젼의 가장 큰 문제점으로는

  • PHOTO_TAKEN 정보가 없거나 틀린 것이 꽤 있다. 대표적인 것이 동영상 AVI 파일이다. 이것들은 옮겨진 시간등이 기준으로 삼아진다. 그래서 이것들을 배제하거나, 아니면 다른 방식으로 관리가 필요하다.
  • 10시간 정도를 돌려도 1700개 밖에 못올리니깐 DB Record 를 뽑아놓고, 10시간째 돌리고 있으니, TIMEOUT 에러가 나서 중간에 멈춰선 경우가 있다. 다른 방식이 필요하겠다.

사실 하도보니 욕심이 난다.

  • 최초에 기대를 했던, Tag, Title, Description 에 대한 Sync 기능. iPhoto 에서 특정 사진에 대해서 정보를 편집하면 그것이 Flickr 에도 반영하기. PHOTO_TAKEN을 KEY로 해서 싱크 구현은 가능 할 듯 한데, 생각보다 복잡할지도…
  • iPhoto 내에는 인물 인식에 대한 정보도 있다. 이거 대충 보니, 좌표까지 있어서, Flickr 에 반영도 가능 할 것 같다.
  • 역으로, Flickr 에는 있지만, iPhoto 에는 없는 것을 가져오는 기능 구현.

언제 다시 맘먹고 업그레이드 할 지 모르겠지만, 그래도 올해 사진 4천개 파일을 자동으로 올렸다는데 일단 만족한다.