How to sync starred photos from Picasa to my iPhone/iPad?

Solution 1:

You could set up the symlink script to run daily (or however often you possibly sync your device) to at least generate the symlink folder automatically. If you are uncomfortable writing the plists for the LaunchDeamons, you can use an app like Lingon to generate them. At this point, they may not even need to be symlinks, just a copied 'export' if you will, using the same logic.

Either way, you are still stuck doing the 'iPod Photo Cache'. I think the only reason this is slightly faster when using Aperture or iPhoto is due to them having various thumbnails and other sizes rendered, but it still takes time to process, especially the first time.

Assuming smaller files would actually process faster, you could also update the script that exports the stared items with symlinks to actually copy the files elsewhere, and then resize them using a tool like sips.

For example, sips -Z 1024 image.jpg would resize the image down to 1024x768, retaining the aspect ration (more examples can be found on this blog, or elsewhere online).

You may have to find which process works best for you and your workflow, and where the bottle neck would be. Again, if this export could be daily, outside of the actual sync to your device, that folder could always 'be ready'.

Then, you just keep your iOS device sync the same, but it can process smaller files, and you have automated most of the process. The iPod Photo Cache may also be incremental, so if these files stay the same, and then just have new ones added, only the new ones are added to the cache as well.

Solution 2:

So far it seems the best way to do it is to run the following bat script (Windows 7) periodically:

@ECHO OFF
SETLOCAL

C:
CD \
CD

RMDIR /S /Q starred

MKDIR starred

PUSHD starred

@FOR /F "tokens=*" %%a IN    (%userprofile%\AppData\Local\Google\Picasa2\db3\starlist.txt) DO @(
    ::ECHO %%a
    CALL :get_path "%%a"
)

POPD

GOTO last


:get_path
:: get file path
SET _path=%~p1
:: get file name and extension
SET _name=%~nx1
:: remove trailing backslash from path
SET _path=%_path:~0,-1%
:: trim path
CALL :trim_path "%_path%"
IF NOT EXIST "%_path%\" (MKDIR "%_path%")
PUSHD "%_path%"
MKLINK "%_name%" %1
POPD
GOTO :eof

:trim_path
:: get file name from a path returns the last folder
SET _path=%~nx1
GOTO :eof

:last
CD
PAUSE
ECHO ON

This will leave me with a folder full of symlinks (C:\starred\), neatly organized in subfolders, which I will sync with my iDevices.