Thanks Tanaike, your library looks really good. It does say on
https://developers.google.com/drive/api/v3/batch that "
Note: Currently, Google Drive does not support batch operations for media, either for upload or download". So, I'm not sure if this is possible.
And@ roberts, I have created editor add-ons in the past and this would alleviate the runtime problem. I could go down this route although I opted for workspace add-on as it was a chance to properly learn the CardService layout. I wasn't aware of the 30 second (in practise it seems to be 45 seconds) run time when starting. I also didn't like the idea of having to open Google Sheets in order to save Google Photos to Google Drive although it would be a perfectly valid solution, and one that I've used in the past for other projects.
I have opted for also making a webapp which I'll host on
eduscripts.uk. A user will be able to select their album and just paste in the url of the folder where they would like to photos stored. This way I can use client side javascript to call the server-side script (possibly multiple times simultaneously, although I'm not sure about concurrent runtime limits). It's not a scaleable solution as apps script web-apps are limited to 30 concurrent users but that should be plenty for now.
I'm mainly interested in making it for myself anyway. I'm a teacher and have all my photos on Google Photos. But sometimes other teachers will request photos to be put in a specific folder after an event and I hate having to download them, unzip them and reupload them to the folder. I'm not sure how many others would find it useful.