
Osintgram은 Instagram용 OSINT 도구입니다. 사용자의 닉네임을 통해 모든 사용자의 Instagram 계정을 분석할 수 있는 대화형 셸을 제공합니다.
인스타그램 계정을 지정하면 그 뒤에 누가 있는지 알아낼 수 있습니다. Osintgram은 공개 프로필이 드러내는 모든 것 — 팔로워, 캡션, 해시태그, 위치 정보가 포함된 장소, 게시 습관, 공개 연락처 — 을 수집하고 상호 참조하여 자신의 컴퓨터에서 실행하는 웹 인터페이스에 정리해 보여줍니다.
평범한 언어로 질문하면 로컬 AI 모델이 어떤 조회를 실행할지 판단합니다. 아니면 그렇게 하지 않아도 됩니다: 직접 명령을 선택하고 모델을 완전히 건너뛰세요.
명령이 아니라 질문에 답합니다. "팔로워가 몇 명이고 가장 많이 사용하는 해시태그는 무엇인가요?" 라고 물으면 세 가지 조회를 실행하고 서면 답변을 돌려줍니다 — 그리고 그 아래에 원시 결과도 함께 제공하므로, 산문을 믿는 대신 직접 검증할 수 있습니다.
조회 자체를 제외하면 아무것도 컴퓨터를 떠나지 않습니다. AI는
Ollama를 통해 로컬에서 실행됩니다: OpenAI 키도, 구독도,
누구에게도 전송되는 프롬프트도 없습니다. 인터페이스는 127.0.0.1에서
제공됩니다.
검색을 실행하기 전에 비용이 얼마인지 알려줍니다. 인스타그램 데이터는 공짜가 아니며, 대부분의 도구는 비싼 방식으로 그 사실을 알게 합니다. 이 도구는 선택한 항목의 가격을 미리 책정하고, 남은 크레딧을 보여주며, 모든 요청을 캐시하여 같은 조회에 두 번 비용을 지불하지 않게 하고, 실행을 제한하거나 중단할 수 있게 합니다 — 브라우저뿐 아니라 서버 측에서도요.
찾은 것을 제대로 보여줍니다. 필터링 가능한 그리드의 게시물 썸네일, 지도 위의 위치 정보가 포함된 장소, 누군가 게시하는 시점을 나타내는 요일 × 시간 히트맵, 두 계정 간의 비교. JSON의 벽이 아닙니다 — 물론 모든 카드에서 JSON은 클릭 한 번이면 볼 수 있습니다.
결과를 다른 사람에게 넘길 수 있습니다. 버튼 하나로 완료된 검색을 서버도 Osintgram도 없이 모든 브라우저에서 열리는 독립형 HTML 보고서로 바꿉니다.
AI 모드 — 원하는 것을 설명하세요. 로컬 모델이 명령을 선택하고, 실행하고, 요약합니다. 아래와 동일한 목록에서만 선택할 수 있으며, 조회를 만들어내거나 데이터를 조작할 수 없습니다.
베이스 모드 — 모델도, Ollama도 필요 없습니다. 28개의 모든 명령을 한 줄씩, 그룹화되고 검색 가능하게 제공합니다. 원하는 것을 체크하고, 매개변수를 설정하고, 순서대로 실행하세요.
AI 모드에서 사용자 이름을 비워 두고 해시태그나 장소에 대해서만 질문할 수도 있습니다 — 그런 검색은 어떤 계정에도 속하지 않습니다.
스토리, 하이라이트, 프로필 사진은 직접 CDN 링크로 반환됩니다 — 그리고 미디어가 포함된 모든 카드는 원본의 원클릭 zip을 제공합니다.
pip install -r requirements.txt
uvicorn src.web.app:app --host 127.0.0.1 --port 8000 --reload # or: make run
http://127.0.0.1:8000 을 여세요.
데이터 백엔드가 필요합니다. 페이지는 HikerAPI 키를 직접 붙여넣을 수 있는 패널에서 열립니다 — 수락되기 전에 검증되며, 다음 번을 위해 저장할 수 있습니다. (무료 instagrapi 로그인도 작동합니다. 자신의 인스타그램 계정을 사용하세요 — 장단점은 가이드를 참조하세요.)
AI 모드의 경우 Ollama를 설치하고 도구 호출이 가능한 모델을 받으세요:
ollama pull llama3.1:8b # ~4.7 GB, the default
베이스 모드는 이것 없이도 작동합니다.
컨테이너를 선호하시나요?
docker compose up --build # or: make docker
같은 주소, 같은 동작 — 127.0.0.1에서만 게시됩니다. 키, 캐시, 저장된 검색은
호스트의 config/, cache/, dossier/에 남아 있으며, 이미지 안에는 절대
들어가지 않습니다. AI 모드는 호스트에서 실행 중인 Ollama에 접속합니다.
$${\color{red}Warning:}$$ 이것은 인증 없이
127.0.0.1에서 실행됩니다. 자신의 컴퓨터에서 실행되도록 만들어졌습니다 — 먼저 인증 계층을 앞에 두지 않고 localhost 너머로 노출하지 마세요.
doc/web-ui.md두 백엔드의 설정, 매개변수와 비용이 포함된 모든 명령, 지출을 줄이는 방법, 결과 내보내기 및 공유, 모든 구성 옵션, 문제 해결.
교육 목적으로만 사용하세요. 기여자들은 이 도구의 사용에 대해 어떠한 책임도 지지 않습니다.
config/credentials.ini를 절대 커밋하지 마세요 — API 키와 인스타그램
자격 증명이 거기에 있습니다. git-ignore되어 있으니 그대로 유지하세요. 키가
한 번이라도 푸시된 적이 있다면 교체하세요: 파일을 삭제해도 기록에서
제거되지 않습니다.pip install -r requirements-dev.txt
python -m pytest
테스트 스위트는 전적으로 합성 픽스처에 대해 실행됩니다 — API 키도, 할당량도, 네트워크도 필요 없습니다. 또한 문서가 코드에서 벗어나지 않았는지도 확인합니다.
기능 요청과 풀 리퀘스트를 환영합니다 — 이슈를 열어주세요. 보안 문제를 발견하셨나요? 대신 비공개로 보고해 주세요: SECURITY.md를 참조하세요.
Osintgram은 Giuseppe Criscione(Datalux)이 작성했습니다. 버전 2.0은 웹 인터페이스와 재사용 가능한 서비스 계층을 중심으로 재구축되었으며, AI 모드, 비용 제어, 최신 분석을 추가했습니다 — 변경 로그를 참조하세요.
첫 릴리스 이후 기여해 주신 모든 분들께 큰 빚을 지고 있습니다:
인스타그램 데이터는 HikerAPI 또는 instagrapi에서 가져옵니다. 지오코딩은 Nominatim / OpenStreetMap. 지도는 Leaflet. 로컬 모델은 Ollama를 통해.
GPL-3.0 라이선스로 배포됩니다.
Instagram은 Meta Platforms, Inc.의 상표입니다. 이 프로젝트는 Meta와 제휴하거나, 보증받거나, 승인받지 않았습니다.
| 프로필 | 자기소개와 그 안의 모든 링크, 팔로워/팔로잉/게시물 수, 카테고리, 공개 이메일, 전화번호, 좌표까지 포함된 사업장 주소, 연결된 Facebook id — 그리고 인스타그램 자체의 이 계정 정보: 등록 국가, 생성 날짜, 사용자 이름이 변경된 횟수 |
| 네트워크 | 팔로워와 팔로잉, 인스타그램이 관련 있다고 제안하는 계정, 누가 그들을 태그했는지, 그들이 누구를 태그했는지, 누가 가장 많이 댓글을 다는지 — 그리고 두 계정 간의 상호 연결 |
| 콘텐츠 | 사용량 순으로 정렬된 해시태그, 캡션, 모든 댓글, 좋아요 및 댓글 통계, 조회수와 유료 파트너십이 포함된 사진/동영상/캐러셀 분석, 게시 시간 히트맵, 지도 위의 위치 정보가 포함된 장소, 사진 대체 텍스트 |
| 연락처 | 대상의 팔로워 또는 팔로잉 중 공개 이메일과 전화번호 |
| 대상 불필요 | 해시태그(상위 또는 최신)로 또는 장소에서 게시된 게시물, 그리고 누가 게시했는지 |