{"id":13567896,"url":"https://github.com/ScriptSmith/instamancer","last_synced_at":"2025-04-04T02:33:32.113Z","repository":{"id":33965127,"uuid":"160066272","full_name":"ScriptSmith/instamancer","owner":"ScriptSmith","description":"Scrape Instagram's API with Puppeteer","archived":false,"fork":false,"pushed_at":"2022-12-16T00:23:55.000Z","size":5659,"stargazers_count":402,"open_issues_count":2,"forks_count":61,"subscribers_count":20,"default_branch":"master","last_synced_at":"2025-03-28T18:14:18.805Z","etag":null,"topics":["data-mining","instagram","instagram-api","instagram-scraper","puppeteer","scrape"],"latest_commit_sha":null,"homepage":"http://adamsm.com/instamancer","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ScriptSmith.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-12-02T16:22:31.000Z","updated_at":"2025-03-28T17:27:23.000Z","dependencies_parsed_at":"2023-01-15T03:39:43.321Z","dependency_job_id":null,"html_url":"https://github.com/ScriptSmith/instamancer","commit_stats":null,"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ScriptSmith%2Finstamancer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ScriptSmith%2Finstamancer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ScriptSmith%2Finstamancer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ScriptSmith%2Finstamancer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ScriptSmith","download_url":"https://codeload.github.com/ScriptSmith/instamancer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247111806,"owners_count":20885498,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-mining","instagram","instagram-api","instagram-scraper","puppeteer","scrape"],"created_at":"2024-08-01T13:02:48.797Z","updated_at":"2025-04-04T02:33:31.544Z","avatar_url":"https://github.com/ScriptSmith.png","language":"TypeScript","readme":"\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/logo.png\" height=\"150\" title=\"Icon made by Freepik (www.freepik.com) available at www.flaticon.com. CC 3.0 BY licensed (http://creativecommons.org/licenses/by/3.0/)\"\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eInstamancer\u003c/h1\u003e\n\n[![Quality](https://img.shields.io/codacy/grade/98066a13fa444845aa3902d180581b86.svg)](https://app.codacy.com/project/ScriptSmith/instamancer/dashboard)\n[![Coverage](https://img.shields.io/codacy/coverage/98066a13fa444845aa3902d180581b86.svg)](https://app.codacy.com/project/ScriptSmith/instamancer/dashboard)\n[![Speed](https://firebasestorage.googleapis.com/v0/b/instagram-speed-test.appspot.com/o/instamancer.svg?alt=media\u0026token=dcc3e623-ee88-4d74-ae86-2d969a1cd8ad)](https://scriptsmith.github.io/instagram-speed-test)\n[![NPM](https://img.shields.io/npm/v/instamancer.svg)](https://www.npmjs.com/package/instamancer)\n[![Dependencies](https://david-dm.org/scriptsmith/instamancer/status.svg)](https://david-dm.org/scriptsmith/instamancer)\n[![Chat](https://img.shields.io/gitter/room/instamancer/instamancer.svg)](https://gitter.im/instamancer)\n\nScrape Instagram's API with Puppeteer.\n\n###### [Install](#Install) | [Usage](#Usage) | [Comparison](#Comparison) | [Website](https://scriptsmith.github.io/instamancer/) | [FAQ](FAQ.md) | [Examples](examples/README.md)\n\n\u003chr/\u003e\n\n**Notice:** Instagram's Web UI and API now requires users to be logged in to access hashtag and account endpoints through a browser. As instamancer is designed to access publicly available data, it currently does not work as intended. Given that this change is unlikely to be reversed, Instamancer will remain unsupported and unmaintained indefinitely. Please use [this pinned issue](https://github.com/ScriptSmith/instamancer/issues/58) to discuss. \n\n\u003chr/\u003e\n\n\nInstamancer is a new type of scraping tool that leverages Puppeteer's ability to intercept requests made by a webpage to an API.\n\nRead more about how Instamancer works [here](https://scriptsmith.github.io/instamancer/).\n\n### Features\n- Scrape hashtags, users' posts, and individual posts\n- Download images, albums, and videos\n- Output JSON, CSV\n- Batch scraping\n- Search hashtags, users, and locations\n- API response validation\n- Upload files to [S3](https://github.com/ScriptSmith/instamancer/blob/master/FAQ.md#how-do-i-use-the---bucket-flag-and-s3) and [depot](https://github.com/ScriptSmith/instamancer/blob/master/FAQ.md#how-do-i-use-the---depot-flag-and-depot)\n- [Plugins](plugins)\n\n### Data\nMetadata that Instamancer is able to gather from posts:\n\n- Text\n- Timestamps\n- Tagged users\n- Accessibility captions\n- Like counts\n- Comment counts\n- Images (Thumbnails, Dimensions, URLs)\n- Videos (URL, View count, Duration)\n- Comments (Timestamp, Text, Like count, User)\n- User (Username, Full name, Profile picture, Profile privacy)\n- Location (Name, Street, Zip code, City, Region, Country)\n- Sponsored status\n- Gating information\n- Fact checking information\n\n## Install\n\n#### Linux\nEnable user namespace cloning:\n```\nsysctl -w kernel.unprivileged_userns_clone=1\n```\n\nOr run without a sandbox:\n\n```\n# WARNING: unsafe\nexport NO_SANDBOX=true\n```\n\nSee [Puppeteer troubleshooting](https://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.md#chrome-headless-fails-due-to-sandbox-issues)\n\n#### Without downloading chromium\nIf you wish to install Instamancer without downloading chromium, enable the `PUPPETEER_SKIP_CHROMIUM_DOWNLOAD` environment variable before installation\n\n```\nexport PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true\n```\n\n### From NPM\n\n```\nnpm install -g instamancer\n```\n\nIf you're using root to install globally, use the following command to install the Puppeteer dependency\n\n```\nsudo npm install -g instamancer --unsafe-perm=true\n```\n\n### From NPX\n\n```\nnpx instamancer\n```\n\n### From this repository\n```\ngit clone https://github.com/ScriptSmith/instamancer.git\ncd instamancer\nnpm install\nnpm run build\nnpm install -g\n```\n\n## Usage\n\n### Command Line\n```\n$ instamancer\nUsage: instamancer \u003ccommand\u003e [options]\n\nCommands:\n  instamancer hashtag [id]       Scrape a hashtag\n  instamancer user [id]          Scrape a users posts\n  instamancer post [ids]         Scrape a comma-separated list of posts\n  instamancer search [query]     Perform a search of users, tags and places\n  instamancer batch [batchfile]  Read newline-separated arguments from a file\n\nConfiguration\n  --count, -c    Number of posts to download (0 for all)   [number] [default: 0]\n  --full, -f     Retrieve full post data              [boolean] [default: false]\n  --sleep, -s    Seconds to sleep between interactions     [number] [default: 2]\n  --graft, -g    Enable grafting                       [boolean] [default: true]\n  --browser, -b  Browser path. Defaults to the puppeteer version        [string]\n  --sameBrowser  Use a single browser when grafting   [boolean] [default: false]\n\nDownload\n  --download, -d      Save images from posts          [boolean] [default: false]\n  --downdir           Download path       [default: \"downloads/[endpoint]/[id]\"]\n  --video, -v         Download videos (requires full) [boolean] [default: false]\n  --sync              Force download between requests [boolean] [default: false]\n  --threads, -k       Parallel download / depot threads    [number] [default: 4]\n  --waitDownload, -w  Download media after scraping   [boolean] [default: false]\n\nUpload\n  --bucket  Upload files to an AWS S3 bucket                            [string]\n  --depot   Upload files to a URL with a PUT request (depot)            [string]\n\nOutput\n  --file, -o       Output filename. '-' for stdout    [string] [default: \"[id]\"]\n  --type, -t       Filetype   [choices: \"csv\", \"json\", \"both\"] [default: \"json\"]\n  --mediaPath, -m  Add filepaths to _mediaPath        [boolean] [default: false]\n\nDisplay\n  --visible    Show browser on the screen             [boolean] [default: false]\n  --quiet, -q  Disable progress output                [boolean] [default: false]\n\nLogging\n  --logging, -l    [choices: \"none\", \"error\", \"info\", \"debug\"] [default: \"none\"]\n  --logfile      Log file name             [string] [default: \"instamancer.log\"]\n\nValidation\n  --strict  Throw an error on response type mismatch  [boolean] [default: false]\n\nPlugins\n  --plugin, -p  Use a plugin from the plugins directory    [array] [default: []]\n\nOptions:\n  --help     Show help                                                 [boolean]\n  --version  Show version number                                       [boolean]\n\nExamples:\n  instamancer hashtag instagood -fvd        Download all the available posts,\n                                            and their media from #instagood\n  instamancer user arianagrande --type=csv  Download Ariana Grande's posts to a\n  --logging=info --visible                  CSV file with a non-headless\n                                            browser, and log all events\n\nSource code available at https://github.com/ScriptSmith/instamancer\n\n```\n\n### Module\n\nES2018 Typescript example:\n```typescript\nimport {createApi, IOptions} from \"instamancer\"\n\nconst options: IOptions = {\n    total: 10\n};\nconst hashtag = createApi(\"hashtag\", \"beach\", options);\n\n(async () =\u003e {\n    for await (const post of hashtag.generator()) {\n        console.log(post);\n    }\n})();\n```\n\n#### Generator functions\n\n```typescript\nimport {createApi} from \"instamancer\"\n\ncreateApi(\"hashtag\", id, options);\ncreateApi(\"user\", id, options);\ncreateApi(\"post\", ids, options);\ncreateApi(\"search\", query, options);\n```\n\n#### Options\n```typescript\nconst options: Instamancer.IOptions = {\n    // Total posts to download. 0 for unlimited\n    total: number,\n\n    // Run Chrome in headless mode\n    headless: boolean,\n\n    // Logging events\n    logger: winston.Logger,\n\n    // Run without output to stdout\n    silent: boolean,\n\n    // Time to sleep between interactions with the page\n    sleepTime: number,\n\n    // Throw an error if type validation has been failed\n    strict: boolean,\n\n    // Time to sleep when rate-limited\n    hibernationTime: number,\n\n    // Enable the grafting process\n    enableGrafting: boolean,\n\n    // Extract the full amount of information from the API\n    fullAPI: boolean,\n\n    // Use a proxy in Chrome to connect to Instagram\n    proxyURL: string,\n\n    // Location of the chromium / chrome binary executable\n    executablePath: string,\n\n    // Custom io-ts validator\n    validator: Type\u003cunknown\u003e,\n\n    // Custom plugins\n    plugins: IPlugin[]\n}\n```\n\n## Comparison\n\nA comparison of Instagram scraping tools. Please suggest more tools and criteria through a pull request.\n\nTo see a speed comparison, visit [this page](https://scriptsmith.github.io/instagram-speed-test)\n\n\u003ctable\u003e\n\u003cthead\u003e\n    \u003ctr\u003e\n        \u003cth\u003eTool\u003c/th\u003e\n        \u003cth\u003eHashtags\u003c/th\u003e\n        \u003cth\u003eUsers\u003c/th\u003e\n        \u003cth\u003eTagged posts\u003c/th\u003e\n        \u003cth\u003eLocations\u003c/th\u003e\n        \u003cth\u003ePosts\u003c/th\u003e\n        \u003cth\u003eStories\u003c/th\u003e\n        \u003cth\u003eLogin not required\u003c/th\u003e\n        \u003cth\u003ePrivate feeds\u003c/th\u003e\n        \u003cth\u003eBatch mode\u003c/th\u003e\n        \u003cth\u003ePlugins\u003c/th\u003e\n        \u003cth\u003eCommand-line\u003c/th\u003e\n        \u003cth\u003eLibrary/Module\u003c/th\u003e\n        \u003cth\u003eDownload media\u003c/th\u003e\n        \u003cth\u003eDownload metadata\u003c/th\u003e\n        \u003cth\u003eScraping method\u003c/th\u003e\n        \u003cth\u003eDaily builds\u003c/th\u003e\n        \u003cth\u003eMain language\u003c/th\u003e\n        \u003cth\u003eSpeed ____________________________\u003c/th\u003e\n        \u003cth\u003eLicense ____________________________\u003c/th\u003e\n        \u003cth\u003eLast commit ____________________________\u003c/th\u003e\n        \u003cth\u003eOpen Issues ____________________________\u003c/th\u003e\n        \u003cth\u003eClosed Issues ____________________________\u003c/th\u003e\n        \u003cth\u003eBuild status ____________________________\u003c/th\u003e\n        \u003cth\u003eTest coverage ____________________________\u003c/th\u003e\n        \u003cth\u003eCode quality ____________________________\u003c/th\u003e\n    \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\u003ca href=\"https://github.com/ScriptSmith/instamancer\"\u003eInstamancer\u003c/a\u003e\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003eWeb API request interception\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003eTypescript\u003c/td\u003e\n        \u003ctd\u003e\u003ca href=\"https://scriptsmith.github.io/instagram-speed-test\"\u003e\u003cimg src=\"https://firebasestorage.googleapis.com/v0/b/instagram-speed-test.appspot.com/o/instamancer.svg?alt=media\u0026token=dcc3e623-ee88-4d74-ae86-2d969a1cd8ad\"\u003e\u003c/a\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/github/license/scriptsmith/instamancer.svg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/github/last-commit/scriptsmith/instamancer.svg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/github/issues/scriptsmith/instamancer.svg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/github/issues-closed/scriptsmith/instamancer.svg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/gitlab/pipeline/scriptsmith/instamancer\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/codacy/coverage/98066a13fa444845aa3902d180581b86.svg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/codacy/grade/98066a13fa444845aa3902d180581b86.svg\"\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\u003ca href=\"https://github.com/ScriptSmith/instaphyte\"\u003eInstaphyte\u003c/a\u003e\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003eWeb API simulation\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003ePython\u003c/td\u003e\n        \u003ctd\u003e\u003ca href=\"https://scriptsmith.github.io/instagram-speed-test\"\u003e\u003cimg src=\"https://firebasestorage.googleapis.com/v0/b/instagram-speed-test.appspot.com/o/instaphyte.svg?alt=media\u0026token=8e16505d-1259-42a4-90bc-cf8a6d326f55\"\u003e\u003c/a\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/github/license/scriptsmith/instaphyte.svg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/github/last-commit/scriptsmith/instaphyte.svg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/github/issues/scriptsmith/instaphyte.svg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/github/issues-closed/scriptsmith/instaphyte.svg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/travis/ScriptSmith/instaphyte.svg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/codacy/coverage/a2322f650025499bb8aee2368ca43207.svg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/codacy/grade/a2322f650025499bb8aee2368ca43207.svg\"\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\u003ca href=\"https://github.com/instaloader/instaloader\"\u003eInstaloader\u003c/a\u003e\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003eWeb API simulation\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003ePython\u003c/td\u003e\n        \u003ctd\u003e\u003ca href=\"https://scriptsmith.github.io/instagram-speed-test\"\u003e\u003cimg src=\"https://firebasestorage.googleapis.com/v0/b/instagram-speed-test.appspot.com/o/instaloader.svg?alt=media\u0026token=e7b05b24-6c96-43b7-9e5e-4951f7b1d9ba\"\u003e\u003c/a\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/github/license/instaloader/instaloader.svg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/github/last-commit/instaloader/instaloader.svg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/github/issues/instaloader/instaloader.svg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/github/issues-closed/instaloader/instaloader.svg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/travis/instaloader/instaloader.svg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e:question:\u003c/td\u003e\n        \u003ctd\u003e:question:\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\u003ca href=\"https://github.com/althonos/InstaLooter\"\u003eInstalooter\u003c/a\u003e\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003eWeb API simulation\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003ePython\u003c/td\u003e\n        \u003ctd\u003e\u003ca href=\"https://scriptsmith.github.io/instagram-speed-test\"\u003e\u003cimg src=\"https://firebasestorage.googleapis.com/v0/b/instagram-speed-test.appspot.com/o/instalooter.svg?alt=media\u0026token=ed9564f5-6011-4090-95e7-2b80e7f6e41f\"\u003e\u003c/a\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/github/license/althonos/instalooter.svg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/github/last-commit/althonos/instalooter.svg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/github/issues/althonos/instalooter.svg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/github/issues-closed/althonos/instalooter.svg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/travis/althonos/InstaLooter.svg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/codecov/c/github/althonos/InstaLooter.svg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/codacy/grade/9b8c7da6887c4195b9e960cb04b59a91.svg\"\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\u003ca href=\"https://github.com/huaying/instagram-crawler\"\u003eInstagram crawler\u003c/a\u003e\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003eWeb DOM reading\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003ePython\u003c/td\u003e\n       \u003ctd\u003e:question:\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/github/license/huaying/instagram-crawler.svg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/github/last-commit/huaying/instagram-crawler.svg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/github/issues/huaying/instagram-crawler.svg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/github/issues-closed/huaying/instagram-crawler.svg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/travis/huaying/instagram-crawler.svg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e:question:\u003c/td\u003e\n        \u003ctd\u003e:question:\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\u003ca href=\"https://github.com/rarcega/instagram-scraper\"\u003eInstagram Scraper\u003c/a\u003e\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003eWeb API simulation\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003ePython\u003c/td\u003e\n        \u003ctd\u003e\u003ca href=\"https://scriptsmith.github.io/instagram-speed-test\"\u003e\u003cimg src=\"https://firebasestorage.googleapis.com/v0/b/instagram-speed-test.appspot.com/o/instagram-scraper.svg?alt=media\u0026token=ecdf626f-e3fd-4959-b047-5b13f244370b\"\u003e\u003c/a\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/github/license/rarcega/instagram-scraper.svg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/github/last-commit/rarcega/instagram-scraper.svg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/github/issues/rarcega/instagram-scraper.svg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/github/issues-closed/rarcega/instagram-scraper.svg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/travis/rarcega/instagram-scraper.svg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e:question:\u003c/td\u003e\n        \u003ctd\u003e:question:\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\u003ca href=\"https://github.com/ping/instagram_private_api\"\u003eInstagram Private API\u003c/a\u003e\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003eApp and Web API simulation\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003ePython\u003c/td\u003e\n        \u003ctd\u003e:question:\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/github/license/ping/instagram_private_api.svg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/github/last-commit/ping/instagram_private_api.svg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/github/issues/ping/instagram_private_api.svg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/github/issues-closed/ping/instagram_private_api.svg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/travis/ping/instagram_private_api.svg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e:question:\u003c/td\u003e\n        \u003ctd\u003e:question:\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\u003ca href=\"https://github.com/postaddictme/instagram-php-scraper\"\u003eInstagram PHP Scraper\u003c/a\u003e\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003e:heavy_check_mark:\u003c/td\u003e\n        \u003ctd\u003eWeb API simulation\u003c/td\u003e\n        \u003ctd\u003e:x:\u003c/td\u003e\n        \u003ctd\u003ePHP\u003c/td\u003e\n        \u003ctd\u003e:question:\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/github/license/postaddictme/instagram-php-scraper.svg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/github/last-commit/postaddictme/instagram-php-scraper.svg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/github/issues/postaddictme/instagram-php-scraper.svg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"https://img.shields.io/github/issues-closed/postaddictme/instagram-php-scraper.svg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e:question:\u003c/td\u003e\n        \u003ctd\u003e:question:\u003c/td\u003e\n        \u003ctd\u003e:question:\u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FScriptSmith%2Finstamancer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FScriptSmith%2Finstamancer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FScriptSmith%2Finstamancer/lists"}