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