Download the PHP package rastographer/igdownloader without Composer

On this page you can find all versions of the php package rastographer/igdownloader. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package igdownloader

Laravel IG Downloader

rastographer/igdownloader is a Laravel package for extracting Instagram media metadata and serving that media through signed Laravel routes.

The package currently provides:

The package does not currently provide:

Compatibility

This package currently supports:

This is based on the package composer.json. The package is not declared compatible with Laravel 10, Laravel 11, or Laravel 12.

Package Status

Current implementation status:

Prerequisites

Before installing the package into any Laravel application, confirm the following:

  1. The application runs on PHP 8.3 or newer.
  2. The application runs on Laravel 13.
  3. The application can make outbound HTTPS requests to Instagram and the media CDN hosts.
  4. The application has a working cache store.
  5. The application can generate signed URLs.
  6. The application has a writable storage path for normal Laravel runtime operations.

Additional prerequisites when proxy rotation is required:

  1. You must provide a ProxyResolver implementation.
  2. If that resolver reads from the database, the host application must own the schema and migrations for that proxy storage.

Installation

Option 1: Local path repository

This is the current installation method used in this repository.

Add a path repository to the host application's composer.json:

Then install it:

Option 2: Standard Composer install

Use this after the package is moved to a VCS repository or Packagist.

Service Provider Registration

The package uses Laravel package auto-discovery.

You do not need to manually register Rastographer\IgDownloader\IgDownloaderServiceProvider if Composer package discovery is working.

Publishing Configuration

Publish the package config with:

This publishes the config to:

Configuration Reference

Default configuration lives in config/igdownloader.php.

routes

Important: with the current default prefix of '', the package registers these paths directly at the application root:

If the host application already uses those paths, set a prefix such as ig.

cache

http

security

This is a mandatory security boundary. Only URLs matching these hosts are allowed to be streamed through the package routes.

logging

Environment variable:

proxy

strategies

Current default order:

When a consuming application has an older published igdownloader config, the service provider appends any missing built-in strategies automatically so story/profile support can still resolve without a config crash.

Environment Variables

The current host config supports these environment variables:

Registered Routes

When routes are enabled, the package registers:

If routes.prefix is set to ig, the effective URLs become:

Route Contracts

POST igdownloader.fetch

Expected request payload:

Validation rules:

Supported URL categories now include:

Current successful response shape:

Current error response shape:

Possible error codes currently returned by the package controller:

GET igdownloader.preview

This route streams an image-like preview response inline.

Requirements:

GET igdownloader.download

This route streams a file download response.

Requirements:

Programmatic Usage

Parse a URL

Returned shape:

Fetch media by shortcode

Downloader::fetch() remains the shortcode-oriented contract. For story, highlight, and profile URLs, prefer the URL-based action below.

Use the package action

Proxy Integration

The package supports two proxy models:

  1. Static config pool using proxy.pool
  2. Custom resolver via proxy.resolver

Custom resolver contract

Implement:

Contract methods:

Example: database-backed resolver

This repository currently provides one at app/IgDownloader/DatabaseProxyResolver.php.

It selects enabled proxies from the host application's proxies table and updates:

Important: the package does not ship the proxies table migration. That schema belongs to the host application.

Security Model

The package is designed to avoid exposing raw upstream URLs directly to the frontend.

Security controls currently implemented:

You should not disable allowed_hosts checking in production.

Logging

The package logs extraction attempts, hits, misses, exceptions, and fetch success summaries through the configured Laravel log channel.

If your application does not define a dedicated instagram channel, point IGDL_LOG_CHANNEL to an existing channel such as stack or stderr.

Testing

The package includes tests under packages/rastographer/igdownloader/tests.

If you are running the package tests against a consuming Laravel application bootstrap, point the package test harness at that application:

In this workspace, the tests were run against the snapigdownloader host app bootstrap.

Updating the Package

If installed as a local path repository

The host application uses the working tree directly. Update process:

  1. Change the package code under packages/rastographer/igdownloader
  2. Run:

  3. Re-run the relevant tests.

If installed from VCS or Packagist

If the package introduces new config keys, republish or manually merge config changes:

Use --force carefully because it overwrites the published config file.

Releasing a New Version

Recommended release workflow:

  1. Update package code.
  2. Update package tests.
  3. Update version in the package composer.json.
  4. Tag the release in the package repository.
  5. Update consuming applications to the new version constraint.

Current Limitations

These are current, precise limitations of the package as implemented today:

Recommended Production Requirements

For production use, the consuming application should provide:

  1. A stable cache backend such as Redis or Memcached.
  2. A dedicated log channel.
  3. A proxy resolver if upstream request rotation is required.
  4. Monitoring for upstream rate limits and extraction failures.
  5. A controlled route prefix if /fetch, /img, or /dl conflict with existing application routes.

File Map

Core package entry points:

Host application integration example:

Thank you!


All versions of igdownloader with dependencies

PHP Build Version
Package Version
Requires php Version ^8.3
illuminate/cache Version ^13.0
illuminate/contracts Version ^13.0
illuminate/http Version ^13.0
illuminate/routing Version ^13.0
illuminate/support Version ^13.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package rastographer/igdownloader contains the following files

Loading the files please wait ...