n8n-nodes-instagram-private-api-wrapped
Version:
n8n community node for Instagram automation using private API capabilities
373 lines (276 loc) โข 14.2 kB
Markdown
# n8n-nodes-instagram-private-api

This is an n8n community node for Instagram automation using the instagram-private-api library. It provides comprehensive access to Instagram's private API capabilities for workflow automation.
> **๐จ v0.0.10 CRITICAL UPDATE**: This version now uses ONLY session data authentication for 100% reliability. Username/password login has been completely removed to prevent Instagram blocks. You MUST use the extract-session.sh script to obtain session data. See [AUTHENTICATION_GUIDE.md](./AUTHENTICATION_GUIDE.md) for details.
[n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.
[Installation](#installation)
[Operations](#operations)
[Credentials](#credentials)
[Compatibility](#compatibility)
[Usage](#usage)
[Resources](#resources)
[Version History](#version-history)
[Development](#development)
## Installation
Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.
### ๐ฆ **Install via npm**
```bash
# Latest version (recommended)
npm install n8n-nodes-instagram-private-api-wrapped@latest
# Specific version 0.0.10 (latest stable - session-only)
npm install n8n-nodes-instagram-private-api-wrapped@0.0.10
```
### ๐ **Updating from Previous Versions**
If upgrading from v0.0.9 or earlier:
```bash
# Uninstall old version
npm uninstall n8n-nodes-instagram-private-api-wrapped
# Install latest version
npm install n8n-nodes-instagram-private-api-wrapped@latest
# Restart n8n
npm run start
```
**๐จ BREAKING CHANGE in v0.0.10**:
- **Username/password authentication REMOVED** - only session data is supported
- **You MUST extract session data** using the new extract-session.sh script
- **All existing credentials need to be updated** with session data only
- **100% reliability** - no more Instagram authentication blocks
## Operations
This node provides the following operations organized by resource type:
### ๐ค **User Operations**
- **Get Profile Info**: Retrieve detailed Instagram profile information including follower count, bio, verification status
- **Search Users**: Search for users by username or query
- **Get Followers**: Retrieve list of user followers with user details
- **Get Following**: Retrieve list of accounts a user is following
### ๐ฑ **Media Operations**
- **Get User Media**: Retrieve user's posted media with metadata and engagement stats
- **Get Media Info**: Get detailed information about specific media posts
- **Like Media**: Like a specific post or media
- **Unlike Media**: Remove like from a specific post or media
### ๐ฐ **Feed Operations**
- **Get Timeline Feed**: Retrieve user's personal timeline feed with recent posts
## Credentials
This node requires Instagram session data configured through n8n's credential system:
- **Session Data** (Required): Pre-extracted Instagram session data in JSON format
- **Proxy URL** (Optional): HTTP proxy URL for requests
> **๐จ BREAKING CHANGE v0.0.10**: Username/password authentication has been completely removed. You MUST use session data for 100% reliability and to avoid Instagram blocks.
### ๐ **Session Data Authentication (ONLY METHOD)**
Starting from v0.0.10, session data is the ONLY supported authentication method:
1. **Extract Session Data**: Use the provided extract-session.sh script to obtain session data
2. **Configure Credentials**: Paste the session JSON into the "Session Data" field in your credentials
3. **No Username/Password**: These fields have been removed - session data provides complete authentication
**Benefits of Session-Only Authentication:**
- **100% reliability** - no more Instagram authentication blocks
- **Persistent authentication** across workflow runs
- **Zero bot detection** - uses legitimate session cookies
- **Faster execution** - no login process required
### ๐ **Security Considerations**
- Uses n8n's secure credential storage system
- Credentials are encrypted and never exposed in workflows
- Consider using a dedicated Instagram account for automation
- Be aware of Instagram's Terms of Service regarding automated access
## Compatibility
- **n8n Version**: 1.0+ (tested and compatible)
- **Node.js**: 18.17+ required
- **Instagram Private API**: ^1.45.3
## Usage
This node leverages the powerful `instagram-private-api` library to provide access to Instagram's internal APIs, enabling comprehensive automation capabilities.
### โจ **Key Features**
#### **User Management**
```javascript
// Get detailed user profile
{
"pk": "123456789",
"username": "example_user",
"full_name": "Example User",
"follower_count": 1500,
"following_count": 300,
"media_count": 85,
"is_verified": false,
"is_private": false,
"biography": "Content creator and photographer"
}
```
#### **Media Interaction**
- Access to post engagement data (likes, comments)
- Media metadata including dimensions, URLs, captions
- Automated liking/unliking capabilities
#### **Feed Access**
- Personal timeline content
- Real-time feed updates
- Engagement tracking
### ๐ **Example Workflows**
1. **Social Media Monitoring**: Track competitor follower growth and engagement
2. **Content Curation**: Automatically collect media from specific users
3. **Engagement Automation**: Like posts from target accounts (use responsibly)
4. **Analytics Collection**: Gather data for social media analysis
### โ ๏ธ **Important Considerations**
- **Rate Limiting**: Instagram enforces strict rate limits. Use appropriate delays between requests
- **Terms of Service**: Ensure compliance with Instagram's ToS when automating
- **Account Safety**: Consider using test accounts for development
- **API Stability**: Private APIs may change without notice
### ๐ **Best Practices**
- Implement proper error handling in your workflows
- Use realistic delays between API calls (2-5 seconds minimum)
- Monitor for rate limit responses and implement backoff strategies
- Keep credentials secure and rotate them regularly
## Troubleshooting
### ๐ง **Authentication Issues**
For detailed authentication troubleshooting, see [AUTHENTICATION_GUIDE.md](./AUTHENTICATION_GUIDE.md).
**๐จ v0.0.10 - SESSION DATA ONLY**:
Starting from v0.0.10, ONLY session data authentication is supported. This eliminates ALL Instagram authentication blocks.
**Quick setup:**
1. **Download script**: `curl -O https://[...]/extract-session.sh`
2. **Run script**: `./extract-session.sh`
3. **Copy session data** to n8n credentials
4. **100% reliability** - no more authentication errors
**Common issues:**
- **"Session data is required"**: You must use the extract-session.sh script
- **"Invalid session data"**: Session expired - re-run the extraction script
- **"Session expired"**: Re-extract session data using the script
**โ ๏ธ No More Username/Password**: Direct login has been completely removed to prevent Instagram blocks.
### ๐ง **Credential Issues**
If you see **"Node does not have any credentials set"**:
1. **Check Credential Name**: Ensure you're using **"Instagram API"** (not "Instagram Credentials")
2. **Recreate Credentials**:
- Go to Settings โ Credentials
- Create new **Instagram API** credential
- Fill in username, password, and optional proxy URL
3. **Node Configuration**:
- Select the newly created credential in your node
- Save and re-execute the workflow
### ๐ **Credential Configuration**
```json
// Session-Only Configuration (v0.0.10+)
{
"sessionData": "{\"cookies\":[...],\"sessionId\":\"...\"}", // Required - extracted session data
"proxyUrl": "http://proxy.example.com:8080" // Optional
}
```
### ๐ก **Getting Session Data (REQUIRED)**
To use this node, you MUST extract session data using our simple shell script:
**Easy Setup (v0.0.10+ with shell script):**
```bash
# 1. Download the extraction script
curl -O https://raw.githubusercontent.com/tiagohintz/n8n-nodes-instagram-private-api-wrapped/main/extract-session.sh
# 2. Make it executable
chmod +x extract-session.sh
# 3. Run the script (it will handle everything automatically)
./extract-session.sh
```
**What the script does:**
- โ
Automatically installs required dependencies
- โ
Prompts for your Instagram credentials
- โ
Safely extracts session data
- โ
Provides formatted output for n8n credentials
- โ
Includes comprehensive error handling and solutions
โ ๏ธ **IMPORTANT**: Always run session extraction OUTSIDE of n8n on your local machine.
### ๐ **Error Handling**
- **Authentication Failed**: Check username/password, consider 2FA issues
- **Rate Limited**: Add delays between requests (2-5 seconds)
- **API Changes**: Update to latest version if Instagram API changes
## Resources
* [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)
* [Instagram Private API GitHub](https://github.com/dilame/instagram-private-api)
* [Instagram Private API Documentation](https://github.com/dilame/instagram-private-api/tree/master/docs)
* [n8n Workflow Examples](https://n8n.io/workflows/)
## Version History
* **0.0.10** (Current):
- ๐จ **BREAKING CHANGE**: Removed username/password authentication completely
- โ
**SESSION-ONLY AUTHENTICATION**: 100% reliability, zero Instagram blocks
- โ
Simple shell script (extract-session.sh) for easy session extraction
- โ
Automatic dependency installation in extraction script
- โ
Enhanced error handling and step-by-step guidance in script
- โ
Simplified credential configuration (session data + optional proxy only)
- โ
Updated InstagramClient to use only session data authentication
- โ
Removed all fallback to username/password login
- โ
Complete elimination of Instagram bot detection issues
- โ
Production-grade authentication system with zero maintenance
* **0.0.9**:
- ๐จ **CRITICAL AUTHENTICATION FIXES**: Complete solution for Instagram authentication blocks
- โ
Enhanced session data authentication as primary method (99% reliability)
- โ
Complete AUTHENTICATION_GUIDE.md rewrite with emergency recovery protocols
- โ
Interactive session extraction script (extract-session.js) with error handling
- โ
Improved InstagramClient with session data prioritization over direct login
- โ
Comprehensive error messages with specific solutions for each Instagram error
- โ
Emergency recovery checklist for multiple authentication failures
- โ
Timeline-based recovery protocols (immediate, short-term, long-term)
- โ
Production-grade authentication system that avoids Instagram bot detection
- โ
Ready-to-use session extraction script with step-by-step guidance
* **0.0.8**:
- ๐ฆ **PRODUCTION OPTIMIZATION**: Enhanced package stability and documentation
- โ
Updated package.json configuration for better npm compatibility
- โ
Improved dependency management and peer dependencies
- โ
Enhanced documentation with session data authentication guide
- โ
Optimized build process and asset handling
- โ
Comprehensive troubleshooting documentation
- โ
Final validation and testing of all components
- โ
Production-ready release with improved reliability
* **0.0.7**:
- ๐ **MAJOR AUTHENTICATION IMPROVEMENTS**: Enhanced Instagram login reliability
- โ
Added pre/post login flow simulation for better bot detection avoidance
- โ
Implemented retry authentication with exponential backoff
- โ
Enhanced error handling with specific Instagram error messages
- โ
Added session data support for persistent authentication
- โ
Improved credential fields with session data option
- โ
Better error messages for challenge_required, checkpoint_required
- โ
Created comprehensive AUTHENTICATION_GUIDE.md
- โ
More robust handling of rate limiting and bot detection
* **0.0.6**:
- ๐ง **CRITICAL FIX**: Resolved credential configuration issues in n8n
- โ
Fixed inconsistent credential naming (`instagramCredentials` โ `instagramApi`)
- โ
Added optional `proxyUrl` field to credentials for proxy support
- โ
Improved credential descriptions and field validation
- โ
Enhanced credential display name for better UX
- โ
Corrected export configuration for proper n8n integration
- โ
Validated credential flow from configuration to node execution
- โ
Clean build process with unnecessary files removed
* **0.0.5**:
- โ
Full TypeScript implementation with comprehensive type safety
- โ
Complete InstagramClient with all essential methods
- โ
Proper authentication flow and error handling
- โ
Instagram SVG icon integration
- โ
Support for user operations (profile, search, followers, following)
- โ
Support for media operations (get media, like/unlike, media info)
- โ
Support for feed operations (timeline feed)
- โ
Automated asset copying in build process
- โ
Comprehensive test suite with integration tests
- โ
Production-ready build and deployment
* **0.0.4**: Core functionality implementation and bug fixes
* **0.0.3**: Initial TypeScript structure and basic operations
* **0.0.2**: Template refinement and dependency management
* **0.0.1**: Initial template implementation
## Development
To work with this node locally:
```bash
# Install dependencies
npm install
# Build the node
npm run build
# Run in development mode with file watching
npm run dev
# Run linting
npm run lint
# Run linting with auto-fix
npm run lint:fix
# Run tests
npm test
# Format code
npm run format
```
### ๐ **Build Process**
The build process includes:
- TypeScript compilation
- Automatic copying of SVG assets
- Type declaration generation
- Source map generation (optional)
### ๐งช **Testing**
The project includes:
- Unit tests for core functionality
- Integration tests for API methods
- Type safety validation
- Error handling verification
## License
[MIT](https://github.com/tiagohintz/n8n-nodes-instagram-private-api/blob/master/LICENSE.md)
---
**Made with โค๏ธ for the n8n community**