Oct 11, 2018 01:24 PM
I have a records with attachments that I have filtered down to just what I want to download. Is there a way to download all the attachments of the filtered records? Or do I have to walk through each record downloading each individually?
Oct 11, 2018 01:33 PM
Just through the airtable website, no I don’t think there’s any mass download option.
If you are going to do it often, or if you have a huge number of downloads, you can write a script using the airtable API. The API lets you specify a particular view to list, and contains attachment URLs that you can fetch from your script
Jan 09, 2020 02:41 PM
For those who are not technical, we built a tool that allows anyone to Bulk Download Attachments from Airtable instead of downloading each record individually. You can also limit it to only export attachments from a specific Airtable view.
Mar 25, 2020 07:58 AM
Please just integrate a function to allow bulk downloading… it’s been YEARS without any such function. Second-rate.
Mar 11, 2022 12:33 PM
^ bump. this would be really great and save tons of time.
Jun 22, 2022 03:45 AM
This should be a priority in Airtable roadmap…
Jul 20, 2022 01:51 AM
Yes this would be really helpful in my current project
Jul 20, 2022 09:05 PM
Hi,
insert new field with formula (set your field name)
IF({Attachments},
SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(
'curl -o "' &{Attachments},
'(https:','" https:'
),')',''),
',',' & curl -o "')
)
copy whole column. paste it to cmd window
may be a bit bugged if filename contains round brackets or comma
Jul 27, 2022 02:49 PM
Here’s a cleaner formula.
(limitation: it only gets the first attachment).
IF(
{Attachment},
'curl -o "' &
SUBSTITUTE(
SUBSTITUTE(
REGEX_REPLACE(
SUBSTITUTE({Attachment}, '"', ''),
'(.*?) \\(https(.*?)\\)',
'$1" "https$2"'
),
'(',
''
),
')',
''
)
)
Copy then the content of the formula column, paste it on a file batch_dl.sh
and then run it sh ./batch_dl.sh
.
Jul 27, 2022 02:53 PM
You can do this with our On2Air Backups extension. It exports all table data and attachments to Google Drive, Dropbox, or Box.
Oct 20, 2022 09:13 AM
Hi Alexey,
Thanks for this, however is there anyway to output the filename to include another field? For example if multiple attachments are all called image.jpg it will only download one copy.
Can you add another {field} so the filename outputs differently? For example I have a Service_ID field that is an autonumber. So my ideal output would be “230 - image.jpg” 245 - image.jpg" “734 - image.jpg” for instance.
Thank you very much.
Oct 24, 2022 10:36 AM
Hi
insert &{field}&' - '
after each curl -o "'
should be
IF({Attachments},
SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(
'curl -o "'&{field}&' - ' &{Attachments},
'(https:','" https:'
),')',''),
',',' & curl -o "'&{field}&' - ')
)
watch for commas/quotes in {field} value. I’ve tested it - okay, but when I have "Done,Rejected,Pending"
- it works wrong. Too busy now to debug and correct.
Oct 25, 2022 09:14 AM
Perfect, thanks! I couldn’t get the correct combo of '&{
Feb 18, 2023 02:30 PM
yes, at ~$1 per record, correct?
May 03, 2023 02:51 PM
An entry requested urgently to include a function to mass download attachments was created in 2020, and there is no implementation. That development should have been created BEFORE setting an expiration date to URLs to attachments. This is not the right way AirTable.
May 25, 2023 04:58 AM
Jumping in for anyone who finds this thread in the future - I have created a (paid) Airtable extension that allows you to download multiple attachments, it has two modes "remote download" and "local script", you can read more about the differences in this blog post I wrote.
Hope this would save someone many hours of manually downloading 🙂