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

  1. Request the export again from Instagram choosing JSON format (Configurações → Central de contas → Suas informações e permissões → Baixar suas informações)
  2. Point analyze_export at the correct top-level export path (directory or zip), not a subfolder
  3. 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

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)