Skip to content

bitwise74/vxinst

Folders and files

NameName
Last commit message
Last commit date

Latest commit

7e05a7d Β· Mar 27, 2025

History

96 Commits
Mar 25, 2025
Mar 27, 2025
Mar 25, 2025
Mar 25, 2025
Mar 27, 2025
Mar 27, 2025
Mar 25, 2025
Mar 25, 2025
Feb 9, 2025
Mar 25, 2025
Mar 25, 2025
Mar 25, 2025
Mar 25, 2025
Mar 25, 2025

Repository files navigation

This project is not associated with Instagram or Meta in any way.

What is this?

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.

Tip

If you're looking for the public API stuff, go to the wiki

How can I use it?

Simply add vx to instagram URLs like so:

https://vxinst.com/...

This will attempt to embed the instagram video:
image

Tip

Clicking the VxInst URL will redirect you to the original post

Self-hosting

🍏 Mac and Linux 🐧

Click to show

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

Check out the examples on how to run VxInst

πŸͺŸ Windows

Click to show

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 vxinst.exe

πŸ‹ Docker

Click to show
# 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 * <Firefox, Linux, X11>

* = 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

./vxinst

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

./vxinst \
        --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"

πŸ“‹ Task list

  • Find a way to fix some reels not embedding
  • Add Open Graph embeds to videos
  • Add additional info (like the amount of likes) to the Open Graph embed
  • Add monitoring dashboard capabilities
  • Create deployment scripts (for docker and some services)
  • Create an action to automatically compile the binary and release it
  • Fix reels with usernames at the beginning not working (/:username/reel/:postId)