This project is a command line application which keeps folders from a source windows folder in sync with Albums on the photo sharing service SmugMug using their SmugMug API 1.3.0.
- Upload and sync file changes from local folders to remote SmugMug Galleries
- Process Keywords for Images and Videos up to SmugMug, splitting up keyword trees
- Simple use - Run program (no params) for full sync of any new folders/galleries
- Any image updates (keywords, new files, removed files) need to sync to SmugMug
- Syncing must persist regardless of SmugMug Organize App changes (moving folder in SmugMug, settings, etc)
- Changes that happen to images in SmugMug (rotating, new keywords) should reverse sync back to local system
This project started in 2012 as I had many folders and wanted to sync them in a no hassle manner. I found the following workflow and have used it to this day:
- Work on photos in Adobe Lightroom, Export JPG output files to a local folder
- Use a separate tool (custom) to add captions to each file, and format the filenames
- Use another tool to apply tags to the files
- Copy the finished folder to my network drive in with a nice foldername, in a folder by year.
- Run the SmugMugSync tool, which transfers any new folders to SmugMug in a private gallery for me to review
- In SmugMug Organizer, apply template, select feature image(s) and move folder to final gallery location.
This may seem like a number of steps, but this SmugMug Sync tool, removes the hassle with any image updates after the initial changes, and it also has special processing to split tags and can pull tags associated with videos (on Windows).
Overall, I have 50k files, and this tool will in about 30s minus the new folder syncing (which is variable based on images/videos being uploaded).
2012 - App initially written with .Net 4.6. + various years of tweaks
2023-09 - App was rewritten to use .Net Core 7.0, VS Code, and includes full unit testing. Integration tests for the core library, and Moq testing for the primary application. Split out the secrets and made it more shareable.
- Request a developer key for your app SmugMug Application Keys
- Put your new keys in appsettings.json (apikey/apisecret)
- Build and run "SmugMugCoreSync GENERATEKEYS" to generate your user keys to use with your app.
- Put your user keys into the appsettings.json file.
- Settings to drive app are all in appsettings.json, instructions will be coming shortly.
- Document the appsettings file for easier usage
- Move from the 1.3 API to 2.0 API