Instagram Post Scraper avatar
Instagram Post Scraper

Pricing

from $1.60 / 1,000 posts

Go to Store
Instagram Post Scraper

Instagram Post Scraper

Developed by

Apify

Apify

Maintained by Apify

Scrape Instagram posts. Just add one or more Instagram usernames and get your data in seconds including text, hashtags, mentions, comments, images, URLs, likes, locations, and metadata. Export scraped data, run the scraper via API, schedule and monitor runs or integrate with other tools.

4.4 (33)

Pricing

from $1.60 / 1,000 posts

485

Total users

46K

Monthly users

5.4K

Runs succeeded

>99%

Issues response

2 days

Last modified

a day ago

id

caption

url

commentsCount

likesCount

firstComment

359***66

Books allow readers to *** at the link in bio.

https://www.instagram.com/p/DH***C/

41

9028

More about books 😍

359***88

Photos by @ingo*** about these pumas at the link in bio.

https://www.instagram.com/p/DH***o/

143

68801

❤️

359***22

Meet the Nat*** their stories at the link in bio.

https://www.instagram.com/p/DH***O/

136

13385

Omg!!! ❤️ @dzennypha_

The data above is synthetic and does not reflect real-world values. View full dataset

DE

CDN images expire

Closed

developprotege opened this issue
2 months ago

When using Apify’s Instagram scraper, the media URLs generated for downloaded content expire almost immediately, causing download failures.

Is there a way to access a stable URL for the copy of each media file that Apify has already downloaded, rather than relying on the original, short-lived Instagram URL?

alexey avatar

Hi!

This actor is not capable of downloading media files. URLs from Instagram expire in hours, normally in 24-48 hours. It is usually long enough for downloading, but it should be done as soon as possible after the run.

If you were blocked earlier, it means your IP is rejected or recognized as a data center.

To be sure, please try https://apify.com/lukaskrivka/images-download-upload with the input sample below (just change dataset ID):

{
"convertWebpToPng": false,
"datasetId": "cenIPyerkqY7FAiY2",
"fileNameFunction": "({ url }) => new URL(url).href.split('&').at(-1)",
"imageCheckType": "content-type",
"noDownloadRun": false,
"pathToImageUrls": "images",
"preDownloadFunction": "({ data }) => data.flatMap((postOrProfile) => {\r\n const items = postOrProfile?.latestPosts || [postOrProfile];\r\n return items.map((item) => {\r\n if (!item.images?.length) {\r\n item.images = [item.displayUrl];\r\n }\r\n item.images = item.images.filter(Boolean).map((url, index) => `${url}&${item.ownerUsername}-${item.shortCode}-${index}`)\r\n return item;\r\n })\r\n})",
"proxyConfiguration": {
"useApifyProxy": true
},
"s3CheckIfAlreadyThere": false,
"uploadTo": "key-value-store"
}
alexey avatar

I will close the issue now, but if there is anything else we can help with, please let us know.