{"record":{"id":"b9f16e5f45c6dc22","repo":"tonhowtf/omniget","slug":"esse-link-n-o-tem-parte-de-v-deo-com-coment-rios-abra-uma","errorCode":null,"errorMessage":"esse link não tem parte de vídeo com comentários — abra uma parte específica","messagePattern":"esse link não tem parte de vídeo com comentários — abra uma parte específica","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src-tauri/src/platforms/bilibili/danmaku/export.rs","lineNumber":114,"sourceCode":"        Some(4),\n        Some(\"resolvendo o link\".into()),\n    );\n    let mut effective = url.to_string();\n    if url_kind::is_b23_short(&effective) {\n        match url_kind::resolve_b23(&client, &effective).await {\n            Ok(full) => effective = full,\n            Err(e) => return Err(friendly(e, with_account)),\n        }\n    }\n    let kind = url_kind::detect(&effective)\n        .map_err(|_| anyhow!(\"não reconheci um vídeo do Bilibili em: {}\", url))?;\n    let parsed = parser::parse(&client, &kind)\n        .await\n        .map_err(|e| friendly(e, with_account))?;\n\n    let parts = collect_parts(&parsed);\n    if parts.is_empty() {\n        return Err(anyhow!(\n            \"esse link não tem parte de vídeo com comentários — abra uma parte específica\"\n        ));\n    }\n    let wanted = if opts.page > 0 {\n        opts.page\n    } else {\n        page_from_kind(&kind)\n    };\n    let part = pick_part(&parts, wanted).ok_or_else(|| {\n        anyhow!(\n            \"a parte {} não existe; esse vídeo tem {}\",\n            wanted,\n            describe_pages(&parts)\n        )\n    })?;\n\n    let duration = if part.duration_secs > 0 {\n        part.duration_secs","sourceCodeStart":96,"sourceCodeEnd":132,"githubUrl":"https://github.com/tonhowtf/omniget/blob/8600b91f4246848bac346874daa9e61c1fc5677a/src-tauri/src/platforms/bilibili/danmaku/export.rs#L96-L132","documentation":"A validation guard in the danmaku export flow: after resolving the b23 short link and parsing the page, collect_parts found no video part that carries comments. The URL points at a multi-part entry or playlist landing page rather than a concrete video part, so there is no cid to fetch danmaku for.","triggerScenarios":"Thrown at src-tauri/src/platforms/bilibili/danmaku/export.rs:114 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Open a specific part/page of the video (e.g. ?p=2 or the part URL) instead of the series landing link","Copy the link directly from the player page of the part you want","Check that the link really points at a normal video (not an article or live room)"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"8600b91f4246848bac346874daa9e61c1fc5677a","analyzedAt":"2026-09-12T14:29:19.317Z","contentChangedAt":"2026-09-12T14:29:19.317Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}