tonhowtf/omniget · error
o Bilibili bloqueia esse conteúdo na sua região; tente com…
Error message
o Bilibili bloqueia esse conteúdo na sua região; tente com proxy
What it means
friendly() maps BilibiliError's regional-block variant to this message: the Bilibili API refused the request because the content is geo-restricted for the current network location (typical for regional bangumi). Authentication would not help; the IP's region is the problem.
Solutions
- Route the request through a proxy in a region where the content is available
- Check whether the content is region-free on the Bilibili website
- Try a different network if a proxy is not configured
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at src-tauri/src/platforms/bilibili/danmaku/export.rs:218 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of tonhowtf/omniget@8600b91f42 (2026-09-12).
Data as JSON: /api/errors/19a553e5a8035e9e.
Report an issue: GitHub.
Appendix: source
Thrown at src-tauri/src/platforms/bilibili/danmaku/export.rs:218
None => client.with_anonymous_cookies(),
})
}
/// Erro de API virando frase. Tudo que depende de sessão degrada com o mesmo
/// recado — é o caso do conteúdo pago (`cheese`) e do bangumi regional.
fn friendly(e: BilibiliError, with_account: bool) -> anyhow::Error {
match e {
BilibiliError::NotLoggedIn | BilibiliError::CookieMissing => anyhow!(
"esse conteúdo pede a sessão do Bilibili — entre na conta pelo gerenciador de cookies e tente de novo"
),
BilibiliError::PremiumRequired if with_account => anyhow!(
"a conta conectada não tem acesso a esse conteúdo pago"
),
BilibiliError::PremiumRequired => anyhow!(
"conteúdo pago: conecte uma conta do Bilibili que já tenha a compra"
),
BilibiliError::GeoBlocked => {
anyhow!("o Bilibili bloqueia esse conteúdo na sua região; tente com proxy")
}
BilibiliError::RateLimited => {
anyhow!("o Bilibili está limitando as requisições; espere um pouco e repita")
}
BilibiliError::ContentUnavailable => {
anyhow!("não achei comentários nessa parte — ela pode ter sido removida")
}
other => anyhow!("{}", other.i18n_key()),
}
}
fn collect_parts(parsed: &parser::ParsedContent) -> Vec<DanmakuPart> {
let mut out = Vec::new();
for (i, item) in parsed.items.iter().enumerate() {
let cid = match item.cid {
Some(c) if c > 0 => c,
_ => continue,
};View on GitHub (pinned to 8600b91f42)