DEV Community

Cover image for Saving Instagram images automatically every hour with Node.js or PHP
Francesco Orsi
Francesco Orsi

Posted on

Saving Instagram images automatically every hour with Node.js or PHP

Prerequisites

  • Just a web space where to execute a Node.js script.. or PHP script; alternatively you can run the script on your computer.

  • If you want to run the script automatically you need Crontab installed where you execute the code or a free account to crontaboo.com.


Simple way to do it

1 - Go to https://github.com/orsifrancesco/sniffagrammers

Download the repo. From this moment you decide which language you want to use (Node.js or PHP), the scripts are pretty similar.

2 - Open node/sniffagrammer.js or php/sniffagrammer.php

Edit the code according to your needs:

// type can be 'tag' or 'user'
const type = 'user'

// if type is 'tag', the script will search for #orsifrancesco
// if type is 'user', the script will search for @orsifrancesco
const value = 'orsifrancesco'

// only for sniffagrammer.js
// you can change the port of the server
const port = 8080
Enter fullscreen mode Exit fullscreen mode

3 - Upload the script on your web space.

  • If you use Node.js just run node sniffagrammer.js (and open the browser).
  • If you use PHP you can just upload sniffagrammer.php to your web space.

4 - Open the browser

You should be able to see the output on http://yourWebSpace:8080 (or the port you set, or http://localhost:8080 if you are running the Node.js script on your computer) or http://yourWebSpace/sniffagrammer.php (or http://localhost if you are running the PHP script on the htdocs/ folder of your computer).

Every time you open the URL, the script will call Sniffagram endpoint checking for new images and saving them on images/ folder.
JSON output

5 - Check the result

  • On images/{type}/ (where type can be tag or user) you will see all the downloaded images.
  • Every time you download a new image, you will find the hash (wikipedia) of the image path on temp/{type}/. These files are 0 bytes, they are necessary to prevent downloading the same images (if you delete these files the images will be downloaded again). folders

6 - Download images automatically every hour

To call the URL automatically, you need to run a crontab (wikipedia) script. If you don't have crontab installed on your machine you can register at crontaboo.com (the free account gives you the possibility to call URLs every hour).
crontaboo.com


Advanced way to do it

Sniffagram is an independent project that gives you 30 calls a day (enough for a call every hour). It caches the output for 5 minutes.

Due to the high number of requests, sometimes the token used for the project expires prematurely making the service unavailable (usually the expired token is replaced after a few minutes).

For unlimited requests (no cache, every minute) you need to follow the tutorial from the official repo Instagram without API for Node.js or PHP.


Resource Links

Top comments (1)

Collapse
 
orsifrancesco profile image
Francesco Orsi

Due to the high number of requests, sometimes the token used for the project expires prematurely making the service unavailable (usually the expired token is replaced after a few minutes).
Last night thousands of requests made expire the token in few minutes instead of weeks..