tonhowtf/omniget · error
nao achei os arquivos JSON de seguidores no export. No…
Error message
nao achei os arquivos JSON de seguidores no export. No Instagram, peça o export em formato JSON (Configurações → Central de contas → Suas informações e permissões → Baixar suas informações)
What it means
read_export_files walks the user's Instagram data-export (zip or directory) looking for the follower/following JSON files. If none are found it throws this error with instructions on requesting the correct JSON export. The library only understands Instagram's JSON export format, not HTML exports.
Solutions
- Request the export again from Instagram choosing JSON format (Configurações → Central de contas → Suas informações e permissões → Baixar suas informações)
- Point analyze_export at the correct top-level export path (directory or zip), not a subfolder
- Open the export and confirm files like followers.json / followers_1.json exist
Example fix
// before
analyze_export("~/Downloads/instagram-user.html")?
// after
analyze_export("~/Downloads/instagram-user-2026-09-12/")? // JSON export Defensive patterns
Strategy: validation
Validate before calling
let export = Path::new(path);
let has_json = WalkDir::new(export)
.into_iter()
.filter_map(Result::ok)
.any(|e| e.path().extension().map_or(false, |x| x == "json"));
if !has_json {
bail!("peça o export em formato JSON no Instagram");
} Try / catch
match analyze_export(path) {
Ok(report) => render(report),
Err(e) if e.to_string().contains("nao achei os arquivos JSON") => {
eprintln!("Refaça o export escolhendo formato JSON: {e}");
}
Err(e) => return Err(e),
} Prevention
- Always request Instagram data exports in JSON format, never HTML
- Point the tool at the export root (zip or extracted folder), not a subfolder
- Spot-check the export for followers.json / following.json before running analysis
When it happens
Trigger: Calling analyze_export on a directory or zip that contains no follower JSON files — e.g. an HTML-format export, an export from before the follower data was included, or the wrong nested folder.
Common situations: User chose HTML instead of JSON when requesting 'Download your information'; user pointed the tool at the partially-complete export zip; Instagram moved files into different subfolders in newer exports.
Understand the failure class
Background: "File not found" and ENOENT errors: why libraries can't find a file that should exist — this error's family across 50 libraries.
Related errors
AI-assisted analysis of tonhowtf/omniget@8600b91f42 (2026-09-12).
Data as JSON: /api/errors/421d4ae100a5c253.
Report an issue: GitHub.
Appendix: source
Thrown at src-tauri/omniget-core/src/core/tools/instagram/analytics.rs:375
}
}
}
walk(path, &mut files, &wanted);
} else {
let file = std::fs::File::open(path)?;
let mut zip = zip::ZipArchive::new(file)?;
for i in 0..zip.len() {
let mut entry = zip.by_index(i)?;
let name = entry.name().to_string();
if wanted(&name) {
let mut bytes = Vec::new();
entry.read_to_end(&mut bytes)?;
files.push((name, bytes));
}
}
}
if files.is_empty() {
return Err(anyhow!("nao achei os arquivos JSON de seguidores no export. No Instagram, peça o export em formato JSON (Configurações → Central de contas → Suas informações e permissões → Baixar suas informações)"));
}
Ok(files)
}
pub fn analyze_export(path: &str) -> anyhow::Result<ExportReport> {
let files = read_export_files(Path::new(path))?;
let mut rep = ExportReport {
source: path.to_string(),
..Default::default()
};
for (name, bytes) in &files {
let Ok(v) = serde_json::from_slice::<Value>(bytes) else {
continue;
};
let base = name
.replace('\\', "/")
.rsplit('/')
.next()View on GitHub (pinned to 8600b91f42)