Patrick May
Posts: 19
Nickname: patsplat
Registered: Feb, 2003
Patrick May is a programmer and artist who has been developing ruby web technologies for 3 years.
iPhoto 2 database format
Posted: Feb 25, 2006 4:50 PM
This post originated from an RSS feed registered with Ruby Buzz
by Patrick May.
Original Post: iPhoto 2 database format
Feed Title: not another ruby framework
Feed URL: http://feeds.feedburner.com/Narf
Feed Description: Developing the Ruby platform, no shortcuts.
Latest Ruby Buzz Posts
Latest Ruby Buzz Posts by Patrick May
Latest Posts From not another ruby framework
Advertisement
~/Pictures/iPhoto Library/
2006/01/07/fallow_keep.png.450x450.2005-12-04.jpg
original image
2006/01/07/Thumbs/7.jpg
a thumbnail
AlbumData.xml
plist file with all the goodies
Dir.data
binary
iPhoto.db
binary
iPhoto.ipspot
text, perhaps for spotlight indexing?
iPhotoLock.data
blank at the moment
Library.iPhoto
binary
Thumb32.data
binary
Thumb64.data
binary
ThumbJPG.data
binary
I kept the library pretty simple, to show the structure:
{ "Application Version" = "5.0.4 (263)"; "Archive Path" = "/Users/username/Pictures/iPhoto Library"; "List of Albums" = ( { AlbumId = 999000; AlbumName = Library; KeyList = (7); Master = 1; PhotoCount = 1; PlayMusic = YES; RepeatSlideShow = YES; SecondsPerSlide = 3; SlideShowUseTitles = 0; SongPath = ""; TransitionDirection = 0; TransitionName = Dissolve; TransitionSpeed = 1; }, { "Album Type" = "Special Roll"; AlbumId = 999001; AlbumName = "Last Roll"; "Filter Mode" = All; Filters = ({Count = 1; Operation = "In Last"; Type = Roll; }); KeyList = (7); PhotoCount = 1; PlayMusic = YES; RepeatSlideShow = YES; SecondsPerSlide = 3; SlideShowUseTitles = 0; SongPath = ""; TransitionDirection = 0; TransitionName = Dissolve; TransitionSpeed = 1; }, { "Album Type" = "Special Month"; AlbumId = 999002; AlbumName = "Last 12 Months"; "Filter Mode" = All; Filters = (); KeyList = (7); PhotoCount = 1; PlayMusic = YES; RepeatSlideShow = YES; SecondsPerSlide = 3; SlideShowUseTitles = 0; SongPath = ""; TransitionDirection = 0; TransitionName = Dissolve; TransitionSpeed = 1; }, { "Album Type" = Regular; AlbumId = 9; AlbumName = "An Album"; KeyList = (7); PhotoCount = 1; PlayMusic = YES; RepeatSlideShow = YES; SecondsPerSlide = 3; SlideShowUseTitles = 0; SongPath = ""; TransitionDirection = 0; TransitionName = Dissolve; TransitionSpeed = 1; } ); "List of Keywords" = {}; "List of Rolls" = ( { "Album Type" = Regular; AlbumId = 6; AlbumName = "Roll 1"; KeyList = (7); Parent = 999000; PhotoCount = 1; } ); "Major Version" = 2; "Master Image List" = { 7 = { "Aspect Ratio" = 1; Caption = "fallow_keep.png.450x450.2005-12-04"; Comment = ""; DateAsTimerInterval = 158341389; ImagePath = "/Users/username/Pictures/iPhoto Library/2006/01/07/fallow_keep.png.450x450.2005-12-04.jpg"; MediaType = Image; MetaModDateAsTimerInterval = 158341439.728129; ModDateAsTimerInterval = 158341389; Rating = 0; Roll = 6; ThumbPath = "/Users/username/Pictures/iPhoto Library/2006/01/07/Thumbs/7.jpg"; }; }; "Minor Version" = 0; }
Read: iPhoto 2 database format