CLI em Python para consultar relações, executar ações e acompanhar mudanças de seguidores em uma conta do Instagram. A aplicação usa a API não oficial fornecida pelo instagrapi.
A interface atual se identifica como v3.0 e oferece 15 ações. A versão de distribuição registrada em
pyproject.tomlpermanece0.1.0.
O menu interativo oferece:
- Listar meus seguidores
- Listar quem eu sigo
- Seguir usuário por
@usernameou ID - Deixar de seguir por
@usernameou ID - Ver informações de um usuário
- Identificar quem não segue de volta
- Exportar seguidores em JSON
- Exportar seguidos em JSON
- Rastrear ganhos e perdas de seguidores
- Executar o rastreamento periódico em modo Watch
- Seguir de volta em lote
- Deixar de seguir não seguidores em lote
- Exibir estatísticas de crescimento
- Exibir posts recentes de um usuário
- Listar seguidores mútuos
Também estão disponíveis:
- cache em memória com TTL, distinção entre consultas parciais e completas e invalidação após alterações;
- busca completa para análises, exportações e rastreamento;
- atrasos entre ações em lote e backoff em consultas do rastreador;
- histórico local com backups rotativos e escritas JSON atômicas.
- Python 3.12 ou superior;
uv.
git clone https://github.com/prof-ramos/instagram-toolkit.git
cd instagram-toolkit
uv syncCopie o arquivo de exemplo e preencha ao menos uma forma de autenticação:
cp .env.example .envConsulte o template .env.example. O toolkit tenta autenticar, nesta ordem, por:
INSTAGRAM_SESSION_IDdefinido no.env;cookies.jsonno diretório do projeto;- sessão previamente salva em
instagrapi.json; INSTAGRAM_USERNAMEeINSTAGRAM_PASSWORDdefinidos no.env.
Não publique .env, cookies.json, instagrapi.json, históricos ou exportações. Esses caminhos já estão previstos no .gitignore, mas a proteção final das credenciais continua sendo responsabilidade do usuário.
uv run main.pyuv run main.py --trackO valor de --watch é o intervalo em minutos:
uv run main.py --watch 45uv run main.py --no-cache
uv run main.py --cache-ttl 600Use uv run main.py --help para consultar todos os argumentos disponíveis.
.env, arquivos de sessão e dados gerados são ignorados pelo Git.- Arquivos JSON gravados pelo toolkit usam um arquivo temporário e substituição atômica.
- Sessões salvas, históricos, backups e exportações escritos pelo toolkit recebem permissão
0600em sistemas que suportam essa operação. - O histórico mantém até 10 snapshots de dados, acompanhados de metadados locais.
- Operações em lote pedem confirmação no menu e aplicam intervalos entre requisições.
Essas medidas reduzem riscos locais, mas não tornam a automação isenta de bloqueios, desafios de login ou restrições da plataforma.
A suíte é offline e cobre cache, política de consultas completas, ações em lote e rotação de backups:
uv run pytestNão há workflow de CI de testes configurado neste repositório; o badge no topo representa somente o workflow de publicação da documentação.
- Fontes da documentação:
website/docs/ - Workflow de publicação:
.github/workflows/deploy.yml
Quando há alterações em website/** ou no próprio workflow na branch main, o workflow Deploy Docusaurus gera o site e envia website/build para a branch gh-pages.
Este projeto utiliza endpoints não oficiais do Instagram. Use-o somente em contas e dados para os quais você tenha autorização, respeite os Termos de Uso da plataforma, a privacidade de terceiros e a legislação aplicável. Automação excessiva pode causar limitação temporária, desafios de autenticação ou suspensão da conta. Você é responsável pelas ações executadas e pelos dados coletados ou exportados.
Este repositório não contém arquivo de licença. Na ausência de uma licença explícita, não presuma permissão para copiar, modificar ou redistribuir o código.