AI prompts
base on Osintgram is a OSINT tool on Instagram. It offers an interactive shell to perform analysis on Instagram account of any users by its nickname # Osintgram 🔎📸
[![version-1.3](https://img.shields.io/badge/version-1.3-green)](https://github.com/Datalux/Osintgram/releases/tag/1.3)
[![GPLv3](https://img.shields.io/badge/license-GPLv3-blue)](https://img.shields.io/badge/license-GPLv3-blue)
[![Python3](https://img.shields.io/badge/language-Python3-red)](https://img.shields.io/badge/language-Python3-red)
[![Telegram](https://img.shields.io/badge/Telegram-Channel-blue.svg)](https://t.me/osintgram)
[![Docker](https://img.shields.io/badge/Docker-Supported-blue)](https://img.shields.io/badge/Docker-Supported-blue)
Osintgram is an **OSINT** tool on Instagram to collect, analyze, and run reconnaissance.
<p align="center">
<img align="center" src=".img/carbon.png" width="900">
</p>
Disclaimer: **FOR EDUCATIONAL PURPOSE ONLY! The contributors do not assume any responsibility for the use of this tool.**
Warning: It is advisable to **not** use your own/primary account when using this tool.
## Tools and Commands 🧰
Osintgram offers an interactive shell to perform analysis on Instagram account of any users by its nickname. You can get:
```text
- addrs Get all registered addressed by target photos
- captions Get user's photos captions
- comments Get total comments of target's posts
- followers Get target followers
- followings Get users followed by target
- fwersemail Get email of target followers
- fwingsemail Get email of users followed by target
- fwersnumber Get phone number of target followers
- fwingsnumber Get phone number of users followed by target
- hashtags Get hashtags used by target
- info Get target info
- likes Get total likes of target's posts
- mediatype Get user's posts type (photo or video)
- photodes Get description of target's photos
- photos Download user's photos in output folder
- propic Download user's profile picture
- stories Download user's stories
- tagged Get list of users tagged by target
- wcommented Get a list of user who commented target's photos
- wtagged Get a list of user who tagged target
```
You can find detailed commands usage [here](doc/COMMANDS.md).
[**Latest version**](https://github.com/Datalux/Osintgram/releases/tag/1.3) |
[Commands](doc/COMMANDS.md) |
[CHANGELOG](doc/CHANGELOG.md)
## FAQ
1. **Can I access the contents of a private profile?** No, you cannot get information on private profiles. You can only get information from a public profile or a profile you follow. The tools that claim to be successful are scams!
2. **What is and how I can bypass the `challenge_required` error?** The `challenge_required` error means that Instagram notice a suspicious behavior on your profile, so needs to check if you are a real person or a bot. To avoid this you should follow the suggested link and complete the required operation (insert a code, confirm email, etc)
## Installation ⚙️
1. Fork/Clone/Download this repo
`git clone https://github.com/Datalux/Osintgram.git`
2. Navigate to the directory
`cd Osintgram`
3. Create a virtual environment for this project
`python3 -m venv venv`
4. Load the virtual environment
- On Windows Powershell: `.\venv\Scripts\activate.ps1`
- On Linux and Git Bash: `source venv/bin/activate`
5. Run `pip install -r requirements.txt`
6. Open the `credentials.ini` file in the `config` folder and write your Instagram account username and password in the corresponding fields
Alternatively, you can run the `make setup` command to populate this file for you.
7. Run the main.py script in one of two ways
* As an interactive prompt `python3 main.py <target username>`
* Or execute your command straight away `python3 main.py <target username> --command <command>`
### Use Osintgram v2 (beta)
You can use Osintgram2 beta just switching to `v2` [branch](https://github.com/Datalux/Osintgram/tree/v2).
The v2 has some improvements and is faster with a new command execution interface. Try it just running `git checkout v2`.
## Docker Quick Start 🐳
This section will explain how you can quickly use this image with `Docker` or `Docker-compose`.
### Prerequisites
Before you can use either `Docker` or `Docker-compose`, please ensure you do have the following prerequisites met.
1. **Docker** installed - [link](https://docs.docker.com/get-docker/)
2. **Docker-composed** installed (if using Docker-compose) - [link](https://docs.docker.com/compose/install/)
3. **Credentials** configured - This can be done manually or by running the `make setup` command from the root of this repo
**Important**: Your container will fail if you do not do step #3 and configure your credentials
### Docker
If docker is installed you can build an image and run this as a container.
Build:
```bash
docker build -t osintgram .
```
Run:
```bash
docker run --rm -it -v "$PWD/output:/home/osintgram/output" osintgram <target>
```
- The `<target>` is the Instagram account you wish to use as your target for recon.
- The required `-i` flag enables an interactive terminal to use commands within the container. [docs](https://docs.docker.com/engine/reference/commandline/run/#assign-name-and-allocate-pseudo-tty---name--it)
- The required `-v` flag mounts a volume between your local filesystem and the container to save to the `./output/` folder. [docs](https://docs.docker.com/engine/reference/commandline/run/#mount-volume--v---read-only)
- The optional `--rm` flag removes the container filesystem on completion to prevent cruft build-up. [docs](https://docs.docker.com/engine/reference/run/#clean-up---rm)
- The optional `-t` flag allocates a pseudo-TTY which allows colored output. [docs](https://docs.docker.com/engine/reference/run/#foreground)
### Using `docker-compose`
You can use the `docker-compose.yml` file this single command:
```bash
docker-compose run osintgram <target>
```
Where `target` is the Instagram target for recon.
Alternatively, you may run `docker-compose` with the `Makefile`:
`make run` - Builds and Runs with compose. Prompts for a `target` before running.
### Makefile (easy mode)
For ease of use with Docker-compose, a `Makefile` has been provided.
Here is a sample work flow to spin up a container and run `osintgram` with just two commands!
1. `make setup` - Sets up your Instagram credentials
2. `make run` - Builds and Runs a osintgram container and prompts for a target
Sample workflow for development:
1. `make setup` - Sets up your Instagram credentials
2. `make build-run-testing` - Builds an Runs a container without invoking the `main.py` script. Useful for an `it` Docker session for development
3. `make cleanup-testing` - Cleans up the testing container created from `build-run-testing`
## Development version 💻
To use the development version with the latest feature and fixes just switch to `development` branch using Git:
`git checkout development`
and update to last version using:
`git pull origin development`
## Updating ⬇️
To update Osintgram with the stable release just pull the latest commit using Git.
1. Make sure you are in the master branch running: `git checkout master`
2. Download the latest version: `git pull origin master`
## Contributing 💡
You can propose a feature request opening an issue or a pull request.
Here is a list of Osintgram's contributors:
<a href="https://github.com/Datalux/Osintgram/graphs/contributors">
<img src="https://contributors-img.web.app/image?repo=Datalux/Osintgram" />
</a>
## External library 🔗
[Instagram API](https://github.com/ping/instagram_private_api)
", Assign "at most 3 tags" to the expected json: {"id":"6280","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"