Fix Instagram video embeds in Discord and other apps

What is VxInst?

VxInst is an open-source, blazing fast server that scrapes the direct URL to a video from Instagram's CDN to fix embedding in apps like Discord.

VxInst embed demo

An instagram video properly embedding in Discord

How to Use VxInst

Using VxInst is incredibly simple. Just add vx to Instagram URLs like so:

https://vxinstagram.com/...

Easy to Use

Simply add "vx" to any Instagram URL to get proper video embeds.

Open Graph Support

VxInst provides Open Graph embeds for better preview on various platforms.

Quick Loading

VxInst loads quickly, ensuring smooth and efficient video embedding with minimal delays.

Lightweight

VxInst is lightweight and uses very little RAM and CPU to function making it perfect for home servers.

Long Cache Times

Processed posts are kept in cache for long perdiods of time to speed up repeated requests (like when you want to share a post with multiple friends at once!).

Easy Configuration

Setting up VxInst is hassle-free, with flag or environment variables based configuration.

Self-Hosting Options

VxInst can be self-hosted on various platforms:

🍏 Mac and Linux 🐧

You can either compile the binary from source or download a precompiled binary from the releases tab.

Compilation

# Clone the repository
git clone --depth=1 https://github.com/Reishimanfr/VxInst

# Cd into the directory
cd VxInst

# Compile the code
go build -ldflags "-s -w" -tags=jsoniter -o vxinsta
🪟 Windows

There are no precompiled binaries for Windows meaning you'll need to compile the code from source.

# Clone the repository
git clone --depth=1 https://github.com/Reishimanfr/VxInst

# Cd into the directory
cd VxInst

# Compile the code
go build -ldflags "-s -w" -tags=jsoniter -o vxinsta.exe
🐋 Docker
# Copy the example docker-compose file
cp docker-compose.yml.example docker-compose.yml

# Edit the docker-compose file
vim docker-compose.yml

# Start the container
docker-compose up -d

⚙️ Configuration

The server can be configured using either command-line flags or environment variables. Flags take precedence over environment variables.

Flag Environment Variable Default Description
--port PORT 8080 Port to run the server on
--gin-logs GIN_LOGS false Enable gin debug logs
--secure SECURE false Use a secure connection
--log-level LOG_LEVEL info Logging verbosity level [debug, error, warn, info]
--cert-file CERT_FILE Path to the SSL certificate (needed with secure mode)
--key-file KEY_FILE Path to the SSL key (needed with secure mode)
--sentry-dsn SENTRY_DSN Sentry DSN used for telemetry
--cache-lifetime CACHE_LIFETIME 60 Time to keep cache for (in minutes)
--memory-lifetime MEMORY_LIFETIME 7 Time to keep memory cache for (in days)
--redis-enable REDIS_ENABLE false Enables redis for caching (memory if set to false)
--redis-address REDIS_ADDR Address to redis database
--redis-passwd REDIS_PASSWD Password for redis database
--redis-db REDIS_DB -1 Redis database to use
--proxies PROXIES Proxies to make request with. Provide multiple to cycle
--proxy-scrape-html PROXY_SCRAPE_HTML false Sets if proxies should scrape HTML. May use up bandwidth
--insta-cookie INSTA_COOKIE User cookie for API calls with for age restricted posts
--insta-xigappid INSTA_XIGAPPID X-IG-App-ID for API calls
--insta-browser-agent INSTA_BROWSER_AGENT * Mozilla/5.0 (X11; Linux x86_64; rv:135.0) Gecko/20100101 Firefox/135.0

📚 Examples on Running VxInst

Run on the default port with no TLS

./vxinsta

Run with TLS enabled, a proxy attached, redis for cache and instagram credentials (recommended)

./vxinsta \
        --secure
        --cert-file="/path/to/your/ssl/certificate"
        --key=file="/path/to/your/ssl/key"
        --proxies="http://yourproxyiphere:someport"
        --redis-enable
        --redis-address="127.0.0.1:6379"
        --redis-passwd="my_very_safe_password"
        --redis-db=0
        --insta-cookie="your instagram cookie here"
        --insta-xigappid="x-ig-app-id here"

📋 Roadmap

Here's what I'm working on for future releases:

Need Help?

If you're experiencing issues or have questions, here are some ways to get support:

Join Discord

Get real-time support from the community and developers in our Discord server.

Join Discord

GitHub Issues

Report bugs or request features through our GitHub issue tracker.

Open Issue