Instagrab é um projeto para baixar posts públicos do Instagram em lote ou individualmente, armazenar metadados (legenda, hashtags, status) em um banco local SQLite e exibir os resultados em uma interface web estática moderna.
-
Download de posts
- Baixa imagens e vídeos de posts, incluindo carrosséis
- Salva legenda em arquivo
.txte mídias em pastas organizadas por perfil e shortcode - Suporte a operação em lote via arquivo de URLs
- Delay configurável entre requisições para evitar bloqueios
- Logs detalhados com opção
--debug
-
Banco de dados SQLite
- Armazena registros em
instagrab.db - Tabelas normalizadas:
posts,hashtags,post_hashtags - Status do download:
salvo,falha,removido - Extração automática de hashtags e vínculo com posts
- Armazena registros em
-
Interface Web (HTML + Tailwind CSS + jQuery)
- Página estática (
index.html) consumindodata.json - Busca e filtragem de registros
- Paginação e seletor de número de entradas (em português)
- Modo Claro/Escuro com toggle
- Sidebar (menu hambúrguer) com opções Sobre e Ajuda
- Ações por linha: Acessar (abre post) e Copiar URL
- Exibição do total de posts baixados
- Página estática (
├── instagrab.py # Script principal de download
├── db.py # Módulo de acesso e manipulação do SQLite
├── extract_saved.py # (Opcional) Extrai URLs dos posts salvos via Instaloader
├── export_json.py # Exporta registros SQLite para data.json
├── data.json # Dados exportados (gerado em tempo de execução)
├── index.html # Interface web estática
├── README.md # Documentação do projeto
└── requirements.txt # Dependências Python
-
Clone este repositório:
git clone https://github.com/hugoleonardoitz/instagrab.git cd instagrab -
Crie um ambiente virtual e instale as dependências:
python -m venv venv_instagrab source venv_instagrab/bin/activate # Linux/macOS venv_instagrab\Scripts\activate # Windows pip install --upgrade pip pip install -r requirements.txt
-
(Opcional) Gere sessão autenticada para
extract_saved.py:instaloader --login SEU_USUARIO
-
Download único:
python instagrab.py https://www.instagram.com/p/SHORTCODE/
-
Download em lote (arquivo
urls.txtcom URLs por linha ou vírgula):python instagrab.py -i urls.txt --delay 2.5 --output-dir downloads
-
Exportar para JSON (para interface web):
python export_json.py --db instagrab.db --output data.json
-
Visualizar interface:
python -m http.server 8000 # Acesse http://localhost:8000/index.html
--delay: tempo de espera entre downloads (padrão: 1.0s)--debug: exibe logs detalhados no console- Tema: alterne claro/escuro na interface
- Paginação: selecione quantas entradas exibir por página
- Fork este repositório
- Crie uma branch de feature (
git checkout -b feature/nome) - Faça commit das suas alterações (
git commit -m 'Add nova feature') - Push para a branch (
git push origin feature/nome) - Abra um Pull Request
Este projeto está licenciado sob a MIT License.