I'm writing a "DuetTimelapseClient" in C# as a WinForms app for my own purposes. The laptop I use for slicing is in the same room (and same network) as the printer and it's a Windows 10 machine. The client is using a HttpWebRequest / WebRequest to communicate /w the Duet and takes care of polling the Duet. It stores the current layer #. When the current layer # on the app doesn't match the current layer coming from the Duet, that's a layer change, and it will hit my IP cam's static image URL and download that to a folder (which is the name of the timelapse + current date / time). At the end, it executes FFMPEG to stitch the images together into a timelapse. I'm also planning at having a timelapse by interval instead of just z-change. This will take me a while as I burst some discs in my back and my Hypercube build with my new Duet 2 Ethernet board was put on hold till I'm more mobile again. Plus my day job is a software dev so it's hard to put in a full day doing that and coming home and doing more of that - gotta keep that healthy work / life balance!
Another idea I've been toying with. I've downloaded DWC to try and see if it's possible to raise a JS event upon layer change. I was hoping I could tap into the field that stores the IP / web camera URL (I'm using a Wyzecam v2), and upon layer change it raises a JS event, which uses that URL to call another "API" URL hosted on an old linux (Ubuntu) PC I'm using as a utility box (PiHole, Plex, file shares) - which is basically just a simple PHP script that takes in that URL, accesses it and downloads the resulting image to a file share.
All the while I'm also checking printing status. When a job completes, I'd have another event raised to call that same PHP script, writing out a file called "TimeLapseName-END.jpg". I'd have a cron job wake up on the machine every 5 minutes which looks at the root folder ("Timelapses"), digs into each one looking at all *.jpg files and finding those that end with "-END". That tells the script to run FFMPEG to stitch all jpg images inside each folder into a timelapse. After stitching, it wipes the images, then the containing folder and copies the stitched timelapse to a file share and sends me an email.
I think having two extra fields "API Image URL" (for taking the snaps) and "API Job Complete URL" (for rendering the timelapse) would make this possible - but this whole process only works if you're using an IP cam that has a static image capture function - direct web cam wouldn't work using this I don't think. For me, if I experiment with this, I'll probably just hardcode all of the values - I don't want to mess /w the general layout of DWC, just add some additional logic to it.
Sorry to ramble! I'm sure there's much better solutions out there, but I love to tinker so