InstaScrapex

Scrapes Instagram JSON and HTML endpoints without and API key

Use at your own risk

Installation

  1. Add insta_scrapex to your list of dependencies in mix.exs:

    def deps do [{:insta_scrapex, “~> 0.4.0”}] end

  2. Ensure insta_scrapex is started before your application:

    def application do [applications: [:insta_scrapex]] end

Usage

All functions return a map in the response[:body] Functions wrap HTTPoison.get!/3 so you can pass headers and other options to them

JSON endpoints

  iex> InstaScrapex.JSON.get_account!("nasa")
  %HTTPoison.Response{body: %{}, ...}
  iex> InstaScrapex.JSON.get_media!("BKgPf5ZgP97")
  %HTTPoison.Response{body: %{}, ...}
  iex> InstaScrapex.JSON.get_account_media!("nasa")
  %HTTPoison.Response{body: %{}, ...}
  # paginate:
  iex> InstaScrapex.JSON.get_account_media!("nasa", [], [params: [max_id: 12341234]])
  %HTTPoison.Response{body: %{}, ...}
  iex> InstaScrapex.JSON.get_media_comments!(%{code: "BKgPf5ZgP97"})
  %HTTPoison.Response{body: %{}, ...}
  #-- or --
  :no_comments
  # paginate:
  iex> InstaScrapex.JSON.get_media_comments!(%{"BKgPf5ZgP97", last_comment_id: 12341234})
  %HTTPoison.Response{body: %{}, ...}
  iex> InstaScrapex.JSON.get_media_by_hashtag!(%{hashtag: "my_hashtag"})
  %HTTPoison.Response{body: %{}, ...}
  # paginate:
  iex> InstaScrapex.JSON.get_media_by_hashtag!(%{hashtag: "my_hashtag", end_cursor: "ABCDFEGHIJKL"})
  %HTTPoison.Response{body: %{}, ...}
  # Good for getting posts by user_id, maybe you don't have the correct username...
  iex> InstaScrapex.JSON.get_media_by_user_id!(%{user_id: 12345})
  %HTTPoison.Response{body: %{}, ...}
  # Get location by location id
  iex> InstaScrapex.JSON.get_location!(12342134)
  %HTTPoison.Response{body: %{}, ...}
  # Get posts by location id
  iex> InstaScrapex.JSON.get_media_by_location!(12342134)
  %HTTPoison.Response{body: %{}, ...}
  # Search for hashtags, places, users
  iex> InstaScrapex.JSON.get_search!(%{hashtag: "my_hashtag"})
  %HTTPoison.Response{body: %{}, ...}

HTML endpoints

  iex> InstaScrapex.HTML.get_account!("nasa")
  %HTTPoison.Response{body: %{}, ...}
  iex> InstaScrapex.HTML.get_media!("BKgPf5ZgP97")
  %HTTPoison.Response{body: %{}, ...}

License

InstaScrapex is released into the public domain. See [UNLICENSE](http://unlicense.org/) for more information or the accompanying UNLICENSE file.

Support

The development of this software is supported by VeryCreatives LLC.