Fix Instagram video embeds in Discord and other apps
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.
Using VxInst is incredibly simple. Just add vx
to Instagram URLs like so:
https://vxinstagram.com/...
Simply add "vx" to any Instagram URL to get proper video embeds.
VxInst provides Open Graph embeds for better preview on various platforms.
VxInst loads quickly, ensuring smooth and efficient video embedding with minimal delays.
VxInst is lightweight and uses very little RAM and CPU to function making it perfect for home servers.
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!).
Setting up VxInst is hassle-free, with flag or environment variables based configuration.
VxInst can be self-hosted on various platforms:
You can either compile the binary from source or download a precompiled binary from the releases tab.
# 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
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
# 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
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 |
./vxinsta
./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"
Here's what I'm working on for future releases:
If you're experiencing issues or have questions, here are some ways to get support:
Get real-time support from the community and developers in our Discord server.
Join Discord